ffmpeg软件
windows环境
https://ffmpeg.zeranoe.com/builds/
在Linux里面使用wget工具下载较快:ffmpeg-20191013-4f4334b-win64-static.zip
解压到D盘并修改文件名:D:\work\ffmpeg\bin
添加环境变量:在用户和系统path变量中新建环境变量
在dos命令串口测试如下:【若遇到不能自动识别,多试几次设置环境变量】
Linux环境
https://ffmpeg.org/releases/ffmpeg-3.2.4.tar.xz
编译方法:待续。。。
Windows下测试
ffplay播放MP4文件:
ffplay 190904020601-190904020742-sub-ms-0-0.mp4
ffmpeg从MP4文件中抽取视频流导出为裸H264数据
ffmpeg -i 190904020601-190904020742-sub-ms-0-0.mp4 -an -vcodec copy -bsf:v h264_mp4toannexb output-ok.h264
ffplay播放H264裸流
ffplay output-ok.h264
从不完整的MP4文件转成H264裸流
ffmpeg -i 190401163952-190401164121-sub-ms-0-12-bad.mp4 -an -vcodec copy -bsf:v h264_mp4toannexb output-bad.h264,转换失败
MP4转H264测试
完整MP4文件转H264正常,对比文件如下:
可依稀看出H264文件头,和MP4文件的封装头数据,下面是不完整的MP4文件:
H264帧头是00 00 00 01开始,但是会有00 00 01 xx 61这种格式,这是什么意思?怎么手动提取H264裸流?
详细见下一篇:ffmpeg学习-从不完整的MP4文件提取H264裸流