Захват экрана рабочего стола, включая аудио, с помощью ffmpeg - PullRequest
0 голосов
/ 09 марта 2019

После обращения к официальной документации и еще одному сообщению в блоге у меня теперь есть следующий сценарий:

A="$(pacmd list-sources | grep -PB 1 "analog.*monitor>" | head -n 1 | perl -pe 's/.* //g')"
F="/home/enan/Videos/$(date --iso-8601=minutes | perl -pe 's/[^0-9]+//g').mkv"
V="$(xdpyinfo | grep dimensions | perl -pe 's/.* ([0-9]+x[0-9]+) .*/$1/g')"
ffmpeg -video_size "$V" -framerate 25 -f x11grab -i :0.0 -f pulse -i "$A" -f pulse -i default \
    -filter_complex amerge -ac 1 -preset veryfast "$F"

В основном этот сценарий приводит к следующей команде:

ffmpeg -video_size 1366x768 -framerate 25 -f x11grab -i :0.0 -f pulse -ac 2 -i default output.mkv

В этомВ случае -ac 2 звук, добавляемый к захваченному видео, имеет некоторый микрофон.Я использую ноутбук и у меня нет микрофона, поэтому я точно не знаю, с какого устройства добавляются внешние звуки, но это так.Но никакое аудио из основного аудио, которое я слышу через разъем для наушников, не добавляется к видео.

Если я использую -ac 1, видео теперь получает как внешнее, так и внутреннее аудио.аудио.Это хорошо.Но как мне ограничить видео только добавлением внутреннего звука, а не добавлением звука, полученного с микрофона или чего-то подобного.

Я не знаю, поможет ли это, но все равно добавляю.От man mpv:

       -ac[:stream_specifier] channels (input/output,per-stream)
           Set the number of audio channels. For output streams it is set by
           default to the number of input audio channels. For input streams this
           option only makes sense for audio grabbing devices and raw demuxers and
           is mapped to the corresponding demuxer options.
...