我需要从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
答案 0 :(得分:0)
您可以使用ffmpeg
提取元数据轨道:
ffmpeg -i input-video.avi -map 0:1 -c copy -copy_unknown -f data data.bin
这会将元数据保存在二进制文件data.bin
中,因此需要一些额外的处理才能取出数据。