搭建webassembly网页播放器(三)---emcc编译ffmpeg编译库
经过前面的2个部分,我们完成了环境的搭建,接下来我们使用emcc编译ffmpeg库,注意同样由于软链接的缘故,我们不能在windows和linux的共享文件夹里使用emcc编译ffmpeg, 这里我们选择在/mnt/work/webffmpeg目录下编译
视频课程以及源码下载:
https://edu.csdn.net/course/detail/35615
章节列表:
- 搭建webassembly网页播放器(一)—centeros 虚拟环境搭建
- 搭建webassembly网页播放器(二)—emcc环境搭建
- 搭建webassembly网页播放器(三)—emcc编译ffmpeg编译库
- 搭建webassembly网页播放器(四)—网页调用ffmpeg.js单元测试用例
- 搭建webassembly网页播放器(五)—网页播放器开发
- 搭建webassembly网页播放器(六)—websocket后台服务程序
emcc编译ffmpeg编译库
- ffmpeg下载
- 编写ffmpeg编译脚本
ffmpeg下载
- 使用git下载最新版的ffmpeg源码
git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg
几个常用的编译选项的介绍:
- /configure --help , 查看支持的编译选项,以及ffmpeg的默认支持项.
- ./configure --list-decoders
具体的大家视自己的项目需求去查看,这里不做过多介绍.- /configure --help , 查看支持的编译选项,以及ffmpeg的默认支持项.
编写ffmpeg编译脚本
ffmpeg支持指定第三方gcc/g++,这里我们需要指定的gcc就是 emcc, g++就是em++,同时需要打开–enable-cross-compile,表示支持交叉编译.
首先我们把我们在web-ffmpeg的目录梳理下:
decode : 用于存放我们的调用接口,主要是编解码的代码.
doc : 编译脚本
ffmpeg :ffmpeg源码
ffmpeg-emcc-lib: emcc编译ffmpeg产生的库的存放位置
./configure 查看配置方法:
接下来, 我们在doc目录下,编写脚本: build_ffmpeg.sh
(由于我们的网页播放器需要支持解码h264以及h265,因此这2个编译选项被打开了,而其它的都被关闭了)
cd ffmpeg
make clean
emconfigure ./configure --cc="emcc" --cxx="em++" --ar="emar" \
--ranlib=emranlib --prefix=../ffmpeg-emcc/ \
--enable-cross-compile --target-os=none \
--arch=x86_32 --cpu=generic --enable-gpl \
--enable-version3 --disable-avdevice \
--disable-postproc --disable-avfilter \
--disable-programs --disable-logging \
--disable-everything --enable-avformat \--enable-decoder=hevc --enable-decoder=h264 --enable-decoder=h264_qsv \--enable-decoder=hevc_qsv \--enable-decoder=aac \--disable-ffplay --disable-ffprobe --disable-asm \--disable-doc --disable-devices --disable-network \--disable-hwaccels \--disable-parsers --disable-bsfs --disable-debug \--enable-protocol=file --disable-indevs --disable-outdevs \--enable-parser=hevc --enable-parser=h264make
make install
执行:./doc/build_ffmpeg.sh
(注意这个时候我们需要在/mnt/work/web-ffmpeg目录下执行)
编译输出:
上面的步骤要开始卡大约3-5分钟,然后开始正式编译:
编译成功后,我们可以在:ffmpeg-emcc-lib目录下,看到编译生成的静态库:
OK,到了这一步,我们已经得到了我们所需要的静态库,下一步我们将要编写代码,链接这些静态库,同时在网页上调用我们自己写的C++代码.
搭建webassembly网页播放器(三)---emcc编译ffmpeg编译库相关推荐
- 搭建webassembly网页播放器(二)---emcc环境搭建
emcc全称 emscripten,最重要的功能就是让网页js调用c/c++ 成为可能,是我们基于webassembly搭建网页播放器必须依赖的编译工具. emcc官网的搭建教程较为简单,安装过程中最 ...
- 搭建webassembly网页播放器(五)---网页播放器开发
在前面的章节中,我们解决emcc环境以及使用emcc来编译ffmpeg得到网页开发中可以使用的js库,本章节,我们就来实现一个简单的播放器. 视频课程以及源码下载: https://edu.csdn. ...
- 搭建webassembly网页播放器(六)---websocket后台服务程序
这里我们主要介绍后台搭建技术,前端搭建好后,需要后端配置展现,实现的效果就是 :网页连接上我们的 websocket服务后,我们就从H264文件中不断的提取出H264帧,然后传递给前端,前端调用web ...
- php_online_coding,搭建自己的网页播放器——MKOnlinePlayer
MKOnlinePlayer 是一款开源的基于 Meting 的在线音乐播放器.具有音乐搜索.播放.下载.歌词同步显示.个人网易云音乐播放列表同步等功能.界面模仿 QQ 音乐的网页在线播放器,非常好看 ...
- 挑选几款开源的、优秀的H.265网页播放器,进行特征整理及使用评价
H265和H264都是视频编码规范,H265是新一代视频编码规范,与H264相比压缩比更高,同样的码率下视频质量更高,或者说同样质量的视频占用的带宽和存储更少.之前由于终端支持有限,h265的推广使用 ...
- jw player flash网页播放器 参数说明以及应用配置
jw player flash网页播放器 参数说明以及应用配置 1.参数解释 这些参数可以配置被嵌入到html中的播放器的行为和外观.如果使用swfobject.js,可以用addVariable() ...
- 网页播放器实现全屏的方法总结
网页播放器全屏的方法(有点气,少写了)这是自己总结的,刚刚要完的时候点错了,重新发送一次,老子好气,该打游戏的时间,浪费了,这里就偷工减料了! 1.media player全屏方法 <scrip ...
- 经常使用网页播放器代码
经常使用网页播放器代码 我们在网页上看到的播放器无外乎WMP/RealOne/Macromedia Flash Player,其它的无非是面板不同,或者加入了其它控件,对于计算机上安装的一些播放器也都 ...
- Dewplayer MP3网页播放器
顺便提一下jMP3 (javaScript MP3 player):http://www.sean-o.com/jquery/jmp3/ 官网:http://www.alsacreations.fr/ ...
最新文章
- 如何写优雅的SQL原生语句?
- Codechef:Path Triples On Tree
- halcon的算子清点:Chapter 8线的属性
- 开发中为什么使用线程池的原因
- C/C++码农到工程师进化之路
- 南京软件测试自学英语,南京软件测试门槛高吗?南京软件测试学哪些
- ASP.NET适合做互联网吗,适合做电子商务平台吗?
- H5文本复制到剪切板
- 计算机毕业论文指导,计算机毕业论文指导
- 2019年MongoDB中文社区 长沙大会
- Linux相关命令(三)
- 各代iPhone iPad 内部代号
- 统计学---数据的误差
- 用计算机画有常数的函数图像,信息技术应用 用计算机画函数图象教学实录
- 一个 Spring Boot 面试题
- Ubuntu 16.04中为Chromium、Chrome、Firefox安装Flash播放器插件
- Go语言 -- 关于nil的幺蛾子
- 从Dump到POC系列一:Win32k内核提权漏洞分析
- 遥志无盘如何设置副服务器,CCDisk遥志虚拟磁盘使用说明图解
- 用友NCC2105/2111账号密码批量重置工具