パルスオーディオを使用して画面を録音すると、同期が解除されます。

パルスオーディオを使用して画面を録音すると、同期が解除されます。

フォローする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設定の欠落によるものかどうかはわかりません。私が実装してみることができるアイデアがあれば助けてください。

ベストアンサー1

おすすめ記事