오디오가 지연되는 m4v 비디오 수정(오디오와 비디오가 동기화되지 않음)

오디오가 지연되는 m4v 비디오 수정(오디오와 비디오가 동기화되지 않음)

Windows에 대한 비슷한 질문은 다음과 같습니다.

오디오와 동기화되지 않은 비디오를 수정하는 도구?

Mac에서 이 문제를 해결하고 싶습니다.

저는 Handbrake와 Avidemux를 사용해 보았습니다(후자는 문제를 해결하기 위해 "shift"라는 옵션이 있는 것 같지만 오디오가 전혀 재생되지 않아 작동하는지 알 수 없습니다!).

답변1

FFmpeg 사본을 구하세요. 이를 수행하는 방법은 이 게시물의 하단을 참조하세요.

비디오가 오디오보다 뒤떨어지든, 그 반대이든 상관없습니다. 기본 명령은 다음과 같습니다. 두 가지 옵션에서 볼 수 있듯이 입력을 두 번 전달한 -i다음 하나의 입력을 지연하고 다시 병합합니다.

ffmpeg -i in.flv -itsoffset offset -i in.flv -map 1:0 -map 0:1 -c copy out.flv

여기,offset초 단위의 지연입니다(예: 1.5또는 ) 0.35. 이 값은 양수여야 하므로 오디오가 비디오보다 뒤처지면 비디오를 오프셋해야 합니다. 이는 위의 예에 나와 있습니다. 마찬가지로, 비디오가 오디오보다 뒤처지면 오디오를 상쇄해야 합니다.

그렇다면 오디오 또는 비디오 지연 여부를 어떻게 선택합니까? 음, 전체를 지연시켰으므로 in.flv오디오 또는 비디오 스트림을 선택하여 원본 오디오 또는 비디오 스트림과 병합하겠습니다. 이는 옵션에서 수행됩니다 -map.

기본적으로 map두 개의 숫자가 있습니다. 콜론 앞의 숫자는 입력 파일 번호(0부터 시작)를 지정하고 두 번째 숫자는 입력 파일 스트림(역시 0부터 시작)을 지정합니다.

따라서 오디오를 지연하려면 다음 두 가지 옵션을 사용하십시오.

  • -map 1:0의미: 두 번째 입력 파일에서 첫 번째 스트림을 가져옵니다(원본 파일의 비디오).
  • -map 0:1의미: 첫 번째 입력 파일에서 두 번째 스트림을 가져옵니다(지연된 파일의 오디오).

비디오를 지연시켜야 한다면 방향을 바꾸세요:

  • -map 0:0의미: 첫 번째 입력 파일에서 첫 번째 스트림을 가져옵니다(지연된 파일의 비디오).
  • -map 1:1의미: 두 번째 입력 파일에서 두 번째 스트림을 가져옵니다(원본 파일의 오디오).

마지막으로 -c copyFFmpeg에게 비디오 및 오디오 비트스트림을 복사하라고 지시합니다. 이는 인코딩 프로세스가 없음을 의미합니다. 이렇게 하면 명령이 매우 빨라지고 프로세스 중에 품질이 저하되지도 않습니다. 그러나 동기화 오류가 발생하면 이를 생략 -c copy하고 FFmpeg가 입력을 다시 인코딩하도록 해야 합니다.


다음을 통해 안정적인 최신 FFmpeg 버전을 얻을 수 있습니다.홈브류.

  • 터미널을 열고 다음을 입력하세요.

      ruby -e "$(curl -fsSkL raw.github.com/mxcl/homebrew/go)"
    
  • 참조설치 요구 사항또한. 아직 설치하지 않은 경우 Xcode용 명령줄 도구를 설치해야 합니다. 이를 위해서는 Apple ID가 필요합니다.

  • Homebrew가 설치되면 FFmpeg를 설치합니다.

      brew install ffmpeg
    
  • 완료되면 FFmpeg를 사용하여 비디오를 수정할 수 있습니다.

관련 정보