处理逻辑上还有些疑惑
来源:5-20 视频裁剪(二)

北漂的虾兵
2022-12-16
//8. 从源多媒体文件中读取音频/视频/字幕数据到目的文件中
while(av_read_frame(pFmtCtx, &pkt) >= 0) {
...
if(av_q2d(inStream->time_base) * pkt.pts > endtime) {
av_log(oFmtCtx, AV_LOG_INFO, "success!\n");
break;
}
.....
}
这里是一帧一帧的读取数据,里面可能包含音频流、视频流和字幕流,如果只读到一个流的包其pts大于endtime,就结束所有流的读取,是否会导致有些流的数据还没读到endtime就结束了。还是说这个av_read_frame只会把endtime之前所有流的包都读取完毕了,才会读取第一个大于endtime的包。不会先把音频流endtime之前的包读完,视频流的包还剩几个,但是音频流的继续往前读到endtime后面。
写回答
1回答
-
李超
2022-12-19
这段代码里没有判断不同的流呀,所有的数据,无论音频,视频,还是字幕都是按时间排的,后面的包的时间一定大于等于前面包的时间
00
相似问题