4

我想通过 FFmpeg 播放视频文件,但出现此错误:

RTP 复用器中仅支持一个流

当我写这个时,我得到了这个错误:

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

我不知道怎么了。

4

1 回答 1

9

您的 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

于 2013-05-09T18:28:10.043 回答