Metadata FFmpeg não copia

0

Estou tentando converter um grande número de arquivos .flac em .aiff para usá-los no iTunes. Deve-se notar que estou fazendo isso no Windows usando o GIT Bash.

O comando que estou usando para converter os arquivos é o seguinte:

for f in *.flac; do "c:/FFmpeg/bin/ffmpeg" -i "$f" -i cover.png -map_metadata 0 "D:\Music\Monstercat\Monstercat 001 - Launch Week (apple)\${f%.flac}.aiff"; done

O próprio código faz praticamente o que é suposto. Ele percorre todos os arquivos, captura a imagem da capa, converte o arquivo em .aiff e o exibe na pasta correta.

Veja o exemplo de saída de um dos ciclos de conversão:

ffmpeg version N-83410-gb1e2192 Copyright (c) 2000-2017 the FFmpeg developers built with gcc 5.4.0 (GCC) configuration: --disable-static --enable-shared --enable-gpl --enable-version3 --enable-cuda --enable-cuvid --enable-d3d11va --enable-dxva2 --enable-libmfx --enable-nvenc --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzimg --enable-lzma --enable-decklink --enable-zlib libavutil 55. 46.100 / 55. 46.100 libavcodec 57. 75.100 / 57. 75.100 libavformat 57. 66.101 / 57. 66.101 libavdevice 57. 2.100 / 57. 2.100 libavfilter 6. 72.100 / 6. 72.100 libswscale 4. 3.101 / 4. 3.101 libswresample 2. 4.100 / 2. 4.100 libpostproc 54. 2.100 / 54. 2.100 Input #0, flac, from 'Stephen Walking - Monstercat 001 - Launch Week - 7 Still Walking.flac': Metadata: ENCODER : Lavf56.15.102 TITLE : Still Walking ARTIST : Stephen Walking ALBUM : Monstercat 001 - Launch Week track : 7 GENRE : Dubstep Duration: N/A, start: 0.000000, bitrate: N/A Stream #0:0: Audio: flac, 44100 Hz, stereo, s16 Stream #0:1: Video: png, rgb24(pc), 1024x1024 [SAR 72:72 DAR 1:1], 90k tbr, 90k tbn, 90k tbc Metadata: comment : Cover (front) Input #1, png_pipe, from 'cover.png': Duration: N/A, bitrate: N/A Stream #1:0: Video: png, rgb24(pc), 1024x1024 [SAR 72:72 DAR 1:1], 25 tbr, 25 tbn, 25 tbc Output #0, aiff, to 'D:\Music\Monstercat\Monstercat 001 - Launch Week (apple)\Stephen Walking - Monstercat 001 - Launch Week - 7 Still Walking.aiff': Metadata: GENRE : Dubstep TITLE : Still Walking ARTIST : Stephen Walking ALBUM : Monstercat 001 - Launch Week track : 7 encoder : Lavf57.66.101 Stream #0:0: Video: png, rgb24, 1024x1024 [SAR 72:72 DAR 1:1], q=2-31, 200 kb/s, 25 fps, 25 tbn, 25 tbc Metadata: encoder : Lavc57.75.100 png Stream #0:1: Audio: pcm_s16be (NONE / 0x454E4F4E), 44100 Hz, stereo, s16, 1411 kb/s Metadata: encoder : Lavc57.75.100 pcm_s16be Stream mapping: Stream #1:0 -> #0:0 (png (native) -> png (native)) Stream #0:0 -> #0:1 (flac (native) -> pcm_s16be (native)) Press [q] to stop, [?] for help frame= 1 fps=1.0 q=-0.0 Lsize= 34668kB time=00:03:21.24 bitrate=1411.2kbits/s speed= 196x video:1262kB audio:34668kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown

Como visto, o arquivo original tem metadados intactos, mostrados abaixo para comparação ...

Metadata: ENCODER : Lavf56.15.102 TITLE : Still Walking ARTIST : Stephen Walking ALBUM : Monstercat 001 - Launch Week track : 7 GENRE : Dubstep

No entanto, quando importo o arquivo de destino para o iTunes, nenhum dos metadados foi preservado. Deve-se observar que o comando original não possuía a parte -map_metadata 0 , pois isso foi adicionado para ver se isso forçaria a gravação dos metadados. Também deve ser observado que tentei exportar os metadados para um arquivo de texto e depois mesclá-lo no arquivo de destino posteriormente com o mesmo resultado.

Aqui está a saída do FFprobe do arquivo de saída:

ffprobe version N-83410-gb1e2192 Copyright (c) 2007-2017 the FFmpeg developers built with gcc 5.4.0 (GCC) configuration: --disable-static --enable-shared --enable-gpl --enable-version3 --enable-cuda --enable-cuvid --enable-d3d11va --enable-dxva2 --enable-libmfx --enable-nvenc --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzimg --enable-lzma --enable-decklink --enable-zlib libavutil 55. 46.100 / 55. 46.100 libavcodec 57. 75.100 / 57. 75.100 libavformat 57. 66.101 / 57. 66.101 libavdevice 57. 2.100 / 57. 2.100 libavfilter 6. 72.100 / 6. 72.100 libswscale 4. 3.101 / 4. 3.101 libswresample 2. 4.100 / 2. 4.100 libpostproc 54. 2.100 / 54. 2.100 Input #0, aiff, from 'Stephen Walking - Monstercat 001 - Launch Week - 7 Still Walking.aiff': Metadata: title : Still Walking Duration: 00:03:21.25, start: 0.000000, bitrate: 1411 kb/s Stream #0:0: Audio: pcm_s16be, 44100 Hz, 2 channels, s16, 1411 kb/s

Por algum motivo, somente a tag de metadados title é importada, enquanto o restante é ignorado. Além disso, quando importado para o iTunes, o título da música informa Stephen Walking - Monstercat 001 - Launch Week - 7 Still Walking.aiff em vez de Still Walking .

Qualquer ajuda com isso seria apreciada. Eu tenho trabalhado nisso há algumas horas e estou perplexo.

Além disso, pontos de bônus para quem quiser tornar o loop for mais eficiente. A pasta original é D:\Music\Monstercat\Monstercat 001 - Launch Week e o destino é D:\Music\Monstercat\Monstercat 001 - Launch Week (apple) .

Obrigado

    
por Foxtrek_64 06.02.2017 / 14:21

1 resposta

1

Você precisa ativar a gravação de tags.

c:/FFmpeg/bin/ffmpeg" -i "$f" -i cover.png -map_metadata 0 -write_id3v2 1 "D:\Music\Monstercat\Monstercat 001 - Launch Week (apple)\${f%.flac}.aiff
    
por 06.02.2017 / 14:32