一个人做网站时间,做徽标的网站,做网站服务器收费吗,做移动端电影网站【视频格式转换】【ffmepg】对mp4文件进行重新编码输出新的mp4文件
背景 之前开发调试了个能正常调用ffmpeg解码mp4文件得到yuv数据的testbed(把ffmpeg开源库移植并交叉编译到一个嵌入式平台)#xff0c;用了好几年了#xff0c;今天用来挂测一批新的采集视频mp4文件#x…【视频格式转换】【ffmepg】对mp4文件进行重新编码输出新的mp4文件
背景 之前开发调试了个能正常调用ffmpeg解码mp4文件得到yuv数据的testbed(把ffmpeg开源库移植并交叉编译到一个嵌入式平台)用了好几年了今天用来挂测一批新的采集视频mp4文件发现必崩溃定位排查是ffmpeg解码有内存泄露最后oom了。但是挂测另外一批视频并不会出现内存泄露情况不过还是查看了下代码以及完善流程怎么改调试都会必现下载最新的源码调试也会就差对着开源代码查了想着ffmpeg的广泛性按理内部不至于有这么大的bug。又问了下两批视频采集的不同之处对比发现正常能解码的mp4文件是用potplayer或者公司其他团队基于ffmpeg库开发demo工具采集的而异常崩溃的视频则是软龙格软件采集的。看来是软龙格公司软件可能又特殊什么操作吧用ffmpeg命令看了下两种mp4文件信息比对有个底层encoder版本号不一样。然后想着把会崩溃的mp4文件解码后再重新编码成新的mp4文件挂测试下发现可以正常了。
解决方案 使用ffmpeg命令把原来的mp4文件重新解码再编码成新的mp4文件命令如下
ffmpeg -i input.mp4 -c:v libx264 -x264-params bframes0:ref1 -pix_fmt nv12 output.mp4总结 任何问题都可以利用简单的输入-处理-输出的模型进行高效分析定位先从输入定位对齐输入看看输入是否一样如果输入一致输出不一样那么处理环节肯定有问题如果输入不一致输出完全不符合预期那处理环节不够健壮有时间应该完善处理如果不重要不紧急可以变成同输入总之灵活应用芒格说过每个人都应该学习掌握100种框架模型这样可以大大提高做事效率和成功率。确实是的。