Video

資源使用率低的無損 ffmpeg 錄製

  • October 16, 2020

我正在嘗試使用ffmpegof錄製無損影片

  • 我的螢幕
  • 我的電腦音頻
  • 我的麥克風音頻

使用這個腳本:

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

在我的慢速電腦上,它只能以大約 7 FPS 的速度記錄。有沒有辦法以更高的 FPS 錄製,同時保持無損且文件大小相當小?

這 3 個音軌似乎也有大約一秒的不同步,首先是螢幕,其次是麥克風,然後是聲音輸出。我認為這是因為它在錄製開始時按順序辨識它們。我可以手動重新同步它們,但解決問題會更容易。

x264 沒有比 更快的預設ultrafast,因此您可以:

  • 將幀率從 60 降低到電影級 24 甚至 15,因為我們正在談論螢幕投射
  • 使用不同的影片編解碼器
  • 如果您的 GPU 支持,請使用硬體影片編碼加速
  • 添加-thread_queue_size 1024為編碼選項。
  • 有人說輸出速率對於使所有內容保持同步很重要,因此請嘗試添加-r 60.

我看不到其他選擇。按照今天的標準,您的電腦確實很慢。

引用自:https://unix.stackexchange.com/questions/614835