Как кодировать конкретную версию метаданных в FFMPEG?
Я конвертирую много песен в короткие "Advert" песни для SHOUTcast, чтобы сервер распознавал их как рекламу. Песня должна иметь ":Advert"
как для заголовка, так и для метаданных исполнителя. Когда я использую следующую команду:
ffmpeg -i "$i" -c copy -vn -map_metadata -1 -metadata title=":Advert" -metadata artist=":Advert" -t 120 "adverts/ADVERT_$i"
Я ожидаю, что это будет выводить песню только с ":Advert"
в качестве метаданных заголовка и исполнителя, но когда я импортирую их в программное обеспечение для воспроизведения по радио (с использованием тегов ID3 1.x), метаданные не копируются и поэтому теряются. Вывод из ffmpeg:
ffmpeg version 3.0.2 Copyright (c) 2000-2016 the FFmpeg developers
built with Apple LLVM version 9.0.0 (clang-900.0.37)
configuration: --prefix=/usr/local/Cellar/ffmpeg/3.0.2 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-opencl --enable-libx264 --enable-libmp3lame --enable-libxvid --disable-lzma --enable-vda
libavutil 55. 17.103 / 55. 17.103
libavcodec 57. 24.102 / 57. 24.102
libavformat 57. 25.100 / 57. 25.100
libavdevice 57. 0.101 / 57. 0.101
libavfilter 6. 31.100 / 6. 31.100
libavresample 3. 0. 0 / 3. 0. 0
libswscale 4. 0.100 / 4. 0.100
libswresample 2. 0.101 / 2. 0.101
libpostproc 54. 0.100 / 54. 0.100
[mp3 @ 0x7feba6800000] Skipping 0 bytes of junk at 230934.
[mjpeg @ 0x7feba7000600] Changing bps to 8
Input #0, mp3, from 'Joakim Karud - Vibe With Me.mp3':
Metadata:
major_brand : dash
minor_version : 0
compatible_brands: iso6mp41
encoder : Lavf56.40.101
artist : Joakim Karud
title : Vibe With Me
Duration: 00:02:53.06, start: 0.025056, bitrate: 138 kb/s
Stream #0:0: Audio: mp3, 44100 Hz, stereo, s16p, 128 kb/s
Metadata:
encoder : Lavc56.60
Stream #0:1: Video: mjpeg, yuvj420p(pc, bt470bg/unknown/unknown), 1280x720 [SAR 1:1 DAR 16:9], 90k tbr, 90k tbn, 90k tbc
Metadata:
comment : Cover (front)
Output #0, mp3, to 'adverts/ADVERT_Joakim Karud - Vibe With Me.mp3':
Metadata:
TIT2 : :Advert
TPE1 : :Advert
TSSE : Lavf57.25.100
Stream #0:0: Audio: mp3, 44100 Hz, stereo, 128 kb/s
Stream mapping:
Stream #0:0 -> #0:0 (copy)
Press [q] to stop, [?] for help
size= 1876kB time=00:02:00.00 bitrate= 128.1kbits/s speed=1.44e+03x
video:0kB audio:1876kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.024837%
Я считаю, что это происходит потому, что имена тегов разные (например, заголовок должен быть title
, но это TIT2
когда выходной. Пожалуйста, кто-нибудь может указать, как я могу обеспечить, чтобы метаданные были закодированы в формате ID3 1.x, чтобы их можно было прочитать с помощью программного обеспечения для воспроизведения по радио. Большое спасибо.
1 ответ
FFmpeg по умолчанию записывает только теги ID3v2.5. ID3v1 должен быть указан для записи.
использование
ffmpeg -i "$i" -c copy -vn -write_id3v1 true -map_metadata -1 -metadata title=":Advert" -metadata artist=":Advert" -t 120 "adverts/ADVERT_$i"