Welcome to the Rockbox Technical Forums!
When I try to join a set of mpegs (for example "cat *.mpg > joined.mpg"), the length header is set--incorrectly--to the length of the last video in the set. So instead of 300 minutes, the video player thinks it's, say, 20 minutes.
I'm not sure how MPG works, but I doubt a binary join is going to work very well. Short of running through the entire file to see how many segments there are, how would you even determine the file length?
Unfortunately, the popularity of an answer online doesn't guarantee its accuracy. These files have timestamps, and cat does nothing about those. It often seems to work properly because many players are very error-tolerant, but the file certainly isn't correct.
Instead of using sameq, have you tried using the "copy" codec, to just copy the stream into a new mpeg file? I'm pretty sure sameq decodes and re-encodes which not only takes longer, but as you've noted results in a file size increase.
mencoder -of mpeg -ovc copy -oac copy inputfile.mpg -o outputfile.mpg
Quote from: saratoga on September 06, 2010, 10:47:27 AMI'm not sure how MPG works, but I doubt a binary join is going to work very well. Short of running through the entire file to see how many segments there are, how would you even determine the file length?A Google search for how to join multiple .mpg files returns page after page of suggestions simply to use cat. Also, the FAQ for ffmpeg (suggested by Rockbox's docs for the .mpg player plugin) itself says to use cat.The test I mentioned above gave me a fully joined mpg file. (I can play this video, although different players get confused in different ways by the incorrect length header.) And running this file through ffmpeg once more (ostensibly unchanged w/ -sameq) even gives me the correct length header, but fattens up my file.
Page created in 0.089 seconds with 15 queries.