{"id":15069500,"url":"https://github.com/denismakogon/ffmpeg-debian","last_synced_at":"2025-04-10T16:52:29.309Z","repository":{"id":39970547,"uuid":"139008555","full_name":"denismakogon/ffmpeg-debian","owner":"denismakogon","description":"FFMPEG shared libs for OpenJDK | Golang","archived":false,"fork":false,"pushed_at":"2022-05-21T18:37:20.000Z","size":79,"stargazers_count":8,"open_issues_count":1,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-24T14:44:35.678Z","etag":null,"topics":["compile","docker","ffmpeg","gmf","golang","java","media","multistage","openjdk"],"latest_commit_sha":null,"homepage":"","language":"Dockerfile","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/denismakogon.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":"2018-06-28T11:22:35.000Z","updated_at":"2025-01-07T09:42:15.000Z","dependencies_parsed_at":"2022-08-25T18:30:49.306Z","dependency_job_id":null,"html_url":"https://github.com/denismakogon/ffmpeg-debian","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/denismakogon%2Fffmpeg-debian","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/denismakogon%2Fffmpeg-debian/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/denismakogon%2Fffmpeg-debian/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/denismakogon%2Fffmpeg-debian/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/denismakogon","download_url":"https://codeload.github.com/denismakogon/ffmpeg-debian/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248256302,"owners_count":21073501,"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":["compile","docker","ffmpeg","gmf","golang","java","media","multistage","openjdk"],"created_at":"2024-09-25T01:42:54.131Z","updated_at":"2025-04-10T16:52:29.281Z","avatar_url":"https://github.com/denismakogon.png","language":"Dockerfile","funding_links":[],"categories":[],"sub_categories":[],"readme":"# FFMPEG \u0026 Golang binding for Go Media Framework (GMF)\n\n## What's inside?\n\nIn this repo you'll find the following images:\n\n - base (something that you don't need but used across all other images)\n - \u003cffmpeg-version\u003e-build (ffmpeg compiled from source with all plugins available, you don't need that as well)\n - \u003cffmpeg-version\u003e-golang-\u003cgolang-version\u003e (golang + ffmpeg build environment)\n - \u003cffmpeg-version\u003e-runtime (ffmpeg runtime for golang compiled application)\n - \u003cffmpeg-version\u003e-openjdk-\u003cjdk-version\u003e (ffmpeg runtime for openjdk compiled application)\n - test (test image with one of the Go Media Framework applications complied and executed as the verification that all images work fine)\n\n## How to build a GMF application?\n\nCheck the following GMF application:\n\n```dockerfile\nFROM ghcr.io/denismakogon/ffmpeg-debian:5.0.1-golang-1 as build-stage\nRUN go get github.com/3d0c/gmf\nWORKDIR $GOPATH/src/github.com/3d0c/gmf/examples\nRUN mkdir -p /examples/tmp \u0026\u0026 \\\n    cp tmp/big_buck_bunny.webm /examples/tmp/big_buck_bunny.webm\nRUN go build -o /examples/video-to-frames video-to-jpeg-avio.go\n\n\nFROM ghcr.io/denismakogon/ffmpeg-debian:5.0.1-runtime\nCOPY --from=build-stage /examples /examples\nWORKDIR /examples\nENTRYPOINT [\"./video-to-frames\"]\n```\n\nIn this dockerfile:\n\n - you need `denismakogon/ffmpeg-debian:5.0.1-golang-1` as a build environment for GMF-based applications\n - you need `denismakogon/ffmpeg-debian:5.0.1-runtime` as a runtime for complied application from the build stage\n - compile a binary at the build stage\n - copy binary through docker multi-stage feature to the runtime\n\n```shell\ndocker build -t test-ffmpeg --build-arg \"FFMPEG_VERSION=5.0.1\" --build-arg \"GOLANG_VERSION=1\" -f test/Dockerfile .\n```\n\n## How to build docker images\n\nbase image:\n```shell\ndocker build -t ghcr.io/denismakogon/ffmpeg-debian:base -f base/Dockerfile .\n```\n\nFFMPEG build stage image:\n```shell\ndocker build -t ghcr.io/denismakogon/ffmpeg-debian:5.0.1-build -f ffmpeg/5.0.1/Dockerfile .\n```\n\noptional build arg is `BASE_IMAGE_DIGEST_TAG`, it used to point to a specific version of [ffmpeg-debian:base](https://ghcr.io/denismakogon/ffmpeg-debian:base) image.\n\n```shell\ndocker build -t ghcr.io/denismakogon/ffmpeg-debian:5.0.1-build -f ffmpeg/5.0.1/Dockerfile \\\n  --build-arg \"BASE_IMAGE_DIGEST_TAG=ghcr.io/denismakogon/ffmpeg-debian@sha256:f6781e831ef68a7ff7170374639be85098b49c6a7740a3652d2f8f1ba43afc1e\" \\\n  .\n```\n\nsee the [following documentation](https://github.com/denismakogon/ffmpeg-debian/pkgs/container/ffmpeg-debian/22132531?tag=sha256-f6781e831ef68a7ff7170374639be85098b49c6a7740a3652d2f8f1ba43afc1e.sig).\n\nruntime image:\n```shell\ndocker build -t ghcr.io/denismakogon/ffmpeg-debian:5.0.1-runtime -f runtime/Dockerfile \\\n    --build-arg \"BASE_IMAGE_DIGEST_TAG=ghcr.io/denismakogon/ffmpeg-debian@sha256:f6781e831ef68a7ff7170374639be85098b49c6a7740a3652d2f8f1ba43afc1e\" \\\n    --build-arg \"BUILD_IMAGE_DIGEST_TAG=ghcr.io/denismakogon/ffmpeg-debian@sha256:2b421ef4be773ce80d3f82717d9fd845e6cc03dfad4c961b2886b7a59117a609\" \\\n      .\n```\n\nGolang image:\n```shell\ndocker build -t ghcr.io/denismakogon/ffmpeg-debian:5.0.1-golang-1 -f golang/Dockerfile \\\n  --build-arg \"BUILD_IMAGE_DIGEST_TAG=ghcr.io/denismakogon/ffmpeg-debian@sha256:2b421ef4be773ce80d3f82717d9fd845e6cc03dfad4c961b2886b7a59117a609\" \\\n  --build-arg \"GOLANG_VERSION=1\" \\\n  .\n```\nPlease note, golang version must in ffmpeg image must match to `GOLANG_VERSION` build arg.\n\nOpenJDK image:\n```shell\ndocker build -t ghcr.io/denismakogon/ffmpeg-debian:5.0.1-openjdk-18 -f openjdk/Dockerfile \\\n  --build-arg \"BASE_IMAGE_DIGEST_TAG=ghcr.io/denismakogon/ffmpeg-debian@sha256:f6781e831ef68a7ff7170374639be85098b49c6a7740a3652d2f8f1ba43afc1e\" \\\n  --build-arg \"BUILD_IMAGE_DIGEST_TAG=ghcr.io/denismakogon/ffmpeg-debian@sha256:2b421ef4be773ce80d3f82717d9fd845e6cc03dfad4c961b2886b7a59117a609\" \\\n  --build-arg \"JDK_PKG_URL=https://download.java.net/java/GA/jdk18.0.1.1/65ae32619e2f40f3a9af3af1851d6e19/2/GPL/openjdk-18.0.1.1_linux-x64_bin.tar.gz\" \\\n  .\n```\n\n```shell\ndocker build -t ghcr.io/denismakogon/ffmpeg-debian:5.0.1-openjdk-19-ea-panama -f openjdk/Dockerfile \\\n  --build-arg \"FFMPEG_VERSION=5.0.1\" \\\n  --build-arg \"JDK_PKG_URL=https://download.java.net/java/early_access/panama/1/openjdk-19-panama+1-13_linux-x64_bin.tar.gz\" .\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdenismakogon%2Fffmpeg-debian","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdenismakogon%2Fffmpeg-debian","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdenismakogon%2Fffmpeg-debian/lists"}