avconvを使用してスクリーンキャストを作成しようとしたときに問題が発生しました。最後に、コンピュータの出力とマイクの入力を録音しましたが、問題は出力ファイルにマージされないことです。 (私はそれをfilter_complex amix = inputsオプションとして見ましたが、以前のバージョンにしかありませんでした)
マージする他の方法はありますか? (後半製作でも構いません。)
これは私が使用するコマンドラインです
avconv -f alsa -ac 2 -i pulse -f alsa -ac 2 -i hw:2,0 -filter_complex amix=inputs=2 -f x11grab -r 30 -s 1366x742 -i :0.0+1369,25 -map 0:0 -map 1:0 -map 2:0 -acodec flac -vcodec libx264 -preset:v superfast -crf 18 -threads 0 output.mkv
答え1
似たようなフィルタを使ってこれをたくさん行うので、ffmpeg
これは役に立ちます。これは、スクリーンキャプチャ、コンピュータオーディオ入力screen.avi
、マイクキャプチャ入力を想定していますmic.wav
。
ffmpeg -i screen.avi -i mic.wav -filter_complex '[0:1][1:0]amix=inputs=2:duration=first[all_audio]' -map 0:0 -map '[all_audio]' -vcodec libx264 -crf 28 -preset slow -acodec mp3 out.avi
出力に入るチャンネルが選択されたと思います-map
。したがって、元のコマンドラインをデバッグする場合は、損失 -map 1:0 -map 2:0
(つまり、マージされていない入力を出力にマッピング)し、amixプラグインの出力名を指定する必要があると思います(たとえば、次のall_audio
ように)。私の例が表示されます)と-map '[all_audio]'
(マージされたオーディオを出力にマッピング)があります。しかし、私は知りませんavconv
。