16

I create a lot of these small clips on my digital camera. These are in .mpg format and before I share them with others, I would love to just join, clip a few seconds here and there.

I use Google Picassa to create new start and end points, but I dont know a good way to join mpgs yet.

Whats the best free software i can use for this?

Sathyajith Bhat
  • 61,504
  • 38
  • 179
  • 264
Kapsh
  • 417
  • 2
  • 6
  • 10

7 Answers7

26

mpg files are the easiest to join. You can actually copy them together. In Windows you use

copy/b file1.mpg+file2.mpg+file3.mpg newfile.mpg

In Linux, I use cat:

cat file1.mpg file2.mpg file3.mpg >> newfile.mpg
Glorfindel
  • 4,089
  • 8
  • 24
  • 37
Joshua K
  • 843
  • 8
  • 21
  • Valid point, but he wants to clip some parts out. – John T Sep 19 '09 at 04:47
  • 1
    Thanks, this worked great. I can still use Picassa to clip the parts and then use the copy command to join multiple clips. – Kapsh Sep 25 '09 at 14:44
  • 1
    I tried doing this, and it claimed the copy was successful, but the video only lasts as long as the last video's length, even though it appears to start at the first video copied. Why is this, and what can I do to fix it? – nhinkle Nov 05 '10 at 03:54
  • And it's a pity this doesn't work with .mp4 (being a container format) - you get a file as large as it needs to be, but that only plays the first file – PandaWood Feb 01 '11 at 22:26
  • The >> in the linux command should have been >. I tried to edit it, but SE's web interface wouldn't let me, because my edit wasn't enough characters. –  Dec 19 '16 at 22:55
  • @BenCrowell 'should have' is speculative. The >> will append to an existing file or create a new one, which might be useful while the single > will destroy the existing target. It's up to the user and both work and serve a purpose. – Joshua K Dec 01 '17 at 22:52
  • on ubuntu 18 the final file only contains the content of the first file – A.W. Jul 17 '18 at 18:03
  • @Guus i'm still using 16. It would seem REALLY strange for that behavior to have changed. I'll check after I update and update my answer if necessary. – Joshua K Jul 18 '18 at 15:40
  • 1
    Worked for me with a 4-parter. The time stamp of the final version is messed up, but it plays through just fine. – FreeMan Jul 24 '18 at 22:44
8

Recent versions of ffmpeg can do this via its concat demuxer, which should be more reliable than using cat or copy. First, create a file called inputs.txt, containing

file /path/to/input1.mpg
file /path/to/input2.mpg
file /path/to/input3.mpg

Then use the following ffmpeg command:

ffmpeg -f concat -i inputs.txt -c copy output.mpg

See here for more information.

evilsoup
  • 13,097
  • 3
  • 59
  • 80
2

For Linux Avidemux is quite good:

For Windows there is

There are also more low level tools that work directly on the MPEG stream such as:

Those might be good for lossless cutting, but give much less freedom.

Grumbel
  • 3,542
  • 6
  • 31
  • 35
1

Join/encode/convert to your heart's content with MediaCoder.

Gaff
  • 18,569
  • 15
  • 57
  • 68
Tutul
  • 478
  • 2
  • 6
1

How about Windows Movie Maker or Windows Live Movie Maker? (depending on your version of windows, which it seems you are using by your other questions).

John T
  • 163,373
  • 27
  • 341
  • 348
0

I have used copy/b & that joins the files OK but it does something to the header that messes with the time code. But then I ran the entire file through XMedia Recode using just video copy (not convert) & audio copy with the same extension & that seemed to straighten it out: http://forum.videohelp.com/threads/375401-How-to-cut-any-video-with-Xmedia-Recode

Max
  • 1
  • Please quote the essential parts of the answer from the reference link(s), as the answer can become invalid if the linked page(s) change. – DavidPostill Jan 26 '17 at 09:37
0

If you simply copy them together using the command line as suggested above, the duration will not be reported correctly in your media player, but it still may work. Don't trust the duration reported by your player - check manually.

When ripping and combining videos from DVD, If I rip without re-encoding, I get mpg files which I can combine with the copy command, and then even though VLC doesn't report the duration correctly, Handbrake "sees" the correct duration, and the final re-encoded mp4 files play correctly and display the correct duration.

Glaurung
  • 191
  • 3