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.
Super User is a question and answer site for computer enthusiasts and power users. It only takes a minute to sign up.Sign up to join this community
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
Try ffmpeg. It's powerful & cross-platform. It may already exist in your linux distro. To copy 2 minutes of video after the first and convert from mpg to ts:
ffmpeg -vcodec copy -ss 00:01:00 -t 00:03:00 \ -i input.mpg -vcodec copy -acodec copy \ -f mpegts output.ts
It's a good choice if you have lots of videos in essentially random formats. It's a 'swiss army knife' for video.
If you are starting with mpeg, you could also try mpegtx, which includes a variety of mpeg tools including a splitter. Easier IMHO than ffmpeg to split. To split a file into 10 chunks each with a basename of 'chunk':
mpgtx -10 input.mpg -b chunk
Try dvbcut if you want something with a UI.