Tool like Media File Segmenter for Linux

I'm looking for a tool for Linux which can segment a video file into multiple small .ts files.

I know one for Mac OS X called Media File Segmenter which is a simple command line tool - I'm looking for an equivalent tool for Linux.


Solution 1:

Others have mentioned ffmpeg; it now has a nice, clean segment muxer. On Linux, instead of relying on whatever (outdated) version of ffmpeg comes with your package manager, you should download a static build or compile it from source.

To split a video into several one-minute segments, also generating an m3u8 playlist & copying all streams (so lossless, but not entirely accurate cutting):

ffmpeg -i input.mpg -c copy -f segment \
-segment_time 60 -segment_list list.m3u8 output%03d.ts

For accurate splitting, the documentation recommends re-encoding and using -force_key_frames to ensure that there will be I-frames on the times that the segment muxer will attempt to split on (see also the libx264 and AAC encoding guides on the ffmpeg wiki):

ffmpeg -i input.mpg -c:v libx264 -crf 22 -preset veryfast -c:a libfdk_aac -vbr 3 \
-force_key_frames expr:gte(t,n_forced*60) -f segment \
-segment_time 60 -segment_list list.m3u8 output%03d.ts

Solution 2:

if you want to cut video from H.264 you should use:

ffmpeg -i Black_Lagoon_E10.mkv -ss 00:08:55 \
-c copy -t 00:00:32 \
-vbsf h264_mp4toannexb -f mpegts Ostanovites.ts