{"id":29712149,"url":"https://github.com/ragedunicorn/docker-ffmpeg","last_synced_at":"2026-01-20T16:29:06.719Z","repository":{"id":304392994,"uuid":"1018442771","full_name":"RagedUnicorn/docker-ffmpeg","owner":"RagedUnicorn","description":"Repository for Docker ffmpeg image based on Alpine","archived":false,"fork":false,"pushed_at":"2026-01-16T19:31:44.000Z","size":165,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-01-17T07:22:59.401Z","etag":null,"topics":["alpine","alpine-linux","docker","docker-container","docker-image","ffmpeg"],"latest_commit_sha":null,"homepage":"https://hub.docker.com/r/ragedunicorn/ffmpeg","language":"Dockerfile","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/RagedUnicorn.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-07-12T09:15:19.000Z","updated_at":"2026-01-16T19:31:45.000Z","dependencies_parsed_at":"2025-12-06T08:06:28.346Z","dependency_job_id":null,"html_url":"https://github.com/RagedUnicorn/docker-ffmpeg","commit_stats":null,"previous_names":["ragedunicorn/docker-ffmpeg"],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/RagedUnicorn/docker-ffmpeg","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RagedUnicorn%2Fdocker-ffmpeg","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RagedUnicorn%2Fdocker-ffmpeg/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RagedUnicorn%2Fdocker-ffmpeg/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RagedUnicorn%2Fdocker-ffmpeg/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RagedUnicorn","download_url":"https://codeload.github.com/RagedUnicorn/docker-ffmpeg/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RagedUnicorn%2Fdocker-ffmpeg/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28607135,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-20T16:10:39.856Z","status":"ssl_error","status_checked_at":"2026-01-20T16:10:39.493Z","response_time":117,"last_error":"SSL_read: 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":["alpine","alpine-linux","docker","docker-container","docker-image","ffmpeg"],"created_at":"2025-07-24T00:07:26.378Z","updated_at":"2026-01-20T16:29:06.701Z","avatar_url":"https://github.com/RagedUnicorn.png","language":"Dockerfile","funding_links":[],"categories":[],"sub_categories":[],"readme":"# docker-ffmpeg\n\n![](./docs/docker_ffmpeg.png)\n\n[![Release Build](https://github.com/RagedUnicorn/docker-ffmpeg/actions/workflows/docker_release.yml/badge.svg)](https://github.com/RagedUnicorn/docker-ffmpeg/actions/workflows/docker_release.yml)\n[![Test](https://github.com/RagedUnicorn/docker-ffmpeg/actions/workflows/test.yml/badge.svg)](https://github.com/RagedUnicorn/docker-ffmpeg/actions/workflows/test.yml)\n![License: MIT](docs/license_badge.svg)\n\n\u003e Docker Alpine image with FFmpeg and its dependencies.\n\n![](./docs/alpine_linux_logo.svg)\n\n## Overview\n\nThis Docker image provides a lightweight FFmpeg installation built from source on Alpine Linux. It includes a comprehensive set of codecs and libraries for versatile media processing capabilities.\n\n## Features\n\n- **Small footprint**: ~70-80MB runtime image using Alpine Linux\n- **FFmpeg 7.1.1**: Latest stable version compiled from source\n- **Extensive codec support**: x264, x265, VP9, Opus, MP3, AAC, and more\n- **Multi-stage build**: Optimized for minimal final image size\n- **Volume mounting**: Easy file input/output through `/tmp/workdir`\n\n## Supported Codecs\n\n### Video Codecs\n- H.264 (libx264)\n- H.265/HEVC (libx265)\n- VP8/VP9 (libvpx)\n- Theora (libtheora)\n\n### Audio Codecs\n- AAC (libfdk-aac)\n- MP3 (libmp3lame)\n- Opus (libopus)\n- Vorbis (libvorbis)\n\n### Additional Features\n- Subtitles (libass)\n- Text rendering (libfreetype)\n- WebP support (libwebp)\n- RTMP streaming (librtmp)\n- SSL/TLS support (openssl)\n\n## Quick Start\n\n```bash\n# Pull the image\ndocker pull ragedunicorn/ffmpeg:latest\n\n# Run FFmpeg\ndocker run -v $(pwd):/tmp/workdir ragedunicorn/ffmpeg:latest -i input.mp4 output.mp4\n```\n\nFor development and building from source, see [DEVELOPMENT.md](DEVELOPMENT.md).\n\n## Usage\n\nThe container uses FFmpeg as the entrypoint, so any FFmpeg parameters can be passed directly to the `docker run` command.\n\n### Basic Usage\n\n```bash\n# Using latest version\ndocker run -v $(pwd):/tmp/workdir ragedunicorn/ffmpeg:latest [ffmpeg-options]\n\n# Using specific FFmpeg version (latest Alpine build)\ndocker run -v $(pwd):/tmp/workdir ragedunicorn/ffmpeg:7.1.1 [ffmpeg-options]\n\n# Using exact version combination\ndocker run -v $(pwd):/tmp/workdir ragedunicorn/ffmpeg:7.1.1-alpine3.22.0-1 [ffmpeg-options]\n```\n\n### Examples\n\n#### Convert Video Format\n```bash\ndocker run -v $(pwd):/tmp/workdir ragedunicorn/ffmpeg:latest -i input.mp4 -c:v libx264 -c:a aac output.mp4\n```\n\n#### Get Video Information\n```bash\ndocker run -v $(pwd):/tmp/workdir ragedunicorn/ffmpeg:latest -i input.mp4\n```\n\n#### Extract Audio\n```bash\ndocker run -v $(pwd):/tmp/workdir ragedunicorn/ffmpeg:latest -i input.mp4 -vn -acodec mp3 output.mp3\n```\n\n#### Resize Video\n```bash\ndocker run -v $(pwd):/tmp/workdir ragedunicorn/ffmpeg:latest -i input.mp4 -vf scale=1280:720 output.mp4\n```\n\n#### Convert to WebM\n```bash\ndocker run -v $(pwd):/tmp/workdir ragedunicorn/ffmpeg:latest -i input.mp4 -c:v libvpx -c:a libvorbis output.webm\n```\n\n#### Create GIF from Video\n```bash\ndocker run -v $(pwd):/tmp/workdir ragedunicorn/ffmpeg:latest -i input.mp4 -vf \"fps=10,scale=320:-1\" output.gif\n```\n\n## Docker Compose Usage\n\nThis repository includes Docker Compose configurations for easier usage and common media processing workflows.\n\n### Basic Setup\n\n1. Create a `media` directory structure:\n```bash\nmkdir -p media/input media/output\n```\n\n2. Place your input files in `media/input/`\n\n3. Run FFmpeg using docker compose:\n```bash\ndocker compose run --rm ffmpeg -i input/video.mp4 output/converted.mp4\n```\n\n### Example Configurations\n\nThe `examples/` directory contains specialized docker-compose files for common tasks:\n\n#### Video Conversion (`examples/docker-compose.convert.yml`)\n```bash\n# Convert MP4 to WebM\ndocker compose -f examples/docker-compose.convert.yml run --rm mp4-to-webm\n\n# Compress video\ndocker compose -f examples/docker-compose.convert.yml run --rm compress-video\n\n# Convert to H.265\ndocker compose -f examples/docker-compose.convert.yml run --rm convert-to-h265\n```\n\n#### Media Extraction (`examples/docker-compose.extract.yml`)\n```bash\n# Extract audio from video\ndocker compose -f examples/docker-compose.extract.yml run --rm extract-audio-mp3\n\n# Extract video thumbnails\ndocker compose -f examples/docker-compose.extract.yml run --rm extract-thumbnails\n\n# Extract specific segment\nSTART_TIME=00:01:30 DURATION=00:00:45 docker compose -f examples/docker-compose.extract.yml run --rm extract-segment\n```\n\n#### Streaming (`examples/docker-compose.stream.yml`)\n```bash\n# Stream to RTMP server\n# Use environment variables or secret management tools\n# Example: export STREAM_KEY=\"your-actual-key\" before running\nRTMP_URL=rtmp://your.server/live/ STREAM_KEY=${STREAM_KEY} docker compose -f examples/docker-compose.stream.yml run --rm rtmp-stream\n\n# Create HLS stream\ndocker compose -f examples/docker-compose.stream.yml run --rm hls-stream\n```\n\n#### Batch Processing (`examples/docker-compose.batch.yml`)\n```bash\n# Compress all videos in input directory\ndocker compose -f examples/docker-compose.batch.yml run --rm batch-compress-all\n\n# Generate thumbnails for all videos\ndocker compose -f examples/docker-compose.batch.yml run --rm batch-generate-thumbnails\n\n# Custom batch processing\nFFMPEG_ARGS=\"-c:v libx265 -crf 28\" docker compose -f examples/docker-compose.batch.yml run --rm batch-custom\n```\n\n### Environment Variables\n\nMany compose services support environment variables for customization:\n\n- `FFMPEG_VERSION`: Specify FFmpeg image version (default: latest)\n- `CRF`: Compression quality (lower = better quality, larger file)\n- `PRESET`: Encoding speed preset (ultrafast, fast, medium, slow)\n- `RTMP_URL`: RTMP server URL for streaming\n- `START_TIME`, `DURATION`: For segment extraction\n- See individual compose files for more options\n\n### Tips\n\n1. **Custom Commands**: Override the default command:\n   ```bash\n   docker compose run --rm ffmpeg -i input/video.mp4 -vf scale=640:480 output/small.mp4\n   ```\n\n2. **Multiple Files**: Use the batch processing configurations for processing multiple files efficiently\n\n3. **Persistent Settings**: The repository includes a `.env` file with default settings. You can modify it to set your preferred versions:\n   ```env\n   FFMPEG_VERSION=7.1.1-alpine3.22.1-1\n   RTMP_URL=rtmp://streaming.server/live/\n   ```\n\n## Versioning\n\nThis project uses semantic versioning that matches the Docker image contents:\n\n**Format:** `{ffmpeg_version}-alpine{alpine_version}-{build_number}`\n\nExamples:\n- `7.1.1-alpine3.22.0-1` - FFmpeg 7.1.1 on Alpine 3.22.0, build 1\n- `latest` - Most recent stable release\n\nFor detailed release process and versioning guidelines, see [RELEASE.md](RELEASE.md).\n\n## Automated Dependency Updates\n\nThis project uses [Renovate](https://docs.renovatebot.com/) to automatically check for updates to:\n- Alpine Linux base image version (all major, minor, and patch updates)\n- FFmpeg version\n\nRenovate runs weekly (every Monday) and creates pull requests when updates are available. The configuration tracks \nboth Alpine Linux and FFmpeg releases, creating separate pull requests for each update.\n\n## Documentation\n\n- [Development Guide](DEVELOPMENT.md) - Building, debugging, and contributing\n- [Testing Guide](TEST.md) - Running and writing tests\n- [Release Process](RELEASE.md) - Creating releases and versioning\n\n## Links\n\n- [FFmpeg Documentation](https://ffmpeg.org/documentation.html)\n- [Alpine Linux](https://www.alpinelinux.org/)\n\n# License\n\nMIT License\n\nCopyright (c) 2025 Michael Wiesendanger\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\nNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\nLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\nOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\nWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fragedunicorn%2Fdocker-ffmpeg","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fragedunicorn%2Fdocker-ffmpeg","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fragedunicorn%2Fdocker-ffmpeg/lists"}