web-dev-qa-db-ja.com

画面上で実行されているビデオをテープで貼り付ける方法は? (画面キャプチャ)

画面、スピーカー、マイクからビデオとオーディオをキャプチャしようとしています。コマンドラインコマンドでそれを実行したいと思います。

これまでのところ、

ffmpeg -f x11grab -r 25 -s 800x600 -i :0.0 /tmp/outputFile.mpg

ビデオを記録し、

ffmpeg -f alsa -ac 2 -i Pulse -acodec libmp3lame -ab 128k ~/Videos/outpulse.mp3

マイクの音声を録音します。

両方のコマンドは、次のように組み合わせることができます。

ffmpeg -f x11grab -r 25 -s 800x600 -i :0.0 -f alsa -ac 2 -i Pulse -acodec libmp3lame -ab 128k /tmp/outputFile.mpg

画面とマイクを同じファイルに記録します。これはチュートリアルに役立ちます。

上記のコマンドをスピーカーから録音するように調整するにはどうすればよいですか?または、マイクとスピーカーを同時に録音しますか?たとえば、VoIPセッションの場合。明らかに、スピーカーからのオーディオはマイクによって録音されますが、その結果、音質が非常に悪くなります。

avconvオプションも歓迎しますが、Linux、GUIベース、またはリポジトリに標準ではないツールは必要ありません。

3
Quora Feans

あなたがpulseaudioに切り替えても構わないと思っているなら、このようなスクリプトはうまくいくでしょう:

#!/usr/bin/bash

# video information
INRES="1920x1080"                   
OUTRES="1280x720"
FPS="24"  
QUAL="fast"                                 
FILE_OUT="$1"

#audio information
Pulse_IN="alsa_input.pci-0000_00_1b.0.analog-stereo"
Pulse_OUT="alsa_output.pci-0000_00_1b.0.analog-stereo.monitor"

ffmpeg -f x11grab -s "$INRES" -r "$FPS" -i :0.0 \
    -f Pulse -i "$Pulse_IN" -f Pulse -i "$Pulse_OUT" \
    -filter_complex amerge \
    -vcodec libx264 -crf 30 -preset "$QUAL" -s "$OUTRES" \
    -acodec libmp3lame -ab 96k -ar 44100 -threads 4 -pix_fmt yuv420p \
    -f flv "$FILE_OUT"

$Pulse_INおよび$Pulse_OUT変数は、入力(マイク)ソースと出力(スピーカー)モニターソースの名前です。 Pulseaudioには、スピーカー出力を録音できる「モニターソース」と呼ばれるものがあります。コマンドpactl list sources | grep 'Name:'でソースの名前を見つけることができます

残念ながら、純粋なアルサでステレオミックスソースを有効にする方法がわからないため、Pulseがおそらく最善の策です。

1
Blackle Mori