如何停止通过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 操作步骤
- 查找进程PID,执行命令:
ps aux | grep ffmpeg
返回结果中找到启动参数带有YouTube推流地址(一般为rtmp://a.rtmp.youtube.com/live2/开头加你的直播密钥)的行,第二个字段即为进程PID。 - 终止进程,执行命令:
kill -9 你查到的PID数字
Windows 操作步骤
- 查找进程PID,执行命令:
tasklist | findstr ffmpeg.exe - 终止进程,执行命令:
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
相关产品推荐
相关产品推荐

