#3920 closed defect (fixed)
ffprobe can't parse dash init.mp4
Reported by: | Andrew | Owned by: | |
---|---|---|---|
Priority: | normal | Component: | ffprobe |
Version: | git-master | Keywords: | |
Cc: | Blocked By: | ||
Blocking: | Reproduced by developer: | no | |
Analyzed by developer: | no |
Description
ffprobe seems unable to parse the init.mp4's generated for dash files whereas mediainfo can.
Example:ffprobe http://progressive.netshow.ninemsn.com.au/media2/2738061917001/2014/09/3764143740001/video/1/init.mp4
ffprobe version N-65977-gd9e2ace Copyright (c) 2007-2014 the FFmpeg developers
built on Aug 30 2014 17:48:03 with Apple LLVM version 5.1 (clang-503.0.40) (based on LLVM 3.4svn)
configuration: --enable-libx264 --enable-libfdk_aac --enable-nonfree --enable-gpl --enable-ffplay --enable-libfreetype --enable-libx265
libavutil 54. 7.100 / 54. 7.100
libavcodec 56. 1.100 / 56. 1.100
libavformat 56. 3.100 / 56. 3.100
libavdevice 56. 0.100 / 56. 0.100
libavfilter 5. 0.103 / 5. 0.103
libswscale 3. 0.100 / 3. 0.100
libswresample 1. 1.100 / 1. 1.100
libpostproc 53. 0.100 / 53. 0.100
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fa82c005200] Could not find codec parameters for stream 0 (Video: h264 (avc1 / 0x31637661), 512x288): unspecified pixel format
Consider increasing the value for the 'analyzeduration' and 'probesize' options
http://progressive.netshow.ninemsn.com.au/media2/2738061917001/2014/09/3764143740001/video/1/init.mp4: End of file
Mediainfo output
mediainfo http://progressive.netshow.ninemsn.com.au/media2/2738061917001/2014/09/3764143740001/video/1/init.mp4
General
Complete name : http://progressive.netshow.ninemsn.com.au/media2/2738061917001/2014/09/3764143740001/video/1/init.mp4
Format : MPEG-4
Format profile : Base Media
Codec ID : isom
File size : 713 Bytes
Duration : 5mn 45s
Overall bit rate : 17 bps
Encoded date : UTC 1904-01-01 00:00:00
Tagged date : UTC 1904-01-01 00:00:00
Video
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format profile : Main@L2.1
Format settings, CABAC : Yes
Format settings, ReFrames : 3 frames
Codec ID : avc1
Codec ID/Info : Advanced Video Coding
Duration : 5mn 45s
Width : 512 pixels
Height : 288 pixels
Display aspect ratio : 16:9
Frame rate : 23.976 fps
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Encoded date : UTC 1904-01-01 00:00:00
Tagged date : UTC 1904-01-01 00:00:00
Attachments (1)
Change History (12)
by , 10 years ago
comment:1 by , 10 years ago
comment:3 by , 10 years ago
What is the difference between the information shown in your original report and in comment:1?
comment:4 by , 10 years ago
Original report failed to provide file info and returned an error only:
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fa82c005200] Could not find codec parameters for stream 0 (Video: h264 (avc1 / 0x31637661), 512x288): unspecified pixel format
Comment:1 shows the metadata correctly
I am assuming the change in comment one is as commented which is removing the check for pixel format in the mp4. I haven't checked the mp4 spec but as this is a valid DASH init.mp4 file I am assuming it is correct and as such that pixel format is not a required field in an mp4.
comment:6 by , 10 years ago
Everything you see in the details under "mediainfo output" in the original ticket I would hope ffprobe could pick up.
As another alternative you can see the details returned by Bento tools on the same mp4 file:
mp4info --verbose init.mp4
File:
major brand: isom
minor version: 1
compatible brand: isom
compatible brand: avc1
compatible brand: mp42
Movie:
duration: 345465 ms
time scale: 1000
fragments: yes
Found 1 Tracks
Track 1:
flags: 7 ENABLED IN-MOVIE IN-PREVIEW
id: 1
type: Video
duration: 345386 ms
language: und
media:
sample count: 0
timescale: 24000
duration: 0 (media timescale units)
duration: 0 (ms)
bitrate (computed): 0.000 Kbps
display width: 512.000000
display height: 288.000000
Sample Description 0
Bytes: 00000000000000010000000000000000000000000000000002000120004800000048000000000000000100000000000000000000000000000000000000000000000000000000000000000018ffff0000002e61766343014d4015ffe10017674d4015d9008025b01100000303e90000bb808f162e4801000468ebc3f2
Coding: avc1 (H.264)
Width: 512
Height: 288
Depth: 24
AVC Profile: 77 (Main)
AVC Profile Compat: 40
AVC Level: 21
AVC NALU Length Size: 4
AVC SPS: [674d4015d9008025b01100000303e90000bb808f162e48]
AVC PPS: [68ebc3f2]
comment:7 by , 3 years ago
Master version of ffprobe seems to work fine, due to some improvements in libavformat (tolerant to the missing pixel format):
stefano@mariano:~/src/ffmpeg$ ./ffprobe samples/init.mp4 -show_format -show_streams -print_format json ffprobe version N-107400-g42a1742b56 Copyright (c) 2007-2022 the FFmpeg developers built with gcc 9 (Ubuntu 9.4.0-1ubuntu1~20.04.1) configuration: --optflags='-O0 -ggdb' libavutil 57. 27.100 / 57. 27.100 libavcodec 59. 36.100 / 59. 36.100 libavformat 59. 26.100 / 59. 26.100 libavdevice 59. 6.100 / 59. 6.100 libavfilter 8. 43.100 / 8. 43.100 libswscale 6. 6.100 / 6. 6.100 libswresample 4. 6.100 / 4. 6.100 { [mov,mp4,m4a,3gp,3g2,mj2 @ 0x563585e7c140] Could not find codec parameters for stream 0 (Video: h264 (avc1 / 0x31637661), none, 512x288): unspecified pixel format Consider increasing the value for the 'analyzeduration' (0) and 'probesize' (5000000) options Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'samples/init.mp4': Metadata: major_brand : isom minor_version : 1 compatible_brands: isomavc1mp42 Duration: N/A, bitrate: N/A Stream #0:0[0x1](und): Video: h264 (avc1 / 0x31637661), none, 512x288, 24k tbr, 24k tbn (default) Metadata: handler_name : Bento4 Video Handler vendor_id : [0][0][0][0] "streams": [ { "index": 0, "codec_name": "h264", "codec_long_name": "H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10", "codec_type": "video", "codec_tag_string": "avc1", "codec_tag": "0x31637661", "width": 512, "height": 288, "coded_width": 512, "coded_height": 288, "closed_captions": 0, "film_grain": 0, "has_b_frames": 0, "level": -99, "refs": 1, "is_avc": "true", "nal_length_size": "4", "id": "0x1", "r_frame_rate": "24000/1", "avg_frame_rate": "0/0", "time_base": "1/24000", "duration_ts": 0, "duration": "0.000000", "extradata_size": 38, "disposition": { "default": 1, "dub": 0, "original": 0, "comment": 0, "lyrics": 0, "karaoke": 0, "forced": 0, "hearing_impaired": 0, "visual_impaired": 0, "clean_effects": 0, "attached_pic": 0, "timed_thumbnails": 0, "captions": 0, "descriptions": 0, "metadata": 0, "dependent": 0, "still_image": 0 }, "tags": { "language": "und", "handler_name": "Bento4 Video Handler", "vendor_id": "[0][0][0][0]" } } ], "format": { "filename": "samples/init.mp4", "nb_streams": 1, "nb_programs": 0, "format_name": "mov,mp4,m4a,3gp,3g2,mj2", "format_long_name": "QuickTime / MOV", "size": "713", "probe_score": 100, "tags": { "major_brand": "isom", "minor_version": "1", "compatible_brands": "isomavc1mp42" } } }
Marking as closed.
comment:8 by , 3 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
comment:9 by , 3 years ago
Resolution: | fixed |
---|---|
Status: | closed → reopened |
No. In fact it still prints [mov,mp4,m4a,3gp,3g2,mj2 @ 0x563585e7c140] Could not find codec parameters for stream 0 (Video: h264 (avc1 / 0x31637661), none, 512x288): unspecified pixel format
and cannot see it is yuv420p.
comment:10 by , 2 years ago
Resolution: | → fixed |
---|---|
Status: | reopened → closed |
comment:11 by , 2 years ago
No, it still does
Stream #0:0[0x1](und): Video: h264 (avc1 / 0x31637661), none, 512x288, 24k tbr, 24k tbn (default)
so it cannot see it is yuv420p.
But I agree the file is just corrupt or supposed to be concatenated with following segments.
If the pixel format is no more considered as an error, we get the following:
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'init.mp4':
Is this what you're looking for?