ffmpeg
以下を使用してロスレスビデオを録画しようとしています。
- 私の画面
- マイコンピュータオーディオ
- マイマイクオーディオ
次のスクリプトを使用してください。
MIC="alsa_input.usb-Logitech_Logitech_USB_Headset-00.mono-fallback"
MONITOR="alsa_output.usb-Logitech_Logitech_USB_Headset-00.analog-stereo.monitor"
AUDIO0=$(pactl list short | grep "$MIC" | grep -Po "[0-9]+" | head -1)
AUDIO1=$(pactl list short | grep "$MONITOR" | grep -Po "[0-9]+" | head -1)
ffmpeg \
-video_size 1920x1080 \
-framerate 60 \
-f x11grab -i :0.0 \
-f pulse -i $AUDIO0 \
-f pulse -i $AUDIO1 \
-map 0 -map 1 -map 2 \
-c:a copy \
-c:v libx264rgb \
-crf 0 \
-preset ultrafast \
video.mkv
私の遅いコンピュータでは、約7FPSでのみ記録されます。ロスレスを維持しながら、合理的に小さいファイルサイズでより高いFPSで録画する方法はありますか?
3つのオーディオトラックは、画面が最初に、マイクが2番目、サウンド出力が3番目に約1秒間、互いに同期していないようです。どうやら録音開始から順次認識するからだと思います。手動で再同期することもできますが、問題を解決する方が簡単です。
答え1
x264より早いプリセットはないので、ultrafast
次のことができます。
- スクリーンキャストについて話しているので、フレームレートを60から映画24または15に下げます。
- 他のビデオコーデックの使用
- GPUがサポートしている場合は、ハードウェアビデオエンコーディングアクセラレーションを使用してください。
-thread_queue_size 1024
エンコードオプションとして追加されました。- 一部の人々はすべてを同期するために出力速度が重要であると言うので
-r 60
。
他のオプションはありません。今日の基準で見ると、あなたのコンピュータは本当に遅いです。