本系列 以 ffmpeg4.2 源码为准,下载地址:链接:百度网盘 提取码:g3k8
本系列主要分析各种 ffmpeg 命令参数 在代码里是如何实现的。a.mp4下载链接:百度网盘,提取码:nl0s 。
命令如下:ffmpeg -i a.mp4 -pix_fmt yuv420p a.yuv
上面的命令是转成 yuv 的封装格式,封装格式前面《ffmpeg命令分析-acc》已经讲过了,本文主要讲解,a.mp4 原本是有音频的,转成yuv之后音频没有,所以本文主要讲解音频是如何丢包的。如下图
在 open_output_file() 函数里面,用 av_guess_codec() 函数知道,yuv的封装格式不支持音频 codec , av_guess_codec() 返回了 AV_CODEC_ID_NONE,所以不会执行 new_audio_stream()。所以音频流会丢弃包。
为什么不执行 new_audio_stream() 就会丢弃读取出来的AVPakcet?请阅读 《ffmpeg命令分析-vn》
版权所属:知识星球:弦外之音,QQ:2338195090。 由于笔者的水平有限, 加之编写的同时还要参与开发工作,文中难免会出现一些错误或者不准确的地方,恳请读者批评指正。如果读者有任何宝贵意见,可以加我微信 Loken1。