ffmpeg - 如何使用 ffmpeg 重新流式传输 m3u8

标签 ffmpeg http-live-streaming 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

它进行流式传输,但不是直播,它已录制 channel 的一个周期,并且此链接会一次又一次地流式传输该周期。命令正确吗?我刚刚创建了名为 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 中配置您的实时 block 以具有 HLS。

        application live {
        live on;
        hls on;
        hls_path /tmp/hls;
    }

最终,您希望通过 HTTP 获得 block :

        location /hls {
        # Serve HLS fragments
        types {
            application/vnd.apple.mpegurl m3u8;
            video/mp2t ts;
        }
        root /tmp;
        add_header Cache-Control no-cache;
    }

尝试http://127.0.0.1/hls/stream.m3u8当配置成功并且ffmpeg正在运行时。

关于ffmpeg - 如何使用 ffmpeg 重新流式传输 m3u8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60604223/

相关文章:

iphone - HTTP 自适应比特率流式传输如何在 iPhone 上工作?

android - 如何在android中使用异步任务进行音频流

safari - 如何在 Safari 中获取视频的播放头?

android-intent - Android 上的浏览​​器中的 HLS

c - gcc "relocation R_X86_64_PC32 against symbol ` ff_M24A'"在 linux 上静态链接 ffmpeg 时出错

FFmpeg 将时间戳元数据添加到 HLS 段

c# - 在 .NET 中捕获 native 代码异常

android 直播 - h264 解码

php - Jwplayer播放php生成的m3u8

video - 使用多隔离 ts 创建 m3u8