화면 및 내부 오디오 녹음을 위한 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.0
X11 화면 ID(+x, y를 오프셋으로 추가할 수도 있음)-f pulse
오디오 드라이버-i "$A"
오디오 스트림 ID-f pulse
오디오 드라이버 다시(필요하지 않을 수도 있음)-i default
일반적으로 시스템 마이크-filter_complex amerge
2개의 오디오 스트림 병합-ac 2
4개의 오디오 채널을 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)로 변환하세요.