无损 ffmpeg 录音,资源占用率低

无损 ffmpeg 录音,资源占用率低

我正在尝试用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 个音轨似乎彼此不同步约一秒,屏幕第一,麦克风第二,声音输出第三。我认为这是因为它在录音开始时按顺序识别它们。我可以手动重新同步它们,但解决问题会更容易。

答案1

x264 没有比 更快的预设ultrafast,因此您可以:

  • 将帧速率从 60 降低到电影级 24 甚至 15,因为我们正在讨论屏幕投射
  • 使用不同的视频编解码器
  • 如果您的 GPU 支持,请使用硬件视频编码加速
  • 添加-thread_queue_size 1024为编码选项。
  • 有些人说输出速率对于使所有内容同步很重要,因此请尝试添加-r 60.

我看不到其他选择。按照今天的标准,你的计算机确实很慢。

相关内容