Combine MPEG-DASH segments (ex, init.mp4 + segments.m4s) back to a full source.mp4?

33,569

Solution 1

You can just use the cat command or similar tools to do this job:

cat init.mp4 > source.mp4
cat segment-1.m4s >> source.mp4
cat segment-2.m4s >> source.mp4
...

To do this automatically for all segments in the current folder, the following command can be used:

cat init.mp4 $(ls -vx segment-*.m4s) > source.mp4

The -v parameter for ls sorts the output naturally (i.e. 1, 2, ..., 10, ..., 100), otherwise it sorts lexically (i.e. 1, 10, 100, 2, ...). The -x parameter puts the output on a line instead of columns.

Solution 2

Under Windows cmd shell you can use the copy command for file concatenation in the following way:

copy init.mp4 +segment*.m4s source.mp4

"help copy" does provide you all options

Share:
33,569
Drake Guan
Author by

Drake Guan

A programmer loves computer graphics, computational photography, and creative but beautiful stuff. Worked as R&D; manager/engineer in an animation studio for 9yr, and then switched to explore video streaming service because he believes something impact. Check http://about.me/drakeguan for other info.

Updated on June 11, 2020

Comments

  • Drake Guan
    Drake Guan almost 4 years

    GPAC, http://gpac.wp.mines-telecom.fr/, can be used to do video segmentation along with MPEG-DASH spec. One type of results is a combination of init files (ex, init.mp4) and several roughly fixed-duration segments (ex, segment-%d.m4s). What if I just got those results and I like to reverse/combine them back to one full source.mp4 file? Can I use GPAC or ffmpeg for this?