Obtenha uma cópia do FFmpeg. Veja o final deste post sobre como fazer isso.
Não importa se o vídeo fica atrás do áudio ou vice-versa. O comando básico é o seguinte. Vamos passar a entrada duas vezes, como pode ser visto por duas opções -i
, depois atrasar uma entrada e juntá-las novamente.
ffmpeg -i in.flv -itsoffset offset -i in.flv -map 1:0 -map 0:1 -c copy out.flv
Aqui, offset
é o atraso em segundos, por ex. 1.5
ou 0.35
. Este valor tem que ser positivo, por isso, se o seu áudio estiver atrasado em relação ao vídeo, teremos que compensar o vídeo. Isso é mostrado no exemplo acima. Da mesma forma, se o vídeo estiver atrasado em relação ao áudio, teremos que compensar o áudio.
Então, como você escolhe se atrasa o áudio ou o vídeo? Bem, como atrasamos todo o in.flv
, selecionamos os fluxos de áudio ou vídeo e os mesclamos com os fluxos originais de áudio ou vídeo. Isso é feito nas opções -map
.
Basicamente, map
tem dois números. Aquele antes dos dois-pontos especifica o número do arquivo de entrada (iniciando em 0) e o segundo número especifica o fluxo do arquivo de entrada (também iniciando em 0).
Então, para atrasar o áudio, use as duas opções a seguir:
-
-map 1:0
significa: Pegue o primeiro fluxo do segundo arquivo de entrada (vídeo do arquivo original) -
-map 0:1
significa: Pegue o segundo fluxo do primeiro arquivo de entrada (áudio do arquivo atrasado)
Alterne se precisar atrasar seu vídeo:
-
-map 0:0
significa: Pegue o primeiro fluxo do primeiro arquivo de entrada (vídeo do arquivo atrasado) -
-map 1:1
significa: Pegue o segundo fluxo do segundo arquivo de entrada (áudio do arquivo original)
Finalmente, -c copy
simplesmente informará ao FFmpeg para copiar os fluxos de bits de vídeo e áudio. Isso significa que não haverá processo de codificação. Isso torna o comando ultrarrápido e você não perderá nenhuma qualidade no processo. Se, no entanto, você encontrar erros de sincronização, deixe de fora -c copy
e deixe o FFmpeg recodificar a entrada.
Você pode obter a última versão estável do FFmpeg por meio do Homebrew .
-
Abra um terminal e digite:
ruby -e "$(curl -fsSkL raw.github.com/mxcl/homebrew/go)"
-
Consulte também os requisitos de instalação . Você tem que instalar as ferramentas de linha de comando para o Xcode se você não tiver. Você precisará de um ID da Apple para isso.
-
Assim que o Homebrew estiver instalado, instale o FFmpeg:
brew install ffmpeg
-
Uma vez feito isso, podemos usar o FFmpeg para corrigir seu vídeo.