V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zapper
V2EX  ›  FFmpeg

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

  •  
  •   zapper · 2 天前 · 705 次点击

    大佬们好,我用

    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 条回复    2025-01-02 15:17:32 +08:00
    jifengg
        1
    jifengg  
       2 天前   ❤️ 1
    https://ffmpeg.org/ffmpeg-protocols.html#Demuxer

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

    ffmpeg 可以有多个 output 的,试试输出一个到 rtmp ,再输出另一个到本地文件,然后监控这个本地文件变化情况?
    zapper
        3
    zapper  
    OP
       2 天前
    @vivisidea #2 确实能这样。我试试性能顶不顶
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1003 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 88ms · UTC 19:56 · PVG 03:56 · LAX 11:56 · JFK 14:56
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.