[Libav-user] How to determine duration in fragmented mp4 init segment
Jean-Yves Avenard
jyavenard at gmail.com
Fri Jan 9 12:34:39 CET 2015
Hi there.
I'm asking here now as I've been banging my head on this for a while
now and can't find a solution.
Seeing that the file I'm analysing was creating using libavformat ;
I'm hoping someone here would know...
So here I have an init segment:
http://people.mozilla.org/~jyavenard/mediatest/fragmented/facebook-paper_dash.mp4
Now, all movie headers (mvhd atom), media header (mdhd) or track
headers (tkhd atoms) indicate that the duration is 0.
(can check with this page:
http://people.mozilla.org/~jyavenard/tests/mse_mp4/paper-init.html)
Yet, IE11 and Chrome reads the duration as 120.187s which makes sense
as the original mp4 I extracted it from was 2 minutes long.
Here is the details of this mp4 init segment:
[ftyp] size=8+28
major_brand = isom
minor_version = 200
compatible_brand = isom
compatible_brand = iso2
compatible_brand = avc1
compatible_brand = mp41
compatible_brand = dash
[free] size=8+47
[moov] size=8+1168
[mvhd] size=12+96
timescale = 1000
duration = 0
duration(ms) = 0
[mvex] size=8+64
[trex] size=12+20
track id = 1
default sample description index = 1
default sample duration = 1001
default sample size = 0
default sample flags = 10000
[trex] size=12+20
track id = 2
default sample description index = 1
default sample duration = 1024
default sample size = 0
default sample flags = 0
[trak] size=8+467
[tkhd] size=12+80, flags=f
enabled = 1
id = 1
duration = 0
width = 1920.000000
height = 1080.000000
[mdia] size=8+367
[mdhd] size=12+20
timescale = 30000
duration = 0
duration(ms) = 0
language = eng
[hdlr] size=12+33
handler_type = vide
handler_name = VideoHandler
[minf] size=8+282
[vmhd] size=12+8, flags=1
graphics_mode = 0
op_color = 0000,0000,0000
[dinf] size=8+28
[dref] size=12+16
[url ] size=12+0, flags=1
location = [local to file]
[stbl] size=8+218
[stsd] size=12+138
entry-count = 1
[avc1] size=8+126
data_reference_index = 1
width = 1920
height = 1080
compressor =
[avcC] size=8+40
Configuration Version = 1
Profile = Main
Profile Compatibility = 40
Level = 31
NALU Length Size = 4
Sequence Parameter = [67 4d 40 1f ec c0 3c 01
13 f2 e0 22 00 00 07 d2 00 01 d4 c0 1e 30 63 34]
Picture Parameter = [68 e9 78 f2 c8]
[stts] size=12+4
entry_count = 0
[stsc] size=12+4
entry_count = 0
[stsz] size=12+8
sample_size = 0
sample_count = 0
[stco] size=12+4
entry_count = 0
[trak] size=8+407
[tkhd] size=12+80, flags=f
enabled = 1
id = 2
duration = 0
width = 0.000000
height = 0.000000
[mdia] size=8+307
[mdhd] size=12+20
timescale = 48000
duration = 0
duration(ms) = 0
language = eng
[hdlr] size=12+33
handler_type = soun
handler_name = SoundHandler
[minf] size=8+222
[smhd] size=12+4
balance = 0
[dinf] size=8+28
[dref] size=12+16
[url ] size=12+0, flags=1
location = [local to file]
[stbl] size=8+162
[stsd] size=12+82
entry-count = 1
[mp4a] size=8+70
data_reference_index = 1
channel_count = 2
sample_size = 16
sample_rate = 48000
[esds] size=12+30
[ESDescriptor] size=2+28
es_id = 2
stream_priority = 0
[DecoderConfig] size=2+20
stream_type = 5
object_type = 64
up_stream = 0
buffer_size = 0
max_bitrate = 192082
avg_bitrate = 192082
DecoderSpecificInfo = 11 90 56 e5 00
[Descriptor:06] size=2+1
[stts] size=12+4
entry_count = 0
[stsc] size=12+4
entry_count = 0
[stsz] size=12+8
sample_size = 0
sample_count = 0
[stco] size=12+4
entry_count = 0
[udta] size=8+90
[meta] size=12+78
[hdlr] size=12+21
handler_type = mdir
handler_name =
[ilst] size=8+37
[.too] size=8+29
[data] size=8+21
type = 1
lang = 0
value = Lavf55.12.100
I can't for the life of me figure out where it's getting that 120.187s
duration...
Any ideas?
thanks
More information about the Libav-user
mailing list