Corrigir um vídeo m4v com atraso de áudio (áudio e vídeo fora de sincronia)

Corrigir um vídeo m4v com atraso de áudio (áudio e vídeo fora de sincronia)

Aqui está uma pergunta semelhante para Windows:

Ferramenta para consertar vídeo fora de sincronia com o áudio?

Espero resolver esse problema em um Mac.

Eu tentei o Handbrake e o Avidemux (o último parece ter uma opção - "shift" - para consertar, mas ele não reproduz o áudio, então não sei dizer se está fazendo alguma coisa!).

Responder1

Obtenha uma cópia do FFmpeg. Veja no final deste post como fazer isso.

Se o vídeo fica atrás do áudio ou vice-versa, isso realmente não importa. O comando básico é o seguinte. Passaremos a entrada duas vezes, como pode ser visto por duas -iopções, depois atrasaremos uma entrada e mesclaremos 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 exemplo, 1.5ou 0.35. Este valor tem que ser positivo, portanto 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 atrasar o áudio ou o vídeo? Bem, como atrasamos tudo in.flv, vamos apenas escolher os fluxos de áudio ou vídeo e mesclá-los com os fluxos de áudio ou vídeo originais. Isso é feito nas -mapopções.

Basicamente, maptem dois números. Aquele antes dos dois pontos especifica o número do arquivo de entrada (começando em 0) e o segundo número especifica o fluxo do arquivo de entrada (também começando em 0).

Portanto, para atrasar o áudio, use as duas opções a seguir:

  • -map 1:0significa: pegue o primeiro stream do segundo arquivo de entrada (vídeo do arquivo original)
  • -map 0:1significa: pegue o segundo stream do primeiro arquivo de entrada (áudio do arquivo atrasado)

Vire-o se precisar atrasar seu vídeo:

  • -map 0:0significa: pegue o primeiro stream do primeiro arquivo de entrada (vídeo do arquivo atrasado)
  • -map 1:1significa: Pegue o segundo stream do segundo arquivo de entrada (áudio do arquivo original)

Finalmente, -c copysimplesmente direi 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ê nem perderá qualidade no processo. Se, no entanto, você encontrar erros de sincronização, deixe de fora -c copye deixe o FFmpeg recodificar a entrada.


Você pode obter a versão estável mais recente do FFmpeg atravésCerveja caseira.

  • Abra um Terminal e digite:

      ruby -e "$(curl -fsSkL raw.github.com/mxcl/homebrew/go)"
    
  • Veja oRequerimentos de instalaçãotambém. Você deve instalar as ferramentas de linha de comando para Xcode, caso ainda não o tenha feito. Você precisará de um ID Apple para isso.

  • Depois que o Homebrew estiver instalado, instale o FFmpeg:

      brew install ffmpeg
    
  • Feito isso, podemos usar o FFmpeg para consertar seu vídeo.

informação relacionada