使用 ffmpeg.autogen 将 HLS 视频源重新流式传输到 RTMP

时间:2021-05-13 00:54:01

标签: c# ffmpeg http-live-streaming rtmp

我正在尝试编写一个 C# restreaming 类,它将采用 HLS/m3u8 H264 编码视频流并将它们作为 RTMP H264 编码视频重新流式传输。 我从简单的传输流记录器示例开始,并使其能够在以下场景中工作: UDP 重新流式传输到 UDP (mpegts) UDP 重新流式传输到 RTMP (flv) HLS 重新流式传输到 UDP (mpegts) 但是我一生都无法让它与 HLS 一起工作到 RTMP。 我在调用 avformat_write_header 时得到 -22 的失败返回码 请注意,我可以使用以下命令从 ffmpeg 的命令行版本完美地完成这项工作: ffmpeg -i http://rbmn-live.akamaized.net/hls/live/590964/BoRB-AT/master_1660.m3u8 -vcodec libx264 -f flv rtmp://rtmpserver/streamname

1 个答案:

答案 0 :(得分:0)

终于自己解决了,给关心的人。问题是 HLS 流有 3 个子流(视频、音频和字幕)。问题是 FLV 似乎不支持字幕,它正在检测这第三个流作为第二个视频流,这也不支持。因此,从输出流中删除此子流会产生一个有效的重新流式传输视频。