目前正在使用FFPMEG的库来流式传输一些MPEG2 TS (h264编码的)视频。流传输通过UDP多播完成。
我目前遇到的问题主要有两个。有一个很长的初始连接时间/要显示的视频(流也包含元数据,该流立即被我的媒体工具检测到)。
一旦视频开始运行,一切都很好,但它总是被初始连接时间延迟。
我正在尝试尽可能地接近直播。
当前使用av_dict_set(&dict,"tune","zerolatency",0)和"profile“->”基线“选项。
GOP大小= 12;
起初我认为这个问题是I帧的问题,但是如果gopsize是12或者默认是250,那么初始延迟就会出现。有时视频会快速连接,但它会立即丢弃,延迟发生,然后它会重新启动,从那时起就很好了。
根据文档,零延迟选项应该发送许多I帧,以限制初始同步延迟。
我开始认为这是一个缓冲类型的问题,因为当我关闭应用程序并让媒体播放器打开时,它会快进通过延迟,直到它到达文件停止流的基本位置。
发布于 2015-03-17 03:56:17
因此,虽然我不能完全理解哪里出了问题,但我至少解决了我所遇到的问题。
这个问题来自于在写出视频帧时使用av_write_interleaved_frame()与常规的av_write_frame()(这个方法适用于实时流)。我必须深入挖掘一些差异才能完全理解它,但有时有趣的是,你是如何在敲打你的脸几天后心血来潮地解决你的问题的。
我可以得到相当好的实时视频流与曲调“零度”选项设置。
https://stackoverflow.com/questions/29080473
复制相似问题