Opened 10 years ago

Closed 20 months ago

Last modified 20 months ago

#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)

init.mp4 (713 bytes ) - added by Carl Eugen Hoyos 10 years ago.

Download all attachments as: .zip

Change History (12)

by Carl Eugen Hoyos, 10 years ago

Attachment: init.mp4 added

comment:1 by Benoit Fouet, 10 years ago

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':

Metadata:

major_brand : isom
minor_version : 1
compatible_brands: isomavc1mp42

Duration: N/A, bitrate: N/A

Stream #0:0(und): Video: h264 (avc1 / 0x31637661), 512x288, 24k tbr, 24k tbn, 24k tbc (default)
Metadata:

handler_name : Bento4 Video Handler

Is this what you're looking for?

comment:2 by Andrew, 10 years ago

That looks correct, thanks

comment:3 by Carl Eugen Hoyos, 10 years ago

What is the difference between the information shown in your original report and in comment:1?

comment:4 by Andrew, 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:5 by Carl Eugen Hoyos, 10 years ago

What part of the metadata for this file has any relevance?

comment:6 by Andrew, 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 Stefano Sabatini, 22 months 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 Stefano Sabatini, 22 months ago

Resolution: fixed
Status: newclosed

comment:9 by Balling, 22 months ago

Resolution: fixed
Status: closedreopened

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 Carl Eugen Hoyos, 20 months ago

Resolution: fixed
Status: reopenedclosed

comment:11 by Balling, 20 months 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.

Last edited 20 months ago by Balling (previous) (diff)
Note: See TracTickets for help on using tickets.