2014-01-15 41 views
0

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

更多信息:

我已经使用libavformat编写了自己的流式应用程序。当我以25fps传输3秒1080p视频时,ffplay不显示任何内容。如果我再次重复播放同一个视频,这次,ffplay将开始显示先前的流式视频以及当前视频。所以,它看起来像ffplay等待缓冲区被填满一定量,然后显示流。但我是否正确?

+0

我用mplayer -benchmark(ffplay引入了自己的延迟)有更好的运气,请参阅https://trac.ffmpeg.org/wiki/StreamingGuide(如果您使用udp tho,mplayer可能需要补丁) – rogerdpack

回答

1

要做你描述的是(至少)编码视频流,通过网络套接字发送它,然后再解码它。如果您是从已经压缩的数据源进行流式传输,那么可能还会涉及一个额外的视频解码阶段。

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

您可能会获得更多如果您提到如何使用libavformat库(特别是如果您已编写自己的流式应用程序),编解码器设置以及有关视频流的一些基本信息(如分辨率和帧速率),则可以获得特定的帮助。

+0

谢谢。我已经使用libavformat编写了自己的流式应用程序。当我以25fps传输3秒1080p视频时,ffplay不显示任何内容。如果我再次重复播放同一个视频,这次,ffplay将开始显示先前的流式视频以及当前视频。所以,它看起来像ffplay等待缓冲区被填满一定量,然后显示流。但我是否正确? –