我正在使用ffmpeg在Windows平台上编写一个AV muxer DirectShow过滤器,它将视频和音频流复制到mp4/ts/flv文件中,或者rtsp/rtmp/udp流,我确认视音频流的dts是有序增加的,所以不需要使用dts重新排序,所以我可以使用av_write_frame()而不是av_interleaved_write_frame()吗?av_write_frame()可以直接将包写到muxer中,如果没有引用-计数,av_interleaved_write_frame()会复制数据包,所以我更喜欢使用av_write_frame(),因为我认为它应该更高效(不复制或缓冲),我的想法正确吗?我能用av_write_frame()吗?
发布于 2019-02-03 12:56:54
是。正如文档 for av_write_frame()所述:
此函数直接将数据包传递给muxer,而不需要任何缓冲或重新排序。如果格式需要,调用方负责正确地交错数据包。希望libavformat处理交织的调用者应该调用av_interleaved_write_frame(),而不是这个函数。
https://stackoverflow.com/questions/54491521
复制相似问题