ffmpeg를 사용하여 화면 및 내부 오디오 녹음

ffmpeg를 사용하여 화면 및 내부 오디오 녹음

화면 및 내부 오디오 녹음을 위한 ffmpeg 명령은 무엇입니까(Ubuntu 18.04)?

시도한 것 중 효과가 없었던 많은 것을 생략하고 내가 찾고 있는 것과 가까운 것으로 건너뛰겠습니다.

V="$(xdpyinfo | grep dimensions | perl -pe 's/.* ([0-9]+x[0-9]+) .*/$1/g')"
A="$(pacmd list-sources | grep -PB 1 "analog.*monitor>" | head -n 1 | perl -pe 's/.* //g')"
F="$(date --iso-8601=minutes).mkv"
ffmpeg -video_size "$V" -framerate 10 -f x11grab -i :0.0 -f pulse -ac 2 -i "$A" "$F"

비디오는 얻을 수 있지만 오디오는 얻을 수 없습니다.

parecord  -d alsa_output.pci-0000_00_1b.0.analog-stereo.monitor  example.wav # index: 1

오디오를 얻을 수 있습니다.

답변1

프레임 속도는 두 스트림 모두에 적용되지만 ffmpeg 문서 예제가 흩어져 있으므로 여기에 답변을 남겨 두겠습니다.

A="$(pacmd list-sources | grep -PB 1 "analog.*monitor>" | head -n 1 | perl -pe 's/.* //g')"
F="$(date --iso-8601=minutes | perl -pe 's/[^0-9]+//g').mkv"
V="$(xdpyinfo | grep dimensions | perl -pe 's/.* ([0-9]+x[0-9]+) .*/$1/g')"
ffmpeg -loglevel error -video_size "$V" -f x11grab -i :0.0 -f pulse -i "$A" -f pulse -i default -filter_complex amerge -ac 2 -preset veryfast "$F"

어디

#A=1
#F=2018121711440500.mkv
#V=2560x1440
  • ffmpeg도구
  • -loglevel error인쇄 오류만
  • -video_size "$V"화면 해상도 (작은 부분만 녹화하고 싶다면 해상도를 낮춰도 됩니다)
  • -f x11grab화면 녹화(웨이랜드에서는 화면 녹화가 안되는 걸까요?)
  • -i :0.0X11 화면 ID(+x, y를 오프셋으로 추가할 수도 있음)
  • -f pulse오디오 드라이버
  • -i "$A"오디오 스트림 ID
  • -f pulse오디오 드라이버 다시(필요하지 않을 수도 있음)
  • -i default일반적으로 시스템 마이크
  • -filter_complex amerge2개의 오디오 스트림 병합
  • -ac 24개의 오디오 채널을 2개로 변환
  • -preset veryfast끊김 현상을 방지하기 위해 비디오 인코딩 단순화
  • "$F"결과물 파일

pavucontrol매개변수 순서가 중요하며 ffmpeg가 실행되는 동안에만 오디오를 다시 매핑할 수 있다는 점을 명심하세요 .

답변2

ffmpeg -f x11grab -i :0.0 -f pulse -i 0 output_30_fps_fullscreen.mp4

참고: 변경0pulse -i 0마이크에서 소리가 들리면 (0)을 적절한 숫자(예: 1)로 변환하세요.

관련 정보