linux - 如何远程停止ffmpeg?

标签 linux ffmpeg

我正在另一台机器上运行 ffmpeg 进行屏幕捕获。我希望能够远程停止它的录制。 FFMPEG 要求按下 q 以停止编码,因为它必须进行一些最终确定才能干净地完成文件。我知道我可以用 kill/killall 杀死它,但这会导致视频损坏。

Press [q] to stop encoding

我在谷歌上找不到任何专门针对此的内容,但有人建议回显到/proc//fd/0 会起作用。

我已经试过了,但它不会停止 ffmpeg。然而,q 显示在运行 ffmpeg 的终端中。

echo -n q > /proc/16837/fd/0

那么我怎样才能将字符发送到另一个现有进程,就像在本地输入一样?或者是否有另一种方法可以干净地远程停止 ffmpeg。

最佳答案

当我遇到这个问题时,我发现了一个巧妙的技巧:创建一个空文件(它不必是命名管道或任何东西),然后在停止记录时向它写入“q”。

  1. $ 触摸停止
  2. $ <./stop ffmpeg -i ... output.ext >/dev/null 2>>Capture.log &
  3. $等待停止时间
  4. $ echo 'q' > 停止

FFmpeg 停止,就好像它从终端 STDIN 得到“q”一样。

关于linux - 如何远程停止ffmpeg?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9722624/

相关文章:

python - 我可以将图像列表传递给ffmpeg-python的输入法吗

linux - 像生产服务器一样设置 Vagrant box

linux - 通过从特定目录递归搜索,从所有文本文件中提取最后一行

windows - 使用 yt-dlp 和 ffmpeg 创建 YouTube 到 MP3 应用程序有多容易?

ffmpeg - p帧上的rtp解码问题

ffmpeg - 帧率 vs r vs 过滤器 fps

linux - 希望在所有服务器上仅提供一次密码

linux - 为什么os.OpenFile无法创建777文件

linux - 如何禁用 yocto 中的某些键盘键

ffmpeg - 提取ffmpeg缩略图过滤器选择的帧的索引