
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 0
deesta 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 1
para 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.