Skip to content

Commit 66d841f

Browse files
committed
introduce os specific instructions to install FFmpeg in GitHub workflow
1 parent 66642a5 commit 66d841f

File tree

1 file changed

+33
-5
lines changed

1 file changed

+33
-5
lines changed

.github/workflows/unit-test.yml

Lines changed: 33 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,39 @@ jobs:
2323
- name: Checkout code changes
2424
uses: actions/checkout@v6
2525

26-
- name: Setup FFmpeg
27-
uses: FedericoCarboni/setup-ffmpeg@v3
28-
with:
29-
# bump: ffmpeg-ci /ffmpeg-version: '([\d.]+)'/ docker:mwader/static-ffmpeg|~7.0
30-
ffmpeg-version: '7.0.2'
26+
- name: Install FFmpeg
27+
shell: bash
28+
run: |
29+
set -euo pipefail
30+
# bump: ffmpeg-ci /ffmpeg-version: '([\d.]+)'/ docker:mwader/static-ffmpeg|~8.0
31+
FF_VERSION="8.0.1"
32+
INSTALL_DIR="$HOME/ffmpeg"
33+
mkdir -p "$INSTALL_DIR"
34+
35+
if [[ "${{ runner.os }}" == "Linux" ]]; then
36+
docker pull mwader/static-ffmpeg:$FF_VERSION
37+
CID=$(docker create mwader/static-ffmpeg:$FF_VERSION)
38+
docker cp "$CID:/ffmpeg" "$INSTALL_DIR/ffmpeg"
39+
docker cp "$CID:/ffprobe" "$INSTALL_DIR/ffprobe"
40+
docker rm "$CID"
41+
chmod +x "$INSTALL_DIR/"*
42+
43+
elif [[ "${{ runner.os }}" == "macOS" ]]; then
44+
curl -L https://evermeet.cx/ffmpeg/ffmpeg-$FF_VERSION.zip -o ffmpeg.zip
45+
unzip ffmpeg.zip
46+
mv ffmpeg "$INSTALL_DIR/ffmpeg"
47+
curl -L https://evermeet.cx/ffmpeg/ffprobe-$FF_VERSION.zip -o ffprobe.zip
48+
unzip ffprobe.zip
49+
mv ffprobe "$INSTALL_DIR/ffprobe"
50+
chmod +x "$INSTALL_DIR/"*
51+
52+
elif [[ "${{ runner.os }}" == "Windows" ]]; then
53+
curl -L https://www.gyan.dev/ffmpeg/builds/packages/ffmpeg-$FF_VERSION-essentials_build.zip -o ffmpeg.zip
54+
unzip ffmpeg.zip
55+
mv ffmpeg-*/bin/* "$INSTALL_DIR/"
56+
fi
57+
58+
echo "$INSTALL_DIR" >> "$GITHUB_PATH"
3159
3260
- name: Setup Java
3361
uses: actions/setup-java@v5

0 commit comments

Comments
 (0)