Skip to content

Build non-GPL FFmpeg from source #32

Build non-GPL FFmpeg from source

Build non-GPL FFmpeg from source #32

Workflow file for this run

# Taken and adapted from torchaudio.
# Ref: https://github.com/pytorch/audio/blob/main/.github/workflows/ffmpeg.yml
# This job is not directly related to regular CI pipeline.
# It is intended to create FFmpeg binaries that we upload on S3,
# which then will be used during all the build process in CI or local.
#
# This job does not include the uploading part.
# Upload needs to be done manually, and it should be done only once
# per new major release of FFmepg.
name: Build non-GPL FFmpeg from source
on:
workflow_dispatch:
schedule:
- cron: '0 0 * * 0' # on sunday
defaults:
run:
shell: bash -l -eo pipefail {0}
jobs:
LGPL-Linux-x86_64:
strategy:
fail-fast: false
matrix:
ffmpeg-version: ["4.4.4", "5.1.4", "6.1.1", "7.0.1"]
uses: pytorch/test-infra/.github/workflows/linux_job.yml@main
with:
job-name: Build
upload-artifact: ffmpeg-lgpl
repository: pytorch/torchcodec
script: |
export FFMPEG_VERSION="${{ matrix.ffmpeg-version }}"
export FFMPEG_ROOT="${PWD}/ffmpeg"
packaging/build_ffmpeg.sh
tar -cf ffmpeg.tar.gz ffmpeg/include ffmpeg/lib
artifact_dir="${RUNNER_ARTIFACT_DIR}/$(date +%Y-%m-%d)/linux_x86_64"
mkdir -p "${artifact_dir}"
mv ffmpeg.tar.gz "${artifact_dir}/${FFMPEG_VERSION}.tar.gz"
LGPL-macOS:
strategy:
fail-fast: false
matrix:
ffmpeg-version: ["4.4.4", "5.1.4", "6.1.1", "7.0.1"]
runner: ["macos-m1-stable"]
uses: pytorch/test-infra/.github/workflows/macos_job.yml@main
with:
job-name: Build
upload-artifact: ffmpeg-lgpl
repository: pytorch/torchcodec
runner: "${{ matrix.runner }}"
script: |
export FFMPEG_VERSION="${{ matrix.ffmpeg-version }}"
export FFMPEG_ROOT="${PWD}/ffmpeg"
packaging/build_ffmpeg.sh
tar -cf ffmpeg.tar.gz ffmpeg/include ffmpeg/lib
artifact_dir="${RUNNER_ARTIFACT_DIR}/$(date +%Y-%m-%d)/macos_$(uname -m)"
mkdir -p "${artifact_dir}"
mv ffmpeg.tar.gz "${artifact_dir}/${FFMPEG_VERSION}.tar.gz"