{"id":23402572,"url":"https://github.com/martincastroalvarez/media-tools","last_synced_at":"2026-05-05T00:37:06.534Z","repository":{"id":106553503,"uuid":"514654512","full_name":"MartinCastroAlvarez/media-tools","owner":"MartinCastroAlvarez","description":"Video processing pipeline using FFMPEG CLI","archived":false,"fork":false,"pushed_at":"2024-06-06T20:04:56.000Z","size":3943,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-14T17:30:03.579Z","etag":null,"topics":["bash","ffmpeg","linux","video"],"latest_commit_sha":null,"homepage":"https://martincastroalvarez.com","language":"Shell","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/MartinCastroAlvarez.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-07-16T18:20:47.000Z","updated_at":"2024-06-06T20:05:00.000Z","dependencies_parsed_at":"2024-12-22T12:39:32.146Z","dependency_job_id":null,"html_url":"https://github.com/MartinCastroAlvarez/media-tools","commit_stats":null,"previous_names":["martincastroalvarez/media-tools"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MartinCastroAlvarez%2Fmedia-tools","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MartinCastroAlvarez%2Fmedia-tools/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MartinCastroAlvarez%2Fmedia-tools/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MartinCastroAlvarez%2Fmedia-tools/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MartinCastroAlvarez","download_url":"https://codeload.github.com/MartinCastroAlvarez/media-tools/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247935626,"owners_count":21020856,"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":["bash","ffmpeg","linux","video"],"created_at":"2024-12-22T12:29:27.319Z","updated_at":"2026-05-05T00:37:06.472Z","avatar_url":"https://github.com/MartinCastroAlvarez.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# FFMEPG\nVideo processing pipeline using FFMPEG CLI\n\n![wallpaper.jpeg](./wallpaper.jpeg)\n\n## Installation\n```bash\nsudo yum -y install youtube -dl\nsudo yum -y install ffmpeg ffprobe ffmpeg-devel\nsudo yum -y install ImageMagick ImageMagick-devel ImageMagick-perl\n```\n\n## Instructions\n\n### Processing a video from Youtube\n\n```bash\nvideo.get https://www.youtube.com/watch?v=QC8iQqtG0hg \\\n    | video.compress --quality 28 \\\n    | video.cut --from 00:00:01 --to 00:00:03 \\\n    | video.fade --in 0.1 --out 0.1 \\\n    | video.blur --intensity 8 \\\n    | video.gamma --intensity 2 \\\n    | video.brightness --intensity -0.3 \\\n    | video.contrast --intensity 1.1 \\\n    | video.saturation --intensity 0.11 \\\n    | video.sepia \\\n    | video.shine --intensity 0.1 \\\n    | video.vintage \\\n    | video.speed --intensity 1.5 \\\n    | video.mute \\\n    | video.reverse \\\n    | video.loop \\\n    | video.concat --with 172229ed8508dcc382436f72e39104a9.mp4 \\\n    | video.hstack --with 172229ed8508dcc382436f72e39104a9.mp4 \\\n    | video.vstack --with da07471345d91b1e3c2dd2691ed533a9.mp4 \\\n    | video.crop --top 1 --height 1400 --left 1 --width 1420 \\\n    | video.resize --width 600 --height 800 \\\n    | video.rotate --angle 180 \\\n    | video.levels --red 0.7 --green 0.1 --blue 0.4 \\\n    | video.to.mp4 \\\n    | video.to.gif\n```\n\nResults in: [47dafc0f8b8ca197abe051c7c3a1ef65.mp4](47dafc0f8b8ca197abe051c7c3a1ef65.mp4)\n\n![c55ff0bb38f997eda9ca038e8f93570e.gif](c55ff0bb38f997eda9ca038e8f93570e.gif)\n\n### Processing an audio from Youtube\n\n```bash\naudio.get \"https://www.youtube.com/watch?v=iDO9J_3OVJ0\" \\\n    | audio.cut --from 00:00:01 --to 00:00:06 \\\n    | audio.fade --in 0.2 --out 0.8 \\\n    | audio.concat --transition 0.5 --with e45837552f1204414815d4104648d361.mp3 \n\n```\n\nResults in: [5f8b2b4ef18228a4fbbec5715a37d387.mp3](5f8b2b4ef18228a4fbbec5715a37d387.mp3)\n\n### Concatenating the video and the audio\n\n```bash\nvideo.merge 47dafc0f8b8ca197abe051c7c3a1ef65.mp4 --with 5f8b2b4ef18228a4fbbec5715a37d387.mp3\n```\n\nYields the following result:\n\n```bash\n91c82313ab004aef9a3018ca43b3887a.mp4\n```\n\n### Processing frames as images\n\n```bash\nvideo.frames --fps 30 --dir /tmp/frames 47dafc0f8b8ca197abe051c7c3a1ef65.mp4\nimage.blur --intensity 120 /tmp/frames/frame_30_1.png \\\n    | image.contrast --intensity 1.3 \\\n    | image.brightness --intensity -20 \\\n    | image.resize --width 600 --height 800 \\\n    | image.square --size 300 \\\n    | image.saturation --intensity 87 \n    | image.to.jpg\n```\n\nResults in:\n\n![01ee4e4ea5ea1736555ebe6cd250938c.png](01ee4e4ea5ea1736555ebe6cd250938c.png)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmartincastroalvarez%2Fmedia-tools","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmartincastroalvarez%2Fmedia-tools","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmartincastroalvarez%2Fmedia-tools/lists"}