我正在使用ffmpeg在Windows平台上编写av muxer DirectShow Filter,它将视频和音频流混合到mp4 / ts / flv文件或rtsp / rtmp / udp流中,我确认视频/音频流的dts顺序增加,因此不需要dts重新排序,那么我可以使用av_write_frame()代替av_interleaved_write_frame()吗? av_write_frame()直接将数据包写入多路复用器,如果没有引用计数,av_interleaved_write_frame()将创建数据包的副本,因此我更喜欢使用av_write_frame(),因为我认为它应该更有效(不进行复制和缓冲),我认为是对的吗?我可以使用av_write_frame()吗?
答案 0 :(得分:2)
是的。正如av_write_frame()
的{{3}}所述:
此功能将数据包直接传递到复用器,无需任何 缓冲或重新排序。呼叫者负责正确 如果格式要求,则对数据包进行交织。来电者 libavformat处理交错应该调用 av_interleaved_write_frame()代替此函数。