我使用 Mumudvb 从 dvb-t 和 dvb-s 获取信号到 RTP 多播流并成功地做到了,结果流 URL 类似于 rtp://239.1.2.1:60001。
现在我想知道如何将 RTP(或 UDP)流转换为 Http 实时流(HLS)?
编辑:
我可以使用 ffmpeg 转换实时流,但它不稳定,当 ffmpeg 中发生错误时,对话停止并且无法找到失败,例如重新启动 ffmpeg,我正在寻找该转换操作的新方法。
非常感谢
我使用 Mumudvb 从 dvb-t 和 dvb-s 获取信号到 RTP 多播流并成功地做到了,结果流 URL 类似于 rtp://239.1.2.1:60001。
现在我想知道如何将 RTP(或 UDP)流转换为 Http 实时流(HLS)?
编辑:
我可以使用 ffmpeg 转换实时流,但它不稳定,当 ffmpeg 中发生错误时,对话停止并且无法找到失败,例如重新启动 ffmpeg,我正在寻找该转换操作的新方法。
非常感谢
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 更优雅地重试。在任何情况下,您都可以在失败行为后编写重试脚本,这是一个示例。