Я запускаю ffmpeg на другой машине для захвата экрана. Я хотел бы иметь возможность остановить его запись удаленно. FFMPEG требует, чтобы q был нажат, чтобы остановить кодирование, поскольку он должен выполнить некоторую финализацию, чтобы закончить файл. Я знаю, что могу убить его с помощью kill/killall, но это может привести к повреждению видео.Как остановить ffmpeg удаленно?
Press [q] to stop encoding
Я не могу найти что-нибудь на Google специально для этого, но некоторые есть предположение, что эхо в/Proc // FD/0 будет работать.
Я пробовал это, но это не останавливает ffmpeg. Однако q отображается в терминале, в котором работает ffmpeg.
echo -n q > /proc/16837/fd/0
Итак, как я могу отправить персонажа другому существующему процессу таким образом, чтобы он был напечатан локально? Или есть другой способ дистанционной остановки ffmpeg.
Новые версии ffmpeg больше не используют «q», по крайней мере, на Ubuntu Oneiric, вместо этого они говорят, чтобы нажать Ctrl + C, чтобы остановить их. Таким образом, с более новой версией вы можете просто использовать «killall -INT» для отправки SIGINT вместо SIGTERM, и они должны выйти чисто. – sashoalm
@satuon: Эта версия Ubuntu, скорее всего, использует avconv (часть разветвленного проекта Libav). Эта утилита удалила «q» в качестве опции; главный FFmpeg все еще имеет его. –
С тех пор я обнаружил, что могу использовать kill -2, чтобы остановить ffmpeg чисто. Меня все еще интересует, как имитировать нажатие клавиши в других приложениях. – Adam