【发布时间】:2015-05-18 18:47:00
【问题描述】:
目前使用来自 FFPMEG 的库来流式传输一些 MPEG2 TS(h264 编码)视频。流是通过 UDP 多播完成的。
我目前遇到的问题主要有两点。初始连接时间很长/要显示视频(流还包含元数据,我的媒体工具会立即检测到该流)。
一旦视频开始播放,一切都会好起来的,但它总是会被初始连接时间延迟。
我正在尝试尽可能接近 LIVE 流媒体。
当前使用 av_dict_set(&dict, "tune", "zerolatency", 0) 和 "profile" -> "baseline" 选项。
GOP 大小 = 12;
一开始以为是i帧的问题,但是如果gopsize是12或者默认250就会出现初始延迟。有时视频会很快连接,但是马上就掉线了,出现延迟,然后又重新开始从那时起就很好。
根据文档,零延迟选项应该发送许多 i 帧,以限制初始同步延迟。
我开始认为这是一个缓冲类型的问题,因为当我关闭应用程序并让媒体播放器保持启动状态时,它会通过延迟快进,直到它基本上到达文件停止流式传输的位置。
【问题讨论】:
标签: c++ video ffmpeg libavcodec libavformat