Antes de atualizar para o Ubuntu mais recente, usei o seguinte comando para extrair mp3 de um arquivo avi:
$ for x in *.avi; do ffmpeg -vol 100 -ab 160k -ar 44100 -i "$x" "`basename "$x" .avi`.mp3"; done
Isso funcionou. Mas desde o Ubuntu 12.04 eu receboOpção sample_rate não encontrada.quando tento executar este comando. Se eu omitir-ar 44100(ou -sample_rate 44100) ele extrai o mp3, mas na maioria dos casos a duração do mp3 extraído não cabe mais. Isso significa que eles têm uma duração de 43 minutos ou algo assim, embora o avi tenha uma duração de apenas 5 minutos.
É o mesmo problema com ffmpeg e avconv. Alguma idéia de como resolver esses problemas?
Responder1
Em vez disso, tente com isto:
ffmpeg -i "$x" -vol 100 -ab 160k -ar 44100 "`basename "$x" .avi`.mp3"
Antes as opções estavam na frente do arquivo de entrada, mas parece que você deseja configurá-las para o arquivo de saída.
Responder2
Você já tentou com outros arquivos avi? A trilha de áudio do arquivo pode ser maior que a trilha de vídeo (apenas um palpite).
Você já tentou a opção -t?
-t duration
Restrict the transcoded/captured video sequence to the duration
specified in seconds. "hh:mm:ss[.xxx]" syntax is also supported.
Você pode tentar definir um filtro de fluxo de bits de áudio no ffmpeg. Nunca tentei, mas o filtro "remove_extra" parece promissor;)
-absf bitstream_filter
Bitstream filters available are "dump_extra", "remove_extra",
"noise", "mp3comp", "mp3decomp".
Você já pensou em usar um comando como ExifTool para visualizar informações sobre o arquivo e definir suas opções de acordo (talvez até analisar a saída e automatizá-la em seu script)?
Talvez você possa extrair o arquivo de áudio em um formato sem perdas e depois transcodificá-lo, mas deve haver uma maneira melhor do que essa.
Se você conseguir resolver o problema, poste o que você fez, porque não estou satisfeito com os métodos óbvios de processamento dos milhares de arquivos de vídeo que preciso desmuxar. Fiz um script semelhante ao seu, mas quero obter arquivos de áudio da melhor qualidade possível, sem perder espaço. Minhas opções de transcodificação serão dinâmicas com certeza, então preciso de algo um pouco mais sofisticado do que um liner.
Responder3
ffmpeg -version informará quais opções de compilação foram habilitadas durante a compilação do ffmpeg para o Ubuntu 12.04. Pode estar faltando uma biblioteca ou talvez uma opção não tenha sido habilitada durante o tempo de compilação, na qual você teria que recompilar com todas as opções desabilitadas habilitadas. A taxa de amostragem padrão para ffmpeg é 44100 com uma taxa de bits de 64k.
Responder4
Instale o ppa do ffmpeg de ppa:jon-severinsson/ffmpeg e isso irá consertar.