github 工作流自动编译 ffmpeg for windows on arm
利用:IsaacShelton/update-existing-release
https://github.com/IsaacShelton/update-existing-release
参考:https://github.com/dvhh/ffmpeg-wos-arm64-build
这个是我修改的仓库,需要的朋友自取:
https://github.com/wmx-github/ffmpeg-wos-arm64-build
使用:
1 先创建一个release 和tag
我这里release是 v6.1 tag是v6.1
2 把库文件都打包在一起
修改:
yaml
name: Build
on:
push:
workflow_dispatch:
schedule:
- cron: 0 0 * * 1
jobs:
build:
# The type of runner that the job will run on
runs-on: ubuntu-latest
container:
image: mstorsjo/llvm-mingw:20230614
steps:
- uses: actions/checkout@v3
with:
repository: libsdl-org/SDL
path: sdl
ref: SDL2
- name: build-sdl
run: |
echo ${{ github.workspace }}
mkdir -p ${{ github.workspace }}/local
mkdir build
cd build
../sdl/configure --host=aarch64-w64-mingw32 --prefix=${{ github.workspace }}/local
make -j16
make install
- name: build x264
run: |
git clone --depth=1 https://code.videolan.org/videolan/x264.git x264
cd x264
export PKG_CONFIG_LIBDIR=${{ github.workspace }}/local/lib/pkgconfig
./configure --host=aarch64-w64-mingw32 --prefix=${{ github.workspace }}/local --enable-pic --extra-cflags="-mfpu=neon" --cross-prefix=aarch64-w64-mingw32- --enable-shared --enable-static
make -j16
make install
- uses: actions/checkout@v3
- uses: actions/checkout@v3
with:
repository: FFmpeg/FFmpeg
path: ffmpeg
ref: release/6.1
- name: build ffmpeg
run: |
# /opt/llvm-mingw/aarch64-w64-mingw32/
# ln -s ${{ github.workspace }}/local/bin/sdl2-config ${{ github.workspace }}/local/bin/aarch64-w64-mingw32-sdl2-config
# chmod +x ${{ github.workspace }}/local/bin/sdl2-config ${{ github.workspace }}/local/bin/aarch64-w64-mingw32-sdl2-config
# export PATH=$PATH:${{ github.workspace }}/local/bin
# do not work check : https://trac.ffmpeg.org/wiki/HWAccelIntro#DXVA2
# might need more than that
# curl https://download.videolan.org/pub/contrib/dxva2api.h -o /opt/llvm-mingw/aarch64-w64-mingw32/include/dxva2api.h
cd ffmpeg
export PKG_CONFIG_LIBDIR=${{ github.workspace }}/local/lib/pkgconfig
./configure --pkg-config=/usr/bin/x86_64-pc-linux-gnu-pkg-config --pkgconfigdir=${{ github.workspace }}/local/lib/pkgconfig --cross-prefix=aarch64-w64-mingw32- --arch=arm64 --target-os=mingw32 --enable-sdl --disable-doc --prefix=${{ github.workspace }}/local --disable-static --enable-shared --enable-libx264 --enable-gpl --enable-nonfree
make -j16
make install
- name: archive
run: |
mkdir output
readlink -f output
cp -r ${{ github.workspace }}/local output
# tar cfz all.tar.gz ${{ github.workspace }}/local/bin
cd output
zip -r -D ../ffmpeg-wos-arm64.zip .
- name: Update existing release
uses: IsaacShelton/update-existing-release@v1.3.4
with:
token: ${{secrets.GITHUB_TOKEN}}
release: "v6.1"
tag: "v6.1"
replace: true
files: >
ffmpeg-wos-arm64.zip