如何在 Windows 下的 bash 脚本中使用 FFmpeg 停止屏幕截图?

如何在 Windows 下的 bash 脚本中使用 FFmpeg 停止屏幕截图?

当我在 Windows 下使用 Bash 脚本捕获屏幕时ffmpeg -i desktop,我无法使用 结束捕获taskkill /f,因为 FFmpeg 不会写入 MP4 标头。

必须用control+将其关闭C

当 FFmpeg 在后台运行时,如何向其发送control+ ?C

答案1

要停止 ffmpeg,你可以signal.CTRL_C_EVENT用 python 的发送os.kill,但你必须将其发送到WINPID,而不是 PID:

WINPID=$(ps aux | grep ffmpeg | awk '{print $4}')
python -c "import os, signal; os.kill($WINPID, signal.CTRL_C_EVENT)"

请看这里的完整示例:
https://gist.github.com/elsamuko/9c3fe69f00a0f847251ffa3ef1d080a2

参考:
https://trac.ffmpeg.org/ticket/6336
https://bugs.python.org/issue42962

相关内容