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?
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
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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??
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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
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
now fixed on SVN , thanks for the report
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
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
Could you post your file somewhere? I cannot reproduce your issue
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???
have you tried adding "-profile live" to the command ?
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??
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