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

如何停止通过cron启动的推流到YouTube的ffmpeg直播进程

终止YouTube FFmpeg推流及进程杀死方案

核心逻辑

要立刻停止错误内容播出,最快方式是直接终止本地FFmpeg推流进程,无需登录YouTube后台操作,进程杀死后数据流会立刻中断,YouTube端会立即停止播放当前内容。

1. 紧急场景全量终止(最快操作,适合错误播出应急)

直接杀死设备上所有运行中的FFmpeg进程,操作仅需1秒:

  • Linux/macOS 执行命令:
    pkill -9 ffmpeg
  • Windows 执行命令:
    taskkill /IM ffmpeg.exe /F

说明:-9//F参数是强制终止,不会等待FFmpeg缓冲区推送完成,可做到即时断流。

2. 精准杀死指定推流进程(避免误杀其他FFmpeg任务)

如果设备上同时运行多个FFmpeg任务,可先筛选出对应YouTube推流的进程再终止:

Linux/macOS 操作步骤

  1. 查找进程PID,执行命令:
    ps aux | grep ffmpeg
    返回结果中找到启动参数带有YouTube推流地址(一般为rtmp://a.rtmp.youtube.com/live2/开头加你的直播密钥)的行,第二个字段即为进程PID。
  2. 终止进程,执行命令:
    kill -9 你查到的PID数字

Windows 操作步骤

  1. 查找进程PID,执行命令:
    tasklist | findstr ffmpeg.exe
  2. 终止进程,执行命令:
    taskkill /PID 你查到的PID数字 /F

3. 不同启动方式的预先配置方案(方便后续快速管理)

Python subprocess启动场景

启动进程时主动记录PID到本地文件,后续无需再筛选进程:

import subprocess

# 启动FFmpeg推流,丢弃输出
ffmpeg_proc = subprocess.Popen(
    ["ffmpeg", "-i", "你的输入源地址", "你的YouTube推流地址"],
    stdout=subprocess.DEVNULL,
    stderr=subprocess.DEVNULL
)
# 写入PID到固定路径
with open("/tmp/ffmpeg_youtube_pid", "w", encoding="utf-8") as f:
    f.write(str(ffmpeg_proc.pid))

需要终止时直接执行命令即可:
kill -9 $(cat /tmp/ffmpeg_youtube_pid)
也可在Python代码中直接调用ffmpeg_proc.kill()终止进程。

cron启动场景

在cron任务中加入PID写入逻辑,示例cron规则:
0 12 * * * /usr/bin/ffmpeg 你的推流参数 > /dev/null 2>&1 & echo $! > /tmp/ffmpeg_youtube_pid
终止时同样执行读取PID杀进程的命令即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 20:57:02