Я хочу считать метаданные в медиа-файлах и затем сохранить те метаданные в тексте/XML-файле, так, чтобы я мог позже вставить те данные в свою базу данных. Я предпочел бы использовать ffmpeg.
Также действительно ли то же самое возможно с MediaInfo?? Я знаю, что могу получить метаданные для отдельного использования дорожек MediaInfo, но я хотел бы автоматизировать его; как в том, каждый раз, когда новый медиа-файл найден, считайте его метаданные и затем сохраните его в txt/xml файле.
Или, есть ли какой-либо другой инструмент/утилита/API, который я могу использовать для этого?
Можно установить метаданные по видео, ниже album_artist
ffmpeg -i source.mp4 -metadata album_artist='stack developer' -y -r 1 -acodec copy -vcodec copy destination.mp4
набора упоминания И получить метатег как:
ffmpeg -i destination.mp4
Использование это на командной строке.
Можно использовать ffprobe
(который идет ffmpeg
) для сбора информации о мультимедийных файлах. Для получения информации о полном контенте мультимедийного использования файла
ffprobe -show_streams -show_format DV06xx.avi
и для получения информации о каждом единственном кадре в использовании видеофайла
ffprobe -show_frames DV06xx.avi
Однако ffprobe
не получает столько же информации, сколько мой любимый инструмент, Mediainfo, делает, например, 'ffprobe' не отображает временной код первого кадра видео (хотя страница справочника требует иначе), или дата записи.
, Если Вы работаете mediainfo
на командной строке, можно даже запросить вывод в формате XML:
mediainfo --OUTPUT=XML DV06xx.avi
В моем примере вывод:
<?xml version="1.0" encoding="UTF-8"?>
<Mediainfo version="0.7.63">
<File>
<track type="General">
<Complete_name>DV06xx.avi</Complete_name>
<Format>AVI</Format>
<Format_Info>Audio Video Interleave</Format_Info>
<Commercial_name>DVCPRO</Commercial_name>
<Format_profile>OpenDML</Format_profile>
<File_size>13.3 GiB</File_size>
<Duration>1h 2mn</Duration>
<Overall_bit_rate_mode>Constant</Overall_bit_rate_mode>
<Overall_bit_rate>30.5 Mbps</Overall_bit_rate>
<Recorded_date>2004-03-28 15:42:35.000</Recorded_date>
</track>
<track type="Video">
<ID>0</ID>
<Format>DV</Format>
<Commercial_name>DVCPRO</Commercial_name>
<Codec_ID>dvsd</Codec_ID>
<Codec_ID_Hint>Sony</Codec_ID_Hint>
<Duration>1h 2mn</Duration>
<Bit_rate_mode>Constant</Bit_rate_mode>
<Bit_rate>24.4 Mbps</Bit_rate>
<Encoded_bit_rate>28.8 Mbps</Encoded_bit_rate>
<Width>720 pixels</Width>
<Height>576 pixels</Height>
<Display_aspect_ratio>4:3</Display_aspect_ratio>
<Frame_rate_mode>Constant</Frame_rate_mode>
<Frame_rate>25.000 fps</Frame_rate>
<Standard>PAL</Standard>
<Color_space>YUV</Color_space>
<Chroma_subsampling>4:2:0</Chroma_subsampling>
<Bit_depth>8 bits</Bit_depth>
<Scan_type>Interlaced</Scan_type>
<Scan_order>Bottom Field First</Scan_order>
<Compression_mode>Lossy</Compression_mode>
<Bits__Pixel_Frame_>2.357</Bits__Pixel_Frame_>
<Time_code_of_first_frame>00:00:01:10</Time_code_of_first_frame>
<Time_code_source>Subcode time code</Time_code_source>
<Stream_size>12.6 GiB (94%)</Stream_size>
<Encoding_settings>ae mode=full automatic / wb mode=automatic / white balance= / fcm=manual focus</Encoding_settings>
</track>
<track type="Audio">
<ID>1</ID>
<Format>PCM</Format>
<Format_settings__Endianness>Little</Format_settings__Endianness>
<Format_settings__Sign>Signed</Format_settings__Sign>
<Codec_ID>1</Codec_ID>
<Duration>1h 2mn</Duration>
<Bit_rate_mode>Constant</Bit_rate_mode>
<Bit_rate>1 536 Kbps</Bit_rate>
<Channel_s_>2 channels</Channel_s_>
<Sampling_rate>48.0 KHz</Sampling_rate>
<Bit_depth>16 bits</Bit_depth>
<Stream_size>688 MiB (5%)</Stream_size>
<Alignment>Aligned on interleaves</Alignment>
<Interleave__duration>40 ms (1.00 video frame)</Interleave__duration>
<Interleave__preload_duration>40 ms</Interleave__preload_duration>
</track>
</File>
</Mediainfo>
Добавление дополнительного параметра -f
произведет даже более подробную информацию.