【问题标题】:FFmpeg RTP streaming error [closed]FFmpeg RTP流错误[关闭]
【发布时间】:2012-08-17 14:39:48
【问题描述】:

我想通过 FFmpeg 播放一个视频文件,但是我收到了这个错误:

RTP 复用器仅支持一个流

我在写这个时遇到了这个错误:

ffmpeg.exe -i SomeVideo.mp4 -f rtp rtp://127.0.0.1:11111

我不知道怎么了。

【问题讨论】:

  • SomeVideo.mp4 中有多少流?
  • 只有一个。但我无法开始流式传输((
  • @Will 你为什么关门???请重新打开或说出原因。
  • 因为它离题了。运行 vidya 流媒体软件不是主题。创建时遇到的问题是。 faq
  • @will ,好的,我明白了。也许您将此问题移至 SuperUser ? SU中有很多ffmpeg和流式问题。

标签: ffmpeg streaming live rtp


【解决方案1】:

您的 ffmpeg 命令创建 两个 流,一个用于视频,一个用于音频。 改为这样做:

ffmpeg -re -i SomeVideo.mp4 -vcodec copy -an -f rtp rtp://127.0.0.1:11111 -vn -acodec copy -f rtp rtp://127.0.0.1:11112

端口11111 然后有没有音频的视频 (-an)。

端口 11112 然后有音频没有视频 (-vn)。

读取每个流,例如ffplay rtp://127.0.0.1:11112

(部分来自http://lucabe72.blogspot.com/2010/04/rtp-streaming-with-ffmpeg.html 的建议。)

编辑 2021/08

命令应该是 ffmpeg -re -i SomeVideo.mp4 -vcodec copy -an -f rtp rtp://127.0.0.1:11111 -vn -acodec copy -f rtp rtp://127.0.0.1:11113

  • 11111 => 视频 RTP
  • 11112 => 视频 RTCP 隐式
  • 11113 => 音频 RTP
  • 11114 => 隐式音频 RTCP

因为 RTCP 端口会自动设置为 RTP 端口 + 1,否则播放时会出现绑定失败错误。

https://ffmpeg.org/ffmpeg-protocols.html#rtp

【讨论】:

  • 是否可以通过 RTP 进行多个输出?即使删除音频流,它也会显示错误:RTP 多路复用器中仅支持一个流 - 无法为输出文件 #1 写入标头(编解码器参数不正确?):参数无效
  • 可以,但只能通过多播。 RFC 1889 说“如果由底层网络提供,RTP 支持使用多播分发将数据传输到多个目的地”,并且没有提及多客户端。见superuser.com/questions/307130/…
  • 我必须为视频使用 11110(即偶数),否则 ffplay 会显示错误,vlc 只会读取音频。 VLC wiki wiki.videolan.org/Documentation:Streaming_HowTo/… 声明 This port has to be even. 用于音频和视频。
  • 如果我在一个 RTP 通量和另一个音频上做我的桌面的实时流,我怎么能得到,客户端,视频 + 音频与 rtp ? RTP 是一个不错的选择吗?
猜你喜欢
  • 2012-07-23
  • 2017-04-11
  • 2018-04-28
  • 2018-03-01
  • 2019-06-26
  • 1970-01-01
  • 2012-10-05
  • 2013-03-16
  • 2011-10-02
相关资源
最近更新 更多