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

Ffmpeg 通过libavformat流式传输后显示视频流的延迟,ffmpeg,streaming,libavformat,Ffmpeg,Streaming,Libavformat,我正在使用libavformat库在网络地址流式传输视频,如udp://127.0.0.1:1000. 我使用ffplay在网络地址显示接收到的视频流。但是,视频会在几秒钟后(例如5-6秒)在同一台机器上播放。你知道原因是什么吗 更多信息: 我已经使用libavformat编写了自己的流媒体应用程序。当我以25fps的速度播放3sec 1080p视频时,ffplay不会显示任何内容。如果我再次重复播放相同的视频,这一次,ffplay将开始显示以前的流视频以及当前视频。因此,ffplay似乎在等待

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

更多信息:


我已经使用libavformat编写了自己的流媒体应用程序。当我以25fps的速度播放3sec 1080p视频时,ffplay不会显示任何内容。如果我再次重复播放相同的视频,这一次,ffplay将开始显示以前的流视频以及当前视频。因此,ffplay似乎在等待缓冲区被填满一定量,然后显示流。但是我说的对吗?

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

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


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

谢谢。我已经使用libavformat编写了自己的流媒体应用程序。当我以25fps的速度播放3sec 1080p视频时,ffplay不会显示任何内容。如果我再次重复播放相同的视频,这一次,ffplay将开始显示以前的流视频以及当前视频。因此,ffplay似乎在等待缓冲区被填满一定量,然后显示流。但是我说的对吗?我在mplayer-benchmark方面运气更好(ffplay引入了它自己的延迟),请看(如果您使用udp tho,mplayer可能需要一个补丁)