如何使用 ffmpeg 重新流式传输 m3u8
How to restream m3u8 with ffmpeg
我使用 nginx rtmp 和以下命令:
ffmpeg -fflags +igndts -hide_banner -i https://ch.iptvmate.net/ec6e5689ffd6f9690102640bddd2f9e7.m3u8 -c copy -f hls -hls_time 4 -hls_flags append_list+delete_segments -hls_list_size 6 -hls_segment_filename 'hls/ch2/file%03d.ts' hls/ch2/playlist.m3u8
它流式传输但不是直播,它录制了频道的一个时段并且这个 link 一次又一次地流式传输该时段。命令是否正确?我刚刚创建了名为 ch2 的文件夹。
如果您尝试将流作为 rtmp 推送,则不需要 HLS 参数。
通过 rtmp 重新流式传输到 nginx 的简单方法:
ffmpeg -fflags +igndts -hide_banner -i https://ch.iptvmate.net/ec6e5689ffd6f9690102640bddd2f9e7.m3u8 -c copy -f flv rtmp://127.0.0.1/live/stream
之后,您可以在 Nginx 中配置您的实时块以具有 HLS。
application live {
live on;
hls on;
hls_path /tmp/hls;
}
最终,您希望通过 HTTP 获得块:
location /hls {
# Serve HLS fragments
types {
application/vnd.apple.mpegurl m3u8;
video/mp2t ts;
}
root /tmp;
add_header Cache-Control no-cache;
}
当配置成功且ffmpeg为运行时尝试http://127.0.0.1/hls/stream.m3u8。
我使用 nginx rtmp 和以下命令:
ffmpeg -fflags +igndts -hide_banner -i https://ch.iptvmate.net/ec6e5689ffd6f9690102640bddd2f9e7.m3u8 -c copy -f hls -hls_time 4 -hls_flags append_list+delete_segments -hls_list_size 6 -hls_segment_filename 'hls/ch2/file%03d.ts' hls/ch2/playlist.m3u8
它流式传输但不是直播,它录制了频道的一个时段并且这个 link 一次又一次地流式传输该时段。命令是否正确?我刚刚创建了名为 ch2 的文件夹。
如果您尝试将流作为 rtmp 推送,则不需要 HLS 参数。
通过 rtmp 重新流式传输到 nginx 的简单方法:
ffmpeg -fflags +igndts -hide_banner -i https://ch.iptvmate.net/ec6e5689ffd6f9690102640bddd2f9e7.m3u8 -c copy -f flv rtmp://127.0.0.1/live/stream
之后,您可以在 Nginx 中配置您的实时块以具有 HLS。
application live {
live on;
hls on;
hls_path /tmp/hls;
}
最终,您希望通过 HTTP 获得块:
location /hls {
# Serve HLS fragments
types {
application/vnd.apple.mpegurl m3u8;
video/mp2t ts;
}
root /tmp;
add_header Cache-Control no-cache;
}
当配置成功且ffmpeg为运行时尝试http://127.0.0.1/hls/stream.m3u8。