You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Ubuntu系统中每隔1分钟执行一次ffmpeg命令解决推流中断问题

Ubuntu下定时运行FFmpeg推流的最优方案

报错原因说明

你使用watch命令出现语法报错,是因为watch默认将命令传递给/bin/sh解析,命令中的表达式括号、单引号没有正确转义就会触发该问题。而且watch本身不适合长时间后台运行的推流保活场景,更推荐以下两种方案:

方案1:crontab 定时执行(满足每分钟启动的需求)

该方案适合可接受最多1分钟推流中断的场景,实现简单:

  • 第一步:将FFmpeg命令封装为独立shell脚本,避免重复启动进程
    新建/usr/local/bin/ffmpeg_push.sh,内容如下:
    #!/bin/bash
    # 检测是否已有同推流任务在运行,避免重复启动
    if pgrep -f "ffmpeg.*live-api-s.facebook.com" > /dev/null; then
        exit 0
    fi
    # 执行推流命令
    /bin/ffmpeg -f lavfi -i anullsrc -rtsp_transport udp -i 'rtsp://admin:password@hostname.com:500/Streaming/Channels/101/' -force_key_frames 'expr:gte(t,n_forced*2)' -vf scale=1920:1080 -reorder_queue_size 4000 -max_delay 10000000 -vcodec libx264 -b:v 2500k -pix_fmt yuv420p -acodec aac -f flv 'rtmps://live-api-s.facebook.com:443/rtmp/FB-key'
    
  • 第二步:给脚本添加执行权限
    chmod +x /usr/local/bin/ffmpeg_push.sh
    
  • 第三步:添加crontab定时任务
    执行crontab -e编辑定时任务,新增如下行:
    * * * * * /usr/local/bin/ffmpeg_push.sh > /var/log/ffmpeg_push.log 2>&1
    
    配置完成后每分钟会自动执行脚本,无运行中进程时就自动启动推流,所有日志会存入/var/log/ffmpeg_push.log方便排查问题。

方案2:systemd 服务保活(更适合稳定推流场景)

该方案是最优选择,FFmpeg崩溃后会立刻自动重启,不需要等待1分钟间隔,推流中断时间极短:

  • 第一步:和方案1一致,先封装好/usr/local/bin/ffmpeg_push.sh脚本并添加执行权限
  • 第二步:新建systemd服务配置文件/etc/systemd/system/ffmpeg-push.service,内容如下:
    [Unit]
    Description=FFmpeg RTMP 推流服务
    After=network.target
    
    [Service]
    Type=simple
    User=root
    ExecStart=/usr/local/bin/ffmpeg_push.sh
    Restart=always
    RestartSec=1
    LimitNOFILE=65535
    
    [Install]
    WantedBy=multi-user.target
    
  • 第三步:重载配置并启动服务
    systemctl daemon-reload
    systemctl enable --now ffmpeg-push.service
    
  • 常用维护命令:
    • 查看服务运行状态:systemctl status ffmpeg-push.service
    • 实时查看运行日志:journalctl -u ffmpeg-push.service -f

优化建议

  • 可以在FFmpeg命令中添加-loglevel error减少冗余日志输出
  • 可添加-stimeout 5000000参数(单位为微秒,对应5秒超时),避免RTSP源波动时FFmpeg卡住不退出
  • 定期清理日志文件,避免占满磁盘空间

内容的提问来源于stack exchange,提问作者Tony

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 18:36:01