Ffmpeg 如何将rtsp流保存(记录)到磁盘存储器中,而不产生伪影和丢失秒数?

Ffmpeg 如何将rtsp流保存(记录)到磁盘存储器中,而不产生伪影和丢失秒数?,ffmpeg,record,rtsp,Ffmpeg,Record,Rtsp,我需要将rtsp流保存(记录)到磁盘存储器中。 我正在使用nginx模块和ffmpeg。 下面是启用录制的配置: rtmp { live on; hls on; hls_fragment 5s; server { listen 1935; application cam1 { hls_path /tmp/cam1; } exec_static ffmpeg -rtsp_tran

我需要将rtsp流保存(记录)到磁盘存储器中。 我正在使用nginx模块和ffmpeg。 下面是启用录制的配置:

rtmp {
    live on;
    hls on;
    hls_fragment 5s;
    server {
        listen 1935;
        application cam1 {
            hls_path /tmp/cam1;
        }
        exec_static ffmpeg -rtsp_transport tcp -i rtsp://... -c copy -f flv rtmp://.../cam1/stream;
    }
}
Config正在创建flv文件,每个文件的持续时间为5秒。 然后我们需要通过命令将所有获取的文件合并到一个文件中:

ffmpeg -f concat -safe 0 -i mylist.txt -c copy output.flv
经过浓缩文件后,我们遇到了一个问题。当前5秒结束,下5秒开始时,我们有工件,缺少0.5-1秒


请告诉我如何保存rtsp流而不产生伪影和丢失秒数的帮助。

我们决定排除Nginx,构建ffmpeg而不进行格式解码。这帮助我们解决了问题:

ffmpeg -rtsp_transport tcp -i "rtsp://..." -reconnect 1 \ 
       -f segment -segment_format flv -segment_time 10 -segment_atclocktime 1 \ 
       -reset_timestamps 1 -strftime 1 -avoid_negative_ts 1 \ 
       -c copy -map 0 %Y%m%d-%H%M%S.flv

当你可以只使用ffmpeg录制时,为什么要使用nginx?@micha137我们决定排除nginx,构建ffmpeg而不进行格式解码。这帮助我们解决了问题