音视频入门(iOS编译ffmpeg的configure配置)

本篇文章接之前的x264编译configure选项,写一下ffmpeg的configure选项。

ffmpeg的arm64架构configure选项

./configure \
--disable-everything \   //首先关闭所有configure选项,保证编译的时候不会需要引入很多多余的代码模块
--enable-gpl \           //使用gpl协议,如果是公司产品要使用ffmpeg就要小心了
--enable-nonfree \
--target-os=darwin \        
--enable-shared \
--enable-avresample \    //使用libavresample模块
--enable-libx264 \       //使用x264库
--enable-libfdk-aac \    
--enable-muxer=flv \     //支持封装flv格式
--enable-demuxer=flv \   //支持解封装flv格式
--enable-muxer=mp4 \
--enable-demuxer=mov \
--enable-encoder=libx264 \      //支持h264编码
--enable-decoder=h264 \         //支持h264解码
--enable-encoder=libfdk_aac \
--enable-decoder=libfdk_aac \
--enable-protocol=file \        //支持从本地文件(ffmpeg把本地文件当作了一种协议)
--enable-rdft \                 //这里enable rdft库以及fft库,是因为学习ffplayer tutorial的时候编译代码显示缺少了这两种库,所以在这里填上
--enable-fft \
--extra-cflags="-I../x264/output/arm64/include -I../fdk-aac-0.1.6/output/arm64/include/fdk-aac" \   //需要引入的x264库以及fdk库的头文件所在的文件夹,这里使用的是相对路径
--extra-ldflags="-L../fdk-aac-0.1.6/output/fat/lib -L../x264/output/fat/lib"  \           //需要引入的x264库以及fdk库的实现文件所在的文件夹
--enable-cross-compile \                                   
--cc="xcrun -sdk iphoneos clang -arch arm64" \
--arch="arm64" \
--prefix="./output/fat/arm64"

ffmpeg的x64架构configure选项

./configure \
--disable-everything \
--enable-gpl \
--enable-nonfree \
--target-os=darwin \
--enable-shared \
--enable-avresample \
--enable-libx264 \
--enable-libfdk-aac \
--enable-muxer=flv \
--enable-demuxer=flv \
--enable-muxer=mp4 \
--enable-demuxer=mov \
--enable-encoder=libx264 \
--enable-decoder=h264 \
--enable-encoder=libfdk_aac \
--enable-decoder=libfdk_aac \
--enable-protocol=file \
--enable-rdft \
--enable-fft \
--extra-cflags="-I../x264/output/arm64/include -I../fdk-aac-0.1.6/output/arm64/include/fdk-aac" \
--extra-ldflags="-L../fdk-aac-0.1.6/output/fat/lib -L../x264/output/fat/lib"  \
--enable-cross-compile \
--cc="xcrun -sdk iphonesimulator clang -arch x86_64" \
--arch="x86_64" \
--prefix="./output/fat/x86_64"

有可能在实际编译的时候你又会被提示缺少了一些实现文件,可以使用configure的help功能,查看configure具体有哪一些选项可以对应到缺少的实现文件。这一步目前没找到很好的解决方法,我是自己一个个实验或着google出来的。

猜你喜欢

转载自blog.csdn.net/arceushs/article/details/86221074