【问题标题】:How to save (record) rtsp stream to the disk storage without artifacts and missing seconds?如何将 rtsp 流保存(记录)到磁盘存储而没有工件和丢失秒数?
【发布时间】:2019-09-20 15:38:13
【问题描述】:

我需要将 rtsp 流保存(记录)到磁盘存储。 我正在使用 nginx-module 和 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 流,而不会出现伪像和丢失秒数。

【问题讨论】:

  • 为什么只用 ffmpeg 就可以录制,为什么还要使用 nginx?
  • @micha137 我们决定排除 Nginx 并在没有格式解码的情况下构建 ffmpeg。这帮助我们解决了问题

标签: ffmpeg record rtsp


【解决方案1】:

我们决定排除 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-27
    • 2011-05-17
    • 1970-01-01
    • 2021-05-09
    相关资源
    最近更新 更多