FFmpeg:从视频容器中提取未知数据流

6

我有一个.MOV文件容器,其中包含以下轨道:

Stream #0:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709), 3840x2160 [SAR 1:1 DAR 16:9], 100619 kb/s, 29.97 fps, 29.97 tbr, 30k tbn, 59.94 tbc (default)
Metadata:
  creation_time   : 2020-07-21T22:48:24.000000Z
  handler_name    : DJI.AVC
  encoder         : AVC encoder
Stream #0:1(eng): Data: none (priv / 0x76697270), 87 kb/s
Metadata:
  creation_time   : 2020-07-21T22:48:24.000000Z
  handler_name    : DJI.Meta
Stream #0:2(eng): Subtitle: mov_text (text / 0x74786574), 2 kb/s (default)
Metadata:
  creation_time   : 2020-07-21T22:48:24.000000Z
  handler_name    : DJI.Subtitle

如您所见,流#0:1称为DJI.meta,其数据格式未知。我只想将此流的原始数据提取到文件中。这是我尝试过的ffmpeg命令:

ffmpeg -i .\DJI_0001.MOV -map 0:1 metadata

但是使用这个命令会导致以下错误:

Unable to find a suitable output format for 'metadata'
metadata: Invalid argument

如何告诉FFmpeg不要格式化数据,只提取原始数据?
1个回答

11

使用

ffmpeg -i input -map 0:d -c copy -copy_unknown -f data raw.bin

4
该命令执行以下操作:仅映射数据流,将编解码器设置为复制以避免转换,设置copy_unknown以处理没有被识别的解码器,因为ffmpeg可能会因此失败。设置数据复用器,以便在复制流包时不添加其他数据。 - Gyan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接