{"id":28513446,"url":"https://github.com/livepeer/transcode-cli","last_synced_at":"2025-07-18T02:33:59.681Z","repository":{"id":43706889,"uuid":"436793080","full_name":"livepeer/transcode-cli","owner":"livepeer","description":"CLI transcoding tool","archived":false,"fork":false,"pushed_at":"2022-02-22T16:57:12.000Z","size":71,"stargazers_count":9,"open_issues_count":4,"forks_count":2,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-07-17T21:07:45.470Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/livepeer.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-12-09T23:42:17.000Z","updated_at":"2022-12-03T10:30:42.000Z","dependencies_parsed_at":"2022-08-22T20:21:19.711Z","dependency_job_id":null,"html_url":"https://github.com/livepeer/transcode-cli","commit_stats":null,"previous_names":["livepeer/cli-transcoder"],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/livepeer/transcode-cli","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/livepeer%2Ftranscode-cli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/livepeer%2Ftranscode-cli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/livepeer%2Ftranscode-cli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/livepeer%2Ftranscode-cli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/livepeer","download_url":"https://codeload.github.com/livepeer/transcode-cli/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/livepeer%2Ftranscode-cli/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265692335,"owners_count":23812195,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":[],"created_at":"2025-06-09T01:07:09.617Z","updated_at":"2025-07-18T02:33:59.641Z","avatar_url":"https://github.com/livepeer.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Transcoding on Demand\n\n[Latest release][latest]\n\nOur Transcoding on Demand tool is a Command-Line Interface (CLI) that\nallows an application to leverage the Livepeer network for video\ntranscoding, thus removing a complex transcoding scalability\nrequirement that usually comes with building a video streaming\nservice. At the same time, it's flexible enough to plug into any\nbespoke video workflow, because any backend software can easily invoke\na cli command. It is open source, and currently in beta.\n\nWe welcome your feedback at \u003chello@livepeer.com\u003e and suggestions about\nhow this tool addresses your needs, or how it can be improved to help\nyou better address your needs.\n\nYou’re also welcome to communicate with our team in the [Livepeer\nDiscord server][discord] #video-dev channel.\n\n## Installing `livepeer-transcode`\n\nWhat you'll need:\n\n- [A Livepeer.com API Key][1]\n- A way to unzip packaged files\n- MP4 or TS video that you'd like transcoded into other renditions\n\n### Steps to install\n\n- [Download the binary][latest] for your OS (Windows, Linux, Mac) and\n   arch.\n- Execute the file\n    - **NOTE**: If you're on a Mac and get an \"*unidentified\n     developer*\" security warning, follow [this guide][2] to\n     circumvent it while we work on removing this warning.\n\n## Using `livepeer-transcode`\n\nTool accepts `.mp4` and `.ts` file. Output be `.mp4`, `.ts` or `.m3u8`\n(HLS manifest).\n\nFor HLS output tool will write master playlist and one media playlist\nfor each transcoding profile.\n\n## Examples\n\nMP4 Output:\n```shell\n./livepeer-transcode --api-key {API key} transcode name_of_input_video.mp4 name_of_output_video.mp4 -r 256x144 -b 400 --framerate 47 --profile baseline --gop 20s\n```\nor\n```shell\n./livepeer-transcode transcode --api-key API_KEY  input_file_name.mp4 output_file_name.mp4 --profiles config.json\n```\nHLS output:\n```shell\n./livepeer-transcode transcode --api-key API_KEY  input_file_name.mp4 output_dir/output_file_name.m3u8 --profiles config.json output_dir\n```\n\n## Subcommands\n\nThe subcommands are structured like this: `livepeer-transcode [subcommand]`\n\n- `help` — Global help about the `livepeer-transcode`\n- `list-presets` — Lists available transcoding presets\n- `transcode` — Transcodes video file using Livepeer API\n\nYou can also use `livepeer-transcode [subcommand] --help` for more\ninformation about a specific subcommand.\n\n### Global Flags\n\nThe global flags should be specified before the subcommand and are the same for all:\n\n- `-h` / `--help` — display help for livepeer-transcode\n- `-v` / `--version` — display version of livepeer-transcode\n- `-a` / `--api-host` — API-host string Livepeer API host (default \"[livepeer.com](http://livepeer.com/)\")\n- `-k` / `--api-key` — API-key string for Livepeer API key\n\n### The `transcode` subcommand\n\nThe `transcode` subcommand is used like this:\n```shell\nlivepeer-transcode transcode input.[ts|mp4] output.[ts|mp4] [flags]\n```\n\nThe first argument after `transcode` is the path to the input file to\nbe transcoded, and the second one is the path for the output file\nwhere the transcoded renditions will be written. After that one must\nspecify flags to configure the transcoding job:\n\n- `-h` / `--help` — display specific help for the `transcode` subcommand\n- `-b` / `--bitrate` — set bitrate of the output in `Kbps`\n- `-r` / `--resolution` — set resolution of the output\n\nNOTE: Resolution will automatically adjust to be proportional to the\nresolution of the input video to avoid stretching of the frames.\n\n- `-f` / `--framerate` — set framerate of the output in frames per\n  second (`fps`)\n\n- `-g` / `--gop` — set GOP size of the output, specified as the time\n  between two keyframes, in seconds.\n\n- `-p` / `--presets` — comma-separated list of transcoding presets\n  (e.g. `P720p30fps16x9`). Use `list-presets` to get a list of presets\n  available to use.\n\n- `-o` / `--profile` — determines hardware acceleration for\n  encoding. Options are `baseline`, `main`, or `high`.\n\n- `--profiles` - file name with desired encoding profiles in JSON\n  format. Example [config.json](config.json)\n\n## Profile structure\n\n```jsonc\n{\n    \"name\",\n    \"width\", // number\n    \"height\", // number\n    \"bitrate\", // number, in bits per second\n    \"fps\", // number\n    \"fpsDen\" // number, fps denominator, do not set if fractional fps is not needed\n    \"gop\" // string, for example: 2s\n    \"profile\" // one of - H264Baseline - H264Main - H264High - H264ConstrainedHigh\n}\n```\n\n\n  [1]: https://livepeer.com/docs/guides/start-live-streaming/api-key\n  [2]: https://support.apple.com/en-gb/guide/mac-help/mh40616/mac\n  [latest]: https://github.com/livepeer/transcode-cli/releases/latest\n  [discord]: https://discord.gg/uaPhtyrWsF\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flivepeer%2Ftranscode-cli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flivepeer%2Ftranscode-cli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flivepeer%2Ftranscode-cli/lists"}