Despeja / carregue metadados com o FFmpeg (WMA para MP3)

4

Eu preciso converter metadados WMA em tags MP3 ID3. O FFmpeg deve ser capaz de despejá-los em um arquivo e carregá-los de volta para outro usando mapeadores implementados. Não consigo encontrar a sintaxe de uso:

link

Não consigo converter arquivos usando o FFmpeg diretamente porque ele falha em 1% deles, o que é crítico para milhares de arquivos. Alguns erros:

ff asf bad header 0  at:264993
[asf @ 0046DA60] ff asf skip 2252 (unknown stream)
[asf @ 0046DA60] ff asf bad header 0  at:267254
[mp3 @ 0003DA60] max_analyze_duration 5000000 reached at 5015510
Truncating packet of size 1024 to 563
[mp3 @ 0171b0c0] Header missing
get_buffer() failed
Error while decoding stream #0:0

Eu poderia convertê-los usando o Mplayer para WAV e depois de WAV para MP3 usando o LAME, mas perdendo metadados no processo.

Ainda não decidi sobre a solução, mas não vou usar o mplayer e ficar com o ffmpeg. Analisei / exibi onda dos arquivos em audácia e parece que eu lido com 3 tipos de erros:

  1. get_buffer () falhou Erro ao decodificar o fluxo # 0: 0 [98% dos erros]:
    • parece ser causado por finalização do arquivo "fade out" truncado ou por falta de um frame
    • não é escutável e o arquivo mp3 parece estar ok
  2. ff asf ignorar, cabeçalho incorreto, truncamento, .. [2% de bugs somente]:
    • o arquivo está quebrado de alguma forma, nem sempre é possível escutar
    • apenas alguns deles contêm um intervalo micro de ruído de crack
  3. max_analyze_duration alcançado, cabeçalho ausente [somente avisos]:
    • muito raro, talvez causado por cabeçalho errado ou grande (com foto incluída, etc.)
    • arquivo de resultado é bom para ouvir

O mplayer usa o ffmpeg e parece que apenas ignora os bugs. Eu provavelmente vou ignorar o erro get_buffer () enquanto falha com os outros.

    
por Jan Suvak 12.01.2012 / 13:05

1 resposta

3

Você pode despejar metadados com:

ffmpeg -i in.mov -f ffmetadata metadata.txt  

Você pode importar metadados com algo como (nunca tentei isso):

ffmpeg -i in.mov -i metadata.txt -map_metadata 1 -c:a copy -id3v2_version 3 

Fonte: link

    
por 27.08.2012 / 20:33