2

Я хотел бы использовать ffmpeg для использования только звука приложения вместо звука всей системы при захвате экрана. Как я могу сделать это, если команда захвата что-то вроде этого? Под конкретным приложением я подразумеваю, что это может быть аудио из Chrome (аудио выходит из Chrome через Интернет)

ffmpeg -f x11grab -s `xdpyinfo | grep 'dimensions:'|awk '{print $2}'` -r 25 -i :0.0 -sameq  desktop.mkv

Я пытался использовать импульсный звук, но не мог заставить его работать.

Если бы кто-то мог даже опубликовать ссылку на рабочую настройку импульсного звука, я был бы благодарен. Я хочу сделать это программно. А также, если я запускаю два отдельных аудиопотока, я должен быть в состоянии захватить только один! Я не смог настроить это с помощью pavucontrol

1 ответ1

0

Прежде всего, не используйте -sameq: это не означает "то же качество" и недавно было удалено из ffmpeg. Вместо этого вы можете кодировать без потерь с помощью libx264:

ffmpeg -f x11grab -s $(xdpyinfo | grep 'dimensions:'|awk '{print $2}') -r 25 -i :0.0 -codec:v libx264 -preset ultrafast -qp 0 lossless.mkv

Использование кодировщика без потерь быстро; Это означает, что у вас больше шансов фактически захватить с вашей заявленной частотой кадров. Однако выходные данные могут представлять собой огромный файл, поэтому после завершения захвата его обычно перекодируют в более управляемый размер:

ffmpeg -i lossless.mkv -codec:v libx264 -preset medium -crf 23 -pix_fmt yuv420p output.mp4

Если ваш компьютер может справиться с этим, вы можете пропустить промежуточный шаг без потерь и кодировать непосредственно в обычное видео с потерями H.264.

Что касается аудио, в соответствии с HOWTO: Правильная демонстрация экрана в Linux:

Q: Как я могу управлять входом PulseAudio? (например, захватывать звук приложения вместо микрофона)

A: Установите «pavucontrol». Начните запись с помощью ffmpeg. Запустите pavucontrol. Перейдите на вкладку «Запись», и вы найдете там ffmpeg. Измените захват звука с «Внутреннее аналоговое стерео аудио» на «Монитор внутреннего аудио аналогового стерео». Теперь он должен записывать звук системы и приложений вместо микрофона.

Ваша команда ffmpeg может выглядеть так:

ffmpeg -f alsa -ac 2 -i pulse -f x11grab -r 30 -s 1024x768 -i :0.0 -codec:a pcm_s16le -codec:v libx264 -preset ultrafast -qp 0 output.mkv 

Также см. Руководство по кодированию FFmpeg и x264.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .