通过libavformat在流式传输后显示视频流的延迟

时间:2014-01-15 13:02:17

标签: ffmpeg streaming libavformat

我正在使用libavformat库来流式传输网络地址的视频,例如udp://127.0.0.1:1000。我使用ffplay在网络地址显示接收的视频流。然而,视频在同一台机器上的ffplay后几秒钟(例如,5 6秒)出现。你知道是什么原因吗?

更多信息:

我使用libavformat编写了自己的流媒体应用程序。当我以25fps流式播放3秒1080p视频时,ffplay不会显示任何内容。如果我再次重复播放相同的视频,这次,ffplay开始显示上一个流视频以及当前视频。因此,看起来ffplay等待缓冲区被填满一些量,然后显示流。但我是对的吗?

1 个答案:

答案 0 :(得分:1)

要执行您所描述的内容,您(至少)会对视频流进行编码,通过网络套接字发送,然后再对其进行解码。如果您从已经压缩的源流式传输,甚至可能涉及额外的视频解码阶段。

根据视频格式,压缩和缓冲设置,网络配置和所涉及的硬件,延迟几秒钟并不是不寻常的。与无线信号相比,使用直播服务观看电视频道的人经常看到这种延迟,而电视台据称正在使用专业设备进行流媒体播放......

如果您提及使用libavformat库的方式(特别是如果您已经编写了自己的流媒体应用程序),编解码器设置以及有关视频流的一些基础知识,则可能会获得更具体的帮助。作为其分辨率和帧速率。