【问题标题】:ffmpeg capture streams in syncffmpeg 同步捕获流
【发布时间】:2013-12-11 16:22:57
【问题描述】:

我想使用 ffmpeg 捕获多个通过 rtp 协议到达的实时视频流。当我通过发出ffmpeg <command line parameters> 命令启动录制时,建立连接并开始实际录制总是需要一段时间。在某些情况下,这可能超过 2 秒,这会导致重播时出现恒定的时间差。

如何从 ffmpeg 中提取包含第一个实际记录帧的时间的信息?如果不编辑源代码就无法使用 ffmpeg(我这样做了,并且出于其他原因想避免),是否有任何类似的多平台开源工具可以使用?

【问题讨论】:

    标签: ffmpeg synchronization video-streaming


    【解决方案1】:

    没有你的努力是不可能的。使用 live555 之类的东西来捕获您的流。您的所有源都必须使用 ntp 同步到单个时钟,然后可以在接收端使用 rtp 时间戳来同步各种流。这不是微不足道的,并且用于视频会议系统。我不知道有任何免费的实现。

    如果您无法控制来源,那么您就不走运了,因为流之间没有共同的基准时间。如果这样做,您仍然需要修改 live555 和您的播放器以使用流上的时间戳和 ntp 时钟进行同步。就像我说的,不是微不足道的。

    也许 gstreamer 可能已经有插件了,我已经有一段时间没有使用它了,所以我不确定。你可以去那里看看。 (gstreamer.net)。

    【讨论】:

    • 我明白了,谢谢!实际上,流媒体服务器的绝对时间同步对我来说并不那么重要:如果我知道流记录何时开始就足够了,因为我在同一台 PC 上记录它们,并且播放器已经支持重播之间的初始增量时间差视频。
    猜你喜欢
    • 2013-03-02
    • 2011-02-28
    • 2019-10-27
    • 2016-12-17
    • 1970-01-01
    • 1970-01-01
    • 2020-04-07
    • 2017-09-20
    • 1970-01-01
    相关资源
    最近更新 更多