0
点赞
收藏
分享

微信扫一扫

【云原生之kubernetes实战】k8s环境中部署Nginx服务

哈哈镜6567 2024-09-05 阅读 32

本地电脑交叉编译ffmpeg 到 windows on arm64

参考ffmpeg官方文档:
https://trac.ffmpeg.org/wiki/CompilationGuide/CrossCompilingForWindows

参考:
https://github.com/BtbN/FFmpeg-Builds/issues/95

参考:
https://github.com/dvhh/ffmpeg-wos-arm64-build

docker镜像: llvm-mingw
https://hub.docker.com/r/mstorsjo/llvm-mingw/

拉取镜像

docker run -it mstorsjo/llvm-mingw:latest

构建脚本

root@0677f504e2da:/build# vi toolchain-llvm-mingw.cmake 

toolchain-llvm-mingw.cmake 填入 :

set(CMAKE_SYSTEM_NAME Windows)
set(CMAKE_SYSTEM_PROCESSOR aarch64)

set(CMAKE_C_COMPILER "aarch64-w64-mingw32-gcc")
set(CMAKE_CXX_COMPILER "aarch64-w64-mingw32-g++")

然后 Esc ,输入 :wq 回车保存

编译SDL

root@0677f504e2da:/build# git clone https://github.com/libsdl-org/SDL.git
root@0677f504e2da:/build/ cd SDL
root@0677f504e2da:/build/SDL# 
cmake -S . -B build \
-DCMAKE_TOOLCHAIN_FILE=/build/toolchain-llvm-mingw.cmake \
-DCMAKE_INSTALL_PREFIX=/build/install
root@0677f504e2da:/build/SDL# cmake --build build
root@0677f504e2da:/build/SDL# cmake --install build

查看格式:

root@0677f504e2da:/build/SDL# file  /build/install/bin/SDL2.dll 
./install/bin/SDL2.dll: PE32+ executable (DLL) (GUI) Aarch64, for MS Windows

配置SDL 相关路径,使得pkgconfig能找到SDL

export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/build/SDL/install/lib/pkgconfig

配置sdl2-config

ln -s  /build/install/bin/sdl2-config /usr/local/bin/aarch64-w64-mingw32-sdl2-config
chmod +x /build/install/bin/sdl2-config /usr/local/bin/aarch64-w64-mingw32-sdl2-config
export PATH=$PATH:/usr/local/bin

编译FFmpeg

root@0677f504e2da:/build#  git clone https://github.com/FFmpeg/FFmpeg.git
root@0677f504e2da:/build# cd FFmpeg/
root@0677f504e2da:/build/FFmpeg# 
 ./configure --pkg-config=/usr/bin/pkg-config \
	--pkgconfigdir=/build/install/lib/pkgconfig \
	--cross-prefix=aarch64-w64-mingw32- \
	--arch=arm64 \
	--target-os=mingw32 \
	--prefix=./install \
	--disable-doc \
	--disable-static \
	--enable-sdl \
	--enable-shared \
	--enable-gpl \
	--enable-nonfree

./configure 输出:

Enabled outdevs:
sdl2
root@0677f504e2da:/build/FFmpeg# make -j12

查看格式:

root@0677f504e2da:/build/FFmpeg# file ./ffmpeg.exe 
./ffmpeg.exe: PE32+ executable (console) Aarch64, for MS Windows

copy 到win on arm64 电脑上测试

(base) wmx@wmx-ubuntu:~$ docker ps
CONTAINER ID   IMAGE                                COMMAND           CREATED        STATUS       PORTS     NAMES
0677f504e2da   mstorsjo/llvm-mingw:latest           "/bin/bash"       14 hours ago   Up 7 hours             friendly_goldstine

复制到本机

docker cp  0677f504e2da:/build/FFmpeg/install  ./ffmpeg

把 ./ffmpeg 复制到win on arm64 电脑上测试

举报

相关推荐

0 条评论