フォローするffmpegを使用したデスクトップキャプチャガイドLinuxの場合、オーディオソースがパルスフォーマットの場合、フレームはフリーズし、非同期化され、fpsが遅くなり、オーディオと比較してビデオが遅れます。
この問題を解決するために、研究で見つけたいくつかのパラメータの組み合わせを試しました。現在使用中のコマンドは次のとおりです。
ffmpeg \
-video_size 1920x1080 \
-framerate 60 \
-f x11grab \
-probesize 42M \
-thread_queue_size 64 \
-i :0.0 \
-f pulse \
-thread_queue_size 64 \
-i default \
-c:v libx264rgb \
-crf 0 \
-preset ultrafast \
-c:a aac \
-ac 2 \
-b:a 160k \
-ar 44100 \
-strict experimental \
-threads 8 \
-vsync vfr \
-max_muxing_queue_size 64 \
-f mp4 \
-y o.mp4
しかし、面白いのは、オーディオソースを変更すると機能し、-f alsa -i pulse
警告メッセージが表示されることです。out_0_1に100個のバッファが待機しています。問題がある可能性があります。左。
私が使っているバージョン4.2.4-1 Ubuntu0.1、pulseはより汎用性が高く、アプリケーションとカスタムモジュールを介したボリューム制御を可能にするので、ffmpegがpulseと正しく機能することを願っています。
証拠:https://youtu.be/rhjfQNd5lP4
これは私のデフォルトソース(pactl list sources
)です。
Source #1
State: SUSPENDED
Name: alsa_input.pci-0000_27_00.3.analog-stereo
Description: Family 17h (Models 00h-0fh) HD Audio Controller Estéreo analógico
Driver: module-alsa-card.c
Sample Specification: s16le 2ch 48000Hz
Channel Map: front-left,front-right
Owner Module: 9
Mute: no
Volume: front-left: 19661 / 30% / -31.37 dB, front-right: 19661 / 30% / -31.37 dB
balance 0.00
Base Volume: 6554 / 10% / -60.00 dB
Monitor of Sink: n/a
Latency: 0 usec, configured 0 usec
Flags: HARDWARE HW_MUTE_CTRL HW_VOLUME_CTRL DECIBEL_VOLUME LATENCY
Properties:
alsa.resolution_bits = "16"
device.api = "alsa"
device.class = "sound"
alsa.class = "generic"
alsa.subclass = "generic-mix"
alsa.name = "ALC892 Analog"
alsa.id = "ALC892 Analog"
alsa.subdevice = "0"
alsa.subdevice_name = "subdevice #0"
alsa.device = "0"
alsa.card = "1"
alsa.card_name = "HD-Audio Generic"
alsa.long_card_name = "HD-Audio Generic at 0xfe800000 irq 69"
alsa.driver_name = "snd_hda_intel"
device.bus_path = "pci-0000:27:00.3"
sysfs.path = "/devices/pci0000:00/0000:00:08.1/0000:27:00.3/sound/card1"
device.bus = "pci"
device.vendor.id = "1022"
device.vendor.name = "Advanced Micro Devices, Inc. [AMD]"
device.product.id = "1457"
device.product.name = "Family 17h (Models 00h-0fh) HD Audio Controller"
device.string = "front:1"
device.buffering.buffer_size = "17664"
device.buffering.fragment_size = "2944"
device.access_mode = "mmap"
device.profile.name = "analog-stereo"
device.profile.description = "Estéreo analógico"
device.description = "Family 17h (Models 00h-0fh) HD Audio Controller Estéreo analógico"
module-udev-detect.discovered = "1"
device.icon_name = "audio-card-pci"
Ports:
analog-input-front-mic: Microfone frontal (priority: 8500, available)
analog-input-rear-mic: Microfone traseiro (priority: 8200, not available)
analog-input-linein: Entrada de linha (priority: 8100, not available)
Active Port: analog-input-front-mic
Formats:
pcm
この問題が私のサウンドカードのせいかffmpeg設定の欠落によるものかどうかはわかりません。私が実装してみることができるアイデアがあれば助けてください。