如何从MP4文件中提取元数据轨道

时间:2016-03-03 02:39:10

标签: ffmpeg mp4 vlc

我需要从MP4文件中提取元数据轨道并另存为单独的文件。我看到,使用ffmpeg我可以提取标准音轨,如音频或视频或字幕轨道,并将其保存为新文件。例如:要保存音轨我使用以下命令:

ffmpeg -i input-video.avi -vn -acodec copy output-audio.aac

但我需要保存专有的元数据轨道。任何指针都会有所帮助。

以下是ffmpeg的输出,以了解文件中存在的不同磁盘。特别是,我有兴趣提取与 Stream#0:3(eng)相对应的曲目......

C:\Users\rkumar\Documents\work\tools\ffmpeg\bin>ffmpeg.exe -i input.MP4
ffmpeg version N-57176-g64b3aaf Copyright (c) 2000-2013 the FFmpeg developers
built on Oct 15 2013 21:32:52 with gcc 4.8.1 (GCC)

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'input.MP4':
Metadata:
major_brand     : mp41
minor_version   : 538120216
compatible_brands: mp41
creation_time   : 1970-01-01 00:00:09
Duration: 00:00:10.52, start: 0.000000, bitrate: 834 kb/s

Stream #0:0(eng): Video: h264 (Main) (avc1 / 0x31637661), yuvj420p(pc, bt709), 
854x480 [SAR 1:1 DAR 427:240], 679 kb/s, 29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc (default)
Metadata:
creation_time   : 1970-01-01 00:00:09
handler_name    : AVC
timecode        : 00:00:13:22

Stream #0:1(eng): Audio: aac (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 128 kb/s (default)
Metadata:
creation_time   : 1970-01-01 00:00:09
handler_name    : AAC
timecode        : 00:00:13:22

Stream #0:2(eng): Data: none (tmcd / 0x64636D74), 0 kb/s (default)
Metadata:
creation_time   : 1970-01-01 00:00:09
handler_name    : TCD
timecode        : 00:00:13:22

Stream #0:3(eng): Data: none (ssmd / 0x646D7067), 5 kb/s (default)
Metadata:
creation_time   : 1970-01-01 00:00:09
handler_name    : MET

Stream #0:4(eng): Data: none (fdsc / 0x63736466), 10 kb/s (default)
Metadata:
creation_time   : 1970-01-01 00:00:09
handler_name    : SOS

1 个答案:

答案 0 :(得分:0)

您可以使用ffmpeg提取元数据轨道:

ffmpeg -i input-video.avi -map 0:1 -c copy -copy_unknown -f data data.bin

这会将元数据保存在二进制文件data.bin中,因此需要一些额外的处理才能取出数据。

相关问题