经过前面两个部分,环境的构筑完成了。 然后,使用emcc编译ffmpeg库。 请注意,由于软链接,无法在windows和linux共享文件夹中使用emcc编译ffmpeg。 现在,我们决定在/mnt/work/webffmpeg目录中进行编译
视频课程和源代码下载:
3359 edu.csdn.net/course/detail/35615
章节列表:
构建webassemblyweb播放器(一(—构建center操作系统虚拟环境)二)构建emcc环境(构建webassemblyweb播放器)三) emcc编译ffmpeg -网页调用ffmpeg.js单元测试用例构建webassemblyweb播放器(五) webassemblyweb播放器开发构建webassemblyweb播放器(六)—websocket守护程序emcc编译fmpeg
使用fmpeg下载构件下载最新版的ffmpeg源代码
git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg
常用编译选项介绍:
/configure--查看help、支持的编译选项和ffmpeg的默认支持项。
./configure --list-decoders
具体来说,大家根据自己项目的需求去看。 这里就不多介绍了。
ffmpeg编写编译脚本ffmpeg支持指定第三方gcc/g。 此处指定的gcc为emcc,g为em,必须打开-enable-cross-compile以表示支持交叉编译。
首先,在web-ffmpeg的目录中整理:
decode :用于存储我们的调用接口,主要是编解码器的代码。
doc :编译脚本
ffmpeg :ffmpeg源代码
ffmpeg-emcc-lib: emcc编译ffmpeg生成的库的存储位置
. /查看配置方法:
然后,在doc目录下编写脚本。build_ffmpeg.sh
(这两个编译选项将被打开,其他的将被关闭,因为我们的网页播放器需要支持h264和h265的解码。)
cdfmpegmakecleanemconfigure./configure-- cc=' emcc '-- cxx=' em '-- ar=' emar '--ranlib=' emranlib-。 --arch=x86 _ 32-- CPU=generic-- enable-GPL--enable-enable-disable-postproc---disable-av filter --disable-everything---- enable-decoder=hevc-- enable-decoder=h264-- enable-decoder=h264 _ qsv (-) le-ffplay-- disable-ff probe---disable-ASM-- disable-doc-- disable-devices-disable-networe
(注意此时必须在/mnt/work/web-ffmpeg目录中运行。)
编译输出:
以上步骤开始刷卡约3-5分钟后,正式开始编译:
编译成功后,可以在:ffmpeg-emcc-lib目录中查看编译生成的静态库:
好的,到此为止,我们得到了需要的静态库。 下一步是编写代码,在链接这些静态库的同时,在网页上调用他们编写的C代码。