ffmpeg mp4 通过 icecast 服务器直播到 webm

ffmpeg mp4 to webm through icecast server livestream

我正在尝试在 icecast 服务器上播放巨大的 MP4 视频 (2.5Go)。在多次使用 ffmpeg 选项以获得最佳 quality/speed 编码设置后,我遇到了一个奇怪的问题。

如果我启动我的 ffmpeg 流媒体并在浏览器中加载视频,我可以看到它,但如果我在 30 秒后尝试加入它,我只会看到黑屏和底部的视频播放器栏。

有什么地方我们可以看到错误吗?在哪里?如果错误来自 ffmpeg / icecast / 我的网络浏览器,我真的不知道...

如果有人能给我一个线索。

这是我在 ffmpeg 上的设置:

./ffmpeg -i stream/my_video.mp4 \
        -acodec libopus -b:a 64k \
        -vcodec libvpx -b:v 500K -crf 25 -vf scale=640:360 -content_type video/webm \
        -loop 365 \
        icecast://source:Password@server:8000/live.webm

2020 年更新 link 已关闭。从网上查的archive。基本上 GOP 比率设置为 -g option。所以给它一个 -g 5 的值,例如将值设置为 5.

看看你的设置,我猜你没有设置 GOP 比率,因此浏览器,或者更确切地说,它使用的编解码器,没有从任何关键帧开始。

比照。 https://plus.google.com/+icecast/posts/iPsLfVaJ95C

是的,这会降低效率,但这是能够调入流并立即看到图片的代价。 ;-)

ffmpeg 网站推荐 -g 是帧速率的两倍:

encoding for streaming sites

icecast/ffmpeg 文档中关于 -g 的更多信息:

webm to icecast with ffmpeg

我的 -g 150

可以正常播放