ffmpeg交叉编译遇到的几个坑
问题1:ERROR:srt>=1.3.0 not found using pkg-config
问题描述:
无法根据配置生成Makefile文件
原因
查看 ffbuild/config.log文件,发现编译配置使能了libsrt,libsrt需要用到OpenSSL相关动态库文件,未指定库文件,编译时找不到OpenSSL库
解决方案
通过–extra-libs 指定相关库文件
问题2:"/usr/local/include" is unsafe for cross-compilation
问题描述:
编译过程中,一直提示连接不安全
原因
生成的Makefile文件中 指定头文件(.h文件)的路径CFLAGS里包含/usr/local/include。
解决方案
vim 打开编辑 ffbuild/config.mak文件,找到CFLAGS,删除 -I/usr/local/include/
问题3:error:'SRTO STRICTENC’undeclared
问题描述:
编译报错SRTO_STRICTENC 未定义, SRTO_SMOOTHER 未定义
原因
在Github上找到了相关问题的讨论https://github.com/Haivision/srt/issues/1382,大致是宏定义名称被重命名了,所以ffmpeg找到对应的项;
解决方案
修改libavformat/libsrt.c文件,用新的宏定义名称替换旧的