1

我使用 Mumudvb 从 dvb-t 和 dvb-s 获取信号到 RTP 多播流并成功地做到了,结果流 URL 类似于 rtp://239.1.2.1:60001。

现在我想知道如何将 RTP(或 UDP)流转换为 Http 实时流(HLS)?

编辑

我可以使用 ffmpeg 转换实时流,但它不稳定,当 ffmpeg 中发生错误时,对话停止并且无法找到失败,例如重新启动 ffmpeg,我正在寻找该转换操作的新方法。

非常感谢

4

1 回答 1

2

VLC 可能可以做到这一点,类似于:

cvlc -vvv rtp://@239.1.2.1:60001
--sout '#std{access=livehttp{seglen=5,delsegs=true,numsegs=5,
index=/path/to/stream.m3u8,
index-url=http://example.org/stream-########.ts},
mux=ts{use-key-frames},
dst=/path/to/stream-########.ts}'

替换/path/to/stream*为您想要提供播放列表和片段的任何路径,以及http://example.org您机器的域名或 IP 地址。

有关更多指示,请参阅这些命令行示例

我不确定 VLC 在输入错误后是否比 ffmpeg 更优雅地重试。在任何情况下,您都可以在失败行为后编写重试脚本,这是一个示例

于 2017-01-06T11:38:55.197 回答