Skip to content

Add: support for saving audio to file in sample #2796

Add: support for saving audio to file in sample

Add: support for saving audio to file in sample #2796

Workflow file for this run

name: FFmpeg plugin build
on:
# allow manually trigger
workflow_dispatch:
push:
branches:
- main
- 'maint-**'
pull_request:
branches:
- main
- 'maint-**'
permissions:
contents: read
jobs:
changes:
runs-on: ubuntu-latest
permissions:
pull-requests: read
outputs:
changed: ${{ steps.filter.outputs.ffmpeg_plugin == 'true' }}
steps:
- uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v2
id: filter
with:
filters: .github/path_filters.yml
build:
needs: changes
if: ${{ github.repository == 'OpenVisualCloud/Media-Transport-Library' && needs.changes.outputs.changed == 'true' }}
runs-on: ${{ matrix.os }}
timeout-minutes: 60
container:
image: ubuntu:latest
strategy:
matrix:
os: [ubuntu-latest]
steps:
- name: Harden Runner
uses: step-security/harden-runner@0d381219ddf674d61a7572ddd19d7941e271515c # v2.9.0
with:
egress-policy: audit
- name: Update to latest git
run: |
apt-get update -y
apt-get install -y git
- name: Git config
run: |
git config --global user.email "[email protected]"
git config --global user.name "Your Name"
- name: checkout kahawai repo
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
- name: checkout openh264 repo
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
with:
repository: 'cisco/openh264'
ref: openh264v2.4.0
path: openh264
- name: checkout FFmpeg repo
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
with:
repository: 'FFmpeg/FFmpeg'
path: FFmpeg
fetch-depth: 0
- name: Install the build dependency
run: |
apt-get update -y
apt-get install -y sudo git gcc meson python3 python3-pyelftools pkg-config libnuma-dev libjson-c-dev libpcap-dev libgtest-dev libsdl2-dev libsdl2-ttf-dev libssl-dev
apt-get install -y dpdk-dev
apt-get install -y nasm yasm
apt-get install -y libavcodec-dev
apt-get install -y make m4 clang llvm zlib1g-dev libelf-dev libcap-ng-dev gcc-multilib
apt-get install -y systemtap-sdt-dev
- name: Build
run: |
./build.sh
- name: Build st22 avcodec plugin
run: |
./script/build_st22_avcodec_plugin.sh
- name: Build openh264
run: |
cd openh264/
make -j "$(nproc)"
sudo make install
sudo ldconfig
cd ../
- name: Build ffmpeg 7.0 plugin
run: |
cd FFmpeg/
git checkout release/7.0
cp -f ../ecosystem/ffmpeg_plugin/mtl_*.c ./libavdevice/
cp -f ../ecosystem/ffmpeg_plugin/mtl_*.h ./libavdevice/
git am ../ecosystem/ffmpeg_plugin/7.0/*.patch
make clean || true
./configure --enable-shared --disable-static --enable-nonfree --enable-pic --enable-gpl --enable-libopenh264 --enable-encoder=libopenh264 --enable-mtl
make -j "$(nproc)"
sudo make install
sudo ldconfig
cd ../
- name: Build ffmpeg 6.1 plugin
run: |
cd FFmpeg/
git checkout release/6.1
cp -f ../ecosystem/ffmpeg_plugin/mtl_*.c ./libavdevice/
cp -f ../ecosystem/ffmpeg_plugin/mtl_*.h ./libavdevice/
git am ../ecosystem/ffmpeg_plugin/6.1/*.patch
make clean || true
./configure --enable-shared --disable-static --enable-nonfree --enable-pic --enable-gpl --enable-libopenh264 --enable-encoder=libopenh264 --enable-mtl
make -j "$(nproc)"
sudo make install
sudo ldconfig
cd ../
- name: Build ffmpeg 4.4 plugin
run: |
cd FFmpeg/
git checkout release/4.4
cp -f ../ecosystem/ffmpeg_plugin/mtl_*.c ./libavdevice/
cp -f ../ecosystem/ffmpeg_plugin/mtl_*.h ./libavdevice/
git am ../ecosystem/ffmpeg_plugin/4.4/*.patch
make clean || true
./configure --enable-shared --disable-static --enable-nonfree --enable-pic --enable-gpl --enable-libopenh264 --enable-encoder=libopenh264 --enable-mtl
make -j "$(nproc)"
sudo make install
sudo ldconfig
cd ../