avconv를 사용하여 두 개의 오디오 입력 소스를 병합하는 방법

avconv를 사용하여 두 개의 오디오 입력 소스를 병합하는 방법

avconv를 사용하여 스크린캐스트를 만들려고 하는데 문제가 발생했습니다. 마침내 컴퓨터 출력과 마이크 입력을 녹음했는데 문제는 출력 파일에 병합되지 않는다는 것입니다. (나는 그것을 filter_complex amix=inputs 옵션으로 보았지만 이전 버전에만 있었습니다)

병합할 수 있는 다른 방법이 있나요? (후반 제작에서도 상관없습니다.)

이것은 내가 사용하는 명령줄입니다

avconv -f alsa -ac 2 -i pulse -f alsa -ac 2 -i hw:2,0 -filter_complex amix=inputs=2 -f x11grab -r 30 -s 1366x742 -i :0.0+1369,25 -map 0:0 -map 1:0 -map 2:0 -acodec flac -vcodec libx264 -preset:v superfast -crf 18 -threads 0 output.mkv

답변1

비슷한 필터가 있는 를 사용하여 이 작업을 많이 수행하므로 ffmpeg이것이 도움이 될 것입니다. 이는 화면 캡처, 컴퓨터 오디오 입력 screen.avi, 마이크 캡처 입력을 가정합니다 mic.wav.

ffmpeg -i screen.avi -i mic.wav -filter_complex '[0:1][1:0]amix=inputs=2:duration=first[all_audio]' -map 0:0 -map '[all_audio]' -vcodec libx264 -crf 28 -preset slow -acodec mp3 out.avi

출력으로 들어가는 채널이 선택되었다고 생각합니다 -map. 따라서 원래 명령줄을 디버깅하는 경우에는 손실 -map 1:0 -map 2:0(즉, 병합되지 않은 입력을 출력에 매핑)하고 amix 플러그인의 출력 이름을 지정해야 한다고 생각합니다(예: 다음 all_audio과 같이) . 내 예가 표시됨) 및 -map '[all_audio]'(병합된 오디오를 출력에 매핑)이 있습니다. 하지만 나는 몰라 avconv.

관련 정보