무손실 ffmpeg 녹음, 낮은 리소스 사용량

무손실 ffmpeg 녹음, 낮은 리소스 사용량

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개의 오디오 트랙은 화면이 먼저, 마이크가 두 번째, 사운드 출력이 세 번째로 약 1초 동안 서로 동기화되지 않은 것 같습니다. 아무래도 녹음 시작부터 순차적으로 인식하기 때문인 것 같아요. 수동으로 다시 동기화할 수도 있지만 문제를 해결하는 것이 더 쉬울 것입니다.

답변1

x264 보다 빠른 사전 설정은 없으므로 ultrafast다음을 수행할 수 있습니다.

  • 스크린 캐스팅에 대해 이야기하고 있으므로 프레임 속도를 60에서 시네마틱 24 또는 15로 낮추십시오.
  • 다른 비디오 코덱 사용
  • GPU가 지원하는 경우 하드웨어 비디오 인코딩 가속을 사용하세요.
  • -thread_queue_size 1024인코딩 옵션으로 추가되었습니다 .
  • 어떤 사람들은 모든 것을 동기화하려면 출력 속도가 중요하다고 말하므로 -r 60.

다른 옵션이 없습니다. 오늘날의 기준으로 볼 때 귀하의 컴퓨터는 정말 느립니다.

관련 정보