【问题标题】:Delay in displaying a video stream after streaming by libavformat通过 libavformat 流式传输后显示视频流的延迟
【发布时间】:2014-01-15 13:02:17
【问题描述】:

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

更多信息:

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

【问题讨论】:

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

标签: ffmpeg streaming libavformat


【解决方案1】:

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

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

如果您提及您如何使用libavformat 库(尤其是如果您编写了自己的流媒体应用程序)、编解码器设置和有关您的视频流的一些基础知识,例如它分辨率和帧率。

【讨论】:

  • 谢谢。我已经使用 libavformat 编写了自己的流媒体应用程序。当我以 25fps 流式传输 3 秒 1080p 视频时,ffplay 不显示任何内容。如果我再次重复流式传输相同的视频,这一次,ffplay 开始显示上一个流式传输的视频以及当前视频。因此,看起来 ffplay 等待缓冲区被填满一定量,然后显示流。但我说的对吗?
猜你喜欢
  • 2015-05-04
  • 2019-01-26
  • 1970-01-01
  • 2012-04-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-26
相关资源
最近更新 更多