Nginx RTMP 分段文件名和时间戳

Nginx RTMP segments filename with timestamp

我有一个用于直播的Nginx RTMP hls服务器,文件名是这样的'streamkey-0.tst, streamkey-1.ts, streamkey-2.ts ...'
但我希望段不要从零开始,而是从当前时间戳开始,如 'streamkey-142134122.ts, streamkey142134126.ts ...'
这个问题有解决方案吗?谢谢

您应该在 HLS 部分添加 hls_fragment_naming timestamp。示例:

rtmp {
    server {
        listen 1935;
    
        application src {
            live on;

            exec ffmpeg -i rtmp://localhost/src/$name
              -c:a aac -b:a 32k  -c:v libx264 -b:v 128K -f flv rtmp://localhost/hls/$name_low
              -c:a aac -b:a 64k  -c:v libx264 -b:v 256k -f flv rtmp://localhost/hls/$name_mid
              -c:a aac -b:a 128k -c:v libx264 -b:v 512K -f flv rtmp://localhost/hls/$name_hi;
        }

        application hls {
            live on;

            hls on;
            hls_path /tmp/hls;
            hls_fragment_naming timestamp; # HERE

            hls_variant _low BANDWIDTH=160000;
            hls_variant _mid BANDWIDTH=320000;
            hls_variant _hi  BANDWIDTH=640000;
        }
    }
}

更多信息:https://github.com/arut/nginx-rtmp-module/wiki/Directives#hls_fragment_naming