请选择 进入手机版 | 继续访问电脑版

ChinaFFmpeg

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 9618|回复: 3

[Windows] 是使用av_write_frame()呢,还是av_interleaved_write_frame()

[复制链接]
发表于 2019-2-2 13:57:36 | 显示全部楼层 |阅读模式
正在WINDOWS平台上编写一个muxer filter,任务就是mux音频视频流为MP4/TS等格式文件,或RTSP/RTMP/UDP等流输出,现在在为是调用av_write_frame(),还是调用av_interleaved_write_frame()来写包数据放迷糊,因为我看到av_interleaved_write_frame()的API注释里说这个函数会拷贝一份packet(如果packet无reference_count),且会进行缓冲处理,av_write_frame()则没有这些操作,直接写包到muxer,所以我认为av_write_frame()应该更高效;因为我确定进行mux的音频视频数据的dts是按次序增加的,不会有交错的dts(看注释interleave_write()的缓冲好像是处理交错dts用),所以我能不能调用av_write_frame()来写数据?
回复

使用道具 举报

发表于 2019-2-3 20:38:43 | 显示全部楼层
如果自己有把握,可以的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-2-3 23:24:39 | 显示全部楼层
孙悟空 发表于 2019-2-3 20:38
如果自己有把握,可以的

你好,想问下我对av_write_frame()的使用条件的理解是否正确?是不是只要DTS是按次序增加的就可以调用? 我有去浏览了下av_interleaved_write_frame()的源代码,但出于自己的水平对它是怎么比较dts根本就理不出头绪 所以还望赐教
回复 支持 反对

使用道具 举报

发表于 2019-2-4 09:47:07 | 显示全部楼层
那就用interlaved吧
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|Archiver|ChinaFFmpeg

GMT+8, 2024-3-29 23:22 , Processed in 0.050195 second(s), 14 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表