zapper
V2EX  ›  FFmpeg

求助大佬们, FFmpeg 指令拉实时流转推的正确姿势到底是什么?

  •  
  •   zapper · Jan 2, 2025 · 3859 views
    This topic created in 520 days ago, the information mentioned may be changed or developed.

    大佬们好,我用

    ffmpeg -re -rtsp_transport tcp -stimeout 5000000 -i rtsp://xxxx -c:v libx264 -f flv rtmp://xxx
    

    上面这个指令,在一切正常的时候没有问题,但是当输入的 RTSP 中断了一会,这个推流就会处于一个跑飞了的状态,不再推送有效数据,并且进程也没有终止; 然后我网上搜说用rw_timeout参数可破,可是我将指令修改为

    ffmpeg -re -rtsp_transport tcp -rw_timeout 5000000 -stimeout 5000000 -i rtsp://xxxx -c:v libx264 -f flv rtmp://xxx
    

    可是整个指令根本跑不起来。提示-rw_timeout不存在,除非输入换成 RTMP ,但是加了这个参数其实也不好使。 由于输出的地址不是我们自己管控的,所以不像保存文件一样能定期检测文件大小是否变化来判断是不是应该 kill 掉进程,所以要怎么才能在他没数据传输的时候干掉他,或者能通过配置参数让他自己退?

    先谢谢大佬们

    3 replies    2025-01-02 15:17:32 +08:00
    jifengg
        1
    jifengg  
       Jan 2, 2025   ❤️ 1
    https://ffmpeg.org/ffmpeg-protocols.html#Demuxer

    看看这里有没有能帮到你的
    vivisidea
        2
    vivisidea  
       Jan 2, 2025   ❤️ 1
    https://trac.ffmpeg.org/wiki/Creating%20multiple%20outputs

    ffmpeg 可以有多个 output 的,试试输出一个到 rtmp ,再输出另一个到本地文件,然后监控这个本地文件变化情况?
    zapper
        3
    zapper  
    OP
       Jan 2, 2025
    @vivisidea #2 确实能这样。我试试性能顶不顶
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2738 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 12:35 · PVG 20:35 · LAX 05:35 · JFK 08:35
    ♥ Do have faith in what you're doing.