FFMPEG está dobrando a duração do áudio ao extrair do vídeo

FFMPEG está dobrando a duração do áudio ao extrair do vídeo

Eu tenho um arquivo de vídeo, video.mp4. Tem 18 minutos e 23 segundos de duração. Estou procurando extrair osomente Audiodeste vídeo e crie um MP3 da mais alta qualidade possível a partir do áudio do vídeo.

Alguns googlefu me levam a este comando:ffmpeg -i video.mp4 audio.mp3

O problema é que este comandodobraa duração do áudio emitido (a duração é de 36 minutos e 46 segundos). Ele faz um loop na trilha de áudio uma vez, de modo que a saída contém todos os 18 minutos e 23 segundos de áudio e, em seguida, inicia imediatamente os 18 minutos e 23 segundos de áudio novamente.

Mais alguns googlefu me levam a esta bandeira: -write_xing 0deesta pergunta SO, mas mesmo com esse sinalizador ele ainda faz um loop no áudio.

EDITAR: Googlefu adicional e eu parecendo pensar que tem algo a ver com 2 canais de áudio (e talvez fazer um loop no canal 2 imediatamente após o canal 1, em vez de mesclar os dois) me levam a este sinalizador: -ac 1para forçá-lo a mesclar estéreo -> mono. Isso também não funcionou e ainda gera um arquivo MP3 de 38 minutos e 46 segundos.

Como posso extrair (para MP3) o áudio de um arquivo de vídeo, sem duplicar a duração?

Responder1

Experimente isto:

ffmpeg -i video.mp4 -vn -sn -c:a mp3 -ab 192k audio.mp3

Usei isso para o mesmo propósito e não alterou a duração do áudio. Além disso, (IMHO) tentar aumentar a qualidade é um exagero, mas você pode tentar com 320k.

Responder2

O Google apresentou alguns relatórios de bugs no ffmpeg Trac que mostram que -write_xing 0 na linha de comando do ffmpeg também pode corrigi-lo. Parece que a discrepância no comprimento decorre de valores incorretos nos dados do Xing gravados por padrão.

informação relacionada