如何将实时 RTMP 视频转换为实时 mp3 Icecast 流

Posted

技术标签:

【中文标题】如何将实时 RTMP 视频转换为实时 mp3 Icecast 流【英文标题】:how to transform live RTMP video to live mp3 Icecast stream 【发布时间】:2015-04-16 17:39:44 【问题描述】:

我有带有视频和音频的 RTMP 直播。 我可以从 RTMP 获取 ogg 音频直播并将其翻译成 Icecast2 并使用 JPlayer 在我的网站上获取。 现在我使用这样的命令:

/usr/local/bin/ffmpeg -re -i rtmp://192.168.22.12/live/live1 \
-vn -acodec libvorbis -b:a 48k -f ogg - | oggfwd -p -d "" \
-g "" -u "" localhost 8000 somepass live2

然后我使用 Icecast2 流式传输我的实时音频,但它是 OGG 格式,所以移动设备不播放它(android 设备在开始播放之前有将近 30 秒的延迟时间,ios 设备不想播放它)。

如何在发送到 Icecast2 之前将其转码为 mp3?

【问题讨论】:

【参考方案1】:

如果您使用的是(非常)最新版本,则可以为此使用 ffmpeg。 要测试您的 ffmpeg 是否能够流式传输到 Icecast,请执行以下操作:

ffmpeg -protocols -v 0 | grep icecast

如果返回“icecast”,万岁,您可以执行以下操作:

ffmpeg -re -i rtmp://192.168.22.12/live/live1 -vn \
       -codec:a libmp3lame -b:a 64k -f mp3 \
       -content_type audio/mpeg \
       icecast://source:pass@example.com:8000/mountpoint.mp3

source 替换为特定用户名(如果您已配置),否则将其保留为源。其他的事情应该是显而易见的。

【讨论】:

如果您使用旧版本,请在输入 URL 中添加 `live=1`,例如:-i "rtmp://192.168.22.12/live/live1 live=1";如果您使用 Debian 8,请安装 libav-tools 并将 ffmpeg 替换为 @987654326 @ source:pass 是什么? Icecast 源用户和密码。

以上是关于如何将实时 RTMP 视频转换为实时 mp3 Icecast 流的主要内容,如果未能解决你的问题,请参考以下文章

如何使用python实时将wav转换为mp3?

寻找一个库/框架将实时视频从 OS X 流式传输到 Wowza 服务器(RTMP)[关闭]

将 FMS RTMP 直播流转换为 BlackBerry 的 RTSP

将通过 HTTP 流式传输的 wav 实时转换为 mp3

视频转换 rtsp 流 转rtmp流播放(未完)

windows下搭建ffmpeg+nginx+rtmp-module搭建实时视频环境