Menu

MP4Box dash crashes with mp4 fragmented files with an audio or video modifier

Help
2014-02-11
2015-06-30
  • Francesc Pinyol Margalef

    Hi,
    When running MP4Box to dash an mp4 file, everything is fine:

    MP4Box -dash 10000 sintel_trailer-720p.mp4

    To get separated AdaptationSet (one for audio and one for video, as required
    by HbbTV), I run:

    MP4Box -dash 10000 sintel_trailer-720p.mp4#audio sintel_trailer-720p.mp4#video

    It is also fine.

    But when the input is a fragmented mp4:

    MP4Box -frag 5000 -out sintel_trailer-720p_frag.mp4 sintel_trailer-720p.mp4
    MP4Box -dash 10000 sintel_trailer-720p_frag.mp4#video sintel_trailer-720p_frag.mp4#audio

    I get a segmentation fault.

    Dashing a fragmented mp4 without any modifier works fine:
    MP4Box -dash 10000 sintel_trailer-720p_frag.mp4

    But as soon as I add a #video or #audio modifier, I get the segmentation fault:
    MP4Box -dash 10000 sintel_trailer-720p_frag.mp4#video

    Is using #audio and #video modifiers a good way to get two AdaptationSet from a single mp4 file?

    Francesc

     
  • Francesc Pinyol Margalef

    Hi,
    I think I've found the reason of the problem.

    If the input file is fragmented, it contains a moov->mvex box that indicates two tracks. Somewhere in the code, this box is cloned to the output. The function gf_isom_setup_track_fragment (in file isomedia/movie_fragments.c) checks if a mvex box is already present, it founds it, and a new one with just one track is not created.

    A workaround to avoid crashing is modifying this function in order to delete any previoulsly created mvex box, and create a new one (see attached pacth).

    Should the input mvex box be cloned to the output?

    Francesc

     

    Last edit: Francesc Pinyol Margalef 2014-02-12
  • Jean Le Feuvre

    Jean Le Feuvre - 2014-02-14

    now fixed on SVN , thanks for the report

     
  • Francesc Pinyol Margalef

    Hi,
    Thanks for the fix. Everything is much better, except the -dash-live, after the sleep:

    $ MP4Box -dash-live 10000 sintel_trailer-720p_frag.mp4#audio sintel_trailer-720p_frag.mp4#video
    Live DASH-ing - press 'q' to quit, 's' to save context and quit
    [DASH]: WARNING! DASH Live profile requested but no -segment-name
    using "%s_dash" by default

    DASH-ing files: 10.00s segments 10.00s fragments single sidx per segment
    Spliting segments at GOP boundaries
    [DASH] Generating MPD at time 2014-02-14T16:42:51Z
    [DASH] MPD AvailabilityStartTime 2014-02-14T16:42:51Z
    DASHing file sintel_trailer-720p_frag.mp4
    crida a gf_isom_setup_track_fragment
    DASHing file sintel_trailer-720p_frag.mp4
    crida a gf_isom_setup_track_fragment
    sleep for 52094 ms

    [DASH] Removing segment sintel_trailer-720p_frag_dash_track2_1.m4s - 40.79 sec too late
    [DASH] Removing segment sintel_trailer-720p_frag_dash_track2_2.m4s - 30.806 sec too late
    [DASH] Removing segment sintel_trailer-720p_frag_dash_track2_3.m4s - 20.822 sec too late
    [DASH] Removing segment sintel_trailer-720p_frag_dash_track2_4.m4s - 10.838 sec too late
    [DASH]: WARNING! DASH Live profile requested but no -segment-name
    using "%s_dash" by default

    DASH-ing files: 10.42s segments 10.00s fragments single sidx per segment
    Spliting segments at GOP boundaries
    [DASH] Generating MPD at time 2014-02-14T16:43:43Z
    [DASH] MPD AvailabilityStartTime 2014-02-14T16:43:43Z
    DASHing file sintel_trailer-720p_frag.mp4

    Error while DASH-ing file: Bad Parameter
    Error DASHing file: Bad Parameter

    This Bad Parameter comes from line 1648 in movie_fragments.c, meaning no traf has been found.

    Francesc

     
  • Neha Prabhakar

    Neha Prabhakar - 2014-12-19

    Hi Francesc,

    I am getting the same error mentioned above.
    I used the following command :-
    mp4box.exe -dash-live 10000 -profile live -dynamic -dash-ctx dash-live.txt -out final.mpd -segment-name out-$RepresentationID$ sourcefile.MP4

    i am trying to generate Dash-Live with this command. But after returning from sleep its is returning error.

    I am new to this and struggling with the generation of Dash-Live content.
    Can you please help me???

    Neha

     
  • Jean Le Feuvre

    Jean Le Feuvre - 2015-01-06

    Could you post your file somewhere? I cannot reproduce your issue

     
  • Neha Prabhakar

    Neha Prabhakar - 2015-01-12

    I used some other command for live generation but it is not updating the start number in mpd.

    mp4box.exe -dash-ctx ash-live.txt -dash 4000 -rap -ast-offset 12 -no-frags-default -bs-switching no -mpd-refresh 10 -min-buffer 4000 -url-template -time-shift 1800 -segment-name out-$RepresentationID$inputfile.mp4 -dynamic -subsegs-per-sidx -1

    Can u please send the command which will work fine for the generation???

     
  • Jean Le Feuvre

    Jean Le Feuvre - 2015-01-13

    have you tried adding "-profile live" to the command ?

     
  • Neha Prabhakar

    Neha Prabhakar - 2015-01-13

    yeah Jean i tried but its is not updating the mpd file.
    i tried playing the generated content using osmo. It is unable to play

    Also i tried the following command :-
    mp4box.exe -dash-live 10000 -profile live -dynamic -dash-ctx dash-live.txt -out final.mpd -segment-name out-$RepresentationID$ source.MP4

    with this command it is going for a long sleep(duration almost equal to the source mp4 file). Osmo is able to play the generated content but not continuously.

    Can you please share proper command which will update the mpd file??
    or can u suggest any other tool for DASH LIVE generation??

     
  • Jean Le Feuvre

    Jean Le Feuvre - 2015-06-30

    try:

    mp4box.exe -dash-live 10000 -subdur 1000 -profile live -dynamic -mpd-refresh 1.0 -dash-ctx dash-live.txt -out final.mpd -segment-name out-$RepresentationID$ source.MP4