{"id":17567855,"url":"https://github.com/lfdominguez/ffmpeg_vstat_parser","last_synced_at":"2026-04-27T23:35:17.888Z","repository":{"id":258436880,"uuid":"869770914","full_name":"lfdominguez/ffmpeg_vstat_parser","owner":"lfdominguez","description":"Parse the vstats ffmpeg format from a PIPE and try to sent to external service","archived":false,"fork":false,"pushed_at":"2025-04-08T03:44:27.000Z","size":163,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-08T04:27:49.404Z","etag":null,"topics":["ffmpeg","parser","vstats"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lfdominguez.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-10-08T21:24:29.000Z","updated_at":"2025-04-08T03:44:30.000Z","dependencies_parsed_at":"2025-02-04T14:46:46.235Z","dependency_job_id":"8f8c0932-f74f-4769-8943-9c78bd002c7a","html_url":"https://github.com/lfdominguez/ffmpeg_vstat_parser","commit_stats":null,"previous_names":["lfdominguez/ffmpeg_vstat_parser"],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/lfdominguez/ffmpeg_vstat_parser","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lfdominguez%2Fffmpeg_vstat_parser","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lfdominguez%2Fffmpeg_vstat_parser/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lfdominguez%2Fffmpeg_vstat_parser/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lfdominguez%2Fffmpeg_vstat_parser/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lfdominguez","download_url":"https://codeload.github.com/lfdominguez/ffmpeg_vstat_parser/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lfdominguez%2Fffmpeg_vstat_parser/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32360113,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-27T20:07:02.737Z","status":"ssl_error","status_checked_at":"2026-04-27T20:07:00.910Z","response_time":128,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ffmpeg","parser","vstats"],"created_at":"2024-10-21T16:07:14.137Z","updated_at":"2026-04-27T23:35:17.870Z","avatar_url":"https://github.com/lfdominguez.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Project Name: Multi Parser\n\n## Overview\n\nThis project provides a utility to parse multiple logs types from a named pipe (FIFO) and send the parsed data to an external service. It leverages the Rust programming language to ensure high performance and reliability. By using this tool, users can efficiently manage and analyze FFmpeg log data in real-time for monitoring or further processing.\n\n## Features\n\n- **Efficient Parsing:** Parses logs from a specified FIFO input file (you must take care how to send the data to the FIFO file).\n- **Extensible Commands:** Allows for different output types through subcommands.\n\n## Build\n\nTo use this utility, you need to have Rust installed. You can install Rust through `rustup` if it's not already installed:\n\n```sh\ncurl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh\n```\n\nAfter Rust is installed, clone the repository and build the project:\n\n```sh\ngit clone https://github.com/lfdominguez/ffmpeg_vstat_parser.git\ncd ffmpeg_vstat_parser\ncargo build --release\n```\n\n## Usage\n\nThe tool can be run from the command line with the following format:\n\n```sh\n./target/release/ffmpeg_vstat_parser --fifo \u003cinput_fifo_file_path\u003e --parser \u003cparser_type\u003e \u003csubcommand\u003e\n```\n\n### Supported Arguments\n\n| Argument   | Short | Description                                                 |\n|------------|-------|-------------------------------------------------------------|\n| `--fifo`   | `-f`  | Input file FIFO to read from                                |\n| `--parser` |       | Define what kind of parser to use (see [Parsers](#Parsers)) |\n| Subcommand |       | Specifies the operation to be performed                     |\n\n### Parsers\n\n * `Raw`: Don't parse any line, send a clone of input to the output\n * `FfmpegVstatV1`: Parse ffmpeg vstat v1 information\n * `FfmpegVstatV2`: Parse ffmpeg vstat v2 information\n\n### Subcommands\n\n| Subcommand | Description                                                   | Arguments                                               |\n|------------|---------------------------------------------------------------|---------------------------------------------------------|\n| `fifo_out` | Output to a FIFO file (this always clone the input line)      | `fifo_output` (positional) - The FIFO output file path  |\n| `http_out` | Output to an HTTP endpoint (*not support HTTPS*) as JSON post | `uri_endpoint` (positional) - URI of the HTTP endpoint  |\n|            |                                                               | `--format` Format for sending POST data [Json, MsgPack] |\n\n#### MsgPack\nFor `MessagePack` the definition of the struct (that you must to use to read the binary) is:\n\n```rust\nstruct FfmpegInfo {\n    pub out_file_index: Option\u003ci64\u003e,\n    pub out_stream_index: Option\u003ci64\u003e,\n    pub frame_number: i64,\n    pub frame_quality: f64,\n    pub packet_size_bytes: i64,\n    pub stream_size_kbytes: i64,\n    pub timestamp: f64,\n    pub picture_type: String,\n    pub bitrate_kbps: f64,\n    pub avg_bitrate_kbps: f64\n}\n```\n\n### Examples\n\n1. **Basic Usage:**\n\n    Suppose you have an FFmpeg vstats log being written to a FIFO file at `/tmp/ffmpeg_fifo`, and you are using vstats version 1 log lines. You could run the utility as follows:\n\n    ```sh\n    ./target/release/ffmpeg_vstat_parser --fifo /tmp/ffmpeg_fifo --parser FfmpegVstatV1 fifo_out /tmp/output_fifo\n    ```\n\n2. **Using a Different vstats Version:**\n\n    If the vstats version of your log lines is 2, you can specify that accordingly:\n\n    ```sh\n    ./target/release/ffmpeg_vstat_parser --fifo /tmp/ffmpeg_fifo --parser FfmpegVstatV2 fifo_out /tmp/output_fifo\n    ```\n\n3. **Output to an HTTP Endpoint:**\n\n    To send the parsed vstats logs to an HTTP endpoint in JSON format:\n\n    ```sh\n    ./target/release/ffmpeg_vstat_parser --fifo /tmp/ffmpeg_fifo --parser FfmpegVstatV1 http_out http://example.com/endpoint --format Json\n    ```\n\n## Contributing\n\nContributions are welcome! Please fork the repository and create a pull request with your changes. Make sure to update tests as appropriate.\n\n## License\n\nThis project is licensed under the MIT License. See the [LICENSE](./LICENSE) file for details.\n\n## Contact\n\nFor any inquiries or issues, please open an issue in the GitHub repository or contact the maintainers via email.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flfdominguez%2Fffmpeg_vstat_parser","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flfdominguez%2Fffmpeg_vstat_parser","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flfdominguez%2Fffmpeg_vstat_parser/lists"}