read_frame_internal读取AVPacket—FFmpeg源码分析

read_frame_internal() 函数里面的逻辑分为两块,如下:

1,不需要对 packet 进行 parse 解析操作

这是比较常用的场景,MP4,FLV 都是不需要 进行 parse 解析的。这种情况下,read_frame_internal() 本身没有太多逻辑的,就是直接调 AVInputFormatread_packet 接口读取到 packet ,然后就直接返回了。

0-1

MP4 与 FLV 场景下的 st->need_parsingst->parser 变量都是 0 ,所以立即设置了 got_packet = 1,不会跑进去 parse 的逻辑。

相关命令如下:

ffmpeg -i juren-30s.mp4 -an out.flv -y
ffmpeg -i juren-30s.flv -an out.flv -y

2,需要对 packet 进行 parse 解析操作

以下是 VIP会员 专属内容,点击购买 FFmpeg原理VIP版

版权所属 xianwanzhiyin.net 罗上文 2023 all right reserved,powered by Gitbook该文件修订时间: 2023-06-10 00:49:22

results matching ""

    No results matching ""