"ffprobe -v trace demo.mp4"输出的含义



mp4文件的'mdat框'可能在文件的最后一个。我想使用" ffmpeg"或" ffprobe"来知道" mdat"框的位置。

mp4由" FTYP"," MOOV"one_answers" MDAT"框组成。每个盒子由" Boxheader"one_answers" Boxdata"组成。" Boxheader"由" BoxSize(4 Byte("," BoxType(4 Byte("," BoxLargeize(8 Byte,仅在盒子大小都超过4Byte表达式范围时(,那么BoxSize的值为1("。

在程序中,您可以首先读取8个字节并知道" FTYP框"的大小,然后寻找大小并读取8个字节以了解下一个框是否为" Moov Box"。如果不是" Moov",它将是" MDAT框",然后寻求Cross" MDAT框"找到" MDAT Box" ...

,但我想使用" ffprobe"来找到" MOOV"的位置。我使用'ffprobe -v trace demo.mp4',输出如下

[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fc8fd000e00] Format mov,mp4,m4a,3gp,3g2,mj2 probed with size=2048 and score=100
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fc8fd000e00] type:'ftyp' parent:'root' sz: 28 8 41044500
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fc8fd000e00] ISO: File Type Major Brand: mp42
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fc8fd000e00] type:'moov' parent:'root' sz: 17943 36 41044500
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fc8fd000e00] type:'mvhd' parent:'moov' sz: 108 8 17935

我想知道type:'ftyp' parent:'root' sz: 28 8 41044500的含义: type:'ftyp' parent:'root'很容易知道,sz: 28 8 41044500确实使我感到困惑,我猜28是FTYP框的大小,但是8 41044500的含义是什么?

您可以解释sz: 28 8 41044500的含义,在哪里可以找到DOC?

考虑

type:'mvhd' parent:'moov' sz: 108 8 17935

类型和父,分别表示当前和父框的类型。

sz(size(有三个值。

第一个值108表示当前框的总尺寸,包括标题。

第二个值8代表框数据相对于框标题的开始的启动偏移。这是需要的,因为盒子尺寸可以是8个字节,而框类型可以具有uuid,在这种情况下,可能长达20个字节。即使盒子没有数据,该偏移量也不为零。free

第三个值17935是父框的数据大小。

最新更新