将 RTMP 直播流转码到多个客户端

将 RTMP 直播流转码到多个客户端

我经常在网站 picarto.tv 上关注直播。该网站使用 RTMP 进行流媒体播放,因此需要 Flash 来显示视频源。但是许多(移动/嵌入式)设备没有 Flash,所以我希望视频采用 MP4 之类的格式。

我有一个双核 VPS,运行 Ubuntu 14.04,内存为 2GB,我想用它来实时转码视频。该 VPS 具有 1Gbps 网络链接,因此带宽不是真正的问题,尽管每月限制为 500GB。

我想要做的是:

  • 在手机/平板电脑/智能电视/非 Flash 设备上观看直播
  • 允许至少 10-15 台设备同时观看视频
  • 因此,我想防止为每个客户端设备生成一个转码线程
  • 使用 MP4 流输出似乎是最好的主意,因为大多数设备都支持它

我尝试ffmpeg将 RTMP 转换为 MP4,但只允许一个客户端使用。cvlc我发现所有命令要么对我的服务器来说太过繁琐,要么根本不产生任何视频输出。

ffserver有点用,但是它太不稳定,而且不再维护。它给出一些模糊的错误,无法追溯到任何实际原因,有时它根本不输出任何信息,日志中也没有任何内容。

是否有任何工具(类似ffserver但维护)或其他方法可以让我以一次解码、多次流式传输的方式提供 RTMP 流的 MP4 版本?

答案1

尝试来自 github.com/openvcx/openvcx 的 openvcx openvsx 流处理器组件

像这样的命令行将会提取 RTMP 流并将其输出到 Chrome、Safari、iOS 和 Android。

bin/vsx -v --capture=rtmp://xxxx/bla/lalala --live=8080 --mkvlive --httplive --rtsp --flvlive

您可能还需要使用 --xcode=... 命令行对其进行转码。更多信息请点击此处http://openvcx.com/vsxuserguide.php

相关内容