remuxing mpv files from h264 AVI files
I have a bunch of, I think, x264 encoded AVIs that I'd like to convert to m4v so that I can play with Quicktime. Here's how I created them
First I dump the vob from DVD with this:
$ mplayer -dumpstream -dumpfile new.vob dvd://1
Then I compress it:
$ mencoder -oac copy -o new.avi -ovc x264 -x264开发者_开发技巧encopts crf=18 new.vob
I tried doing this to convertthem to m4v, but it's blowing up...
I tried dumping the h264/acc streams:
$ mplayer new.avi -dumpvideo -dumpfile new.h264
$ mplayer new.avi -dumpaudio -dumpfile new.acc
And remuxing(?) with MP4Box but I'm getting an error:
$ MP4Box -add new.h264#video -add new.aac#audio new.m4v
Cannot find H264 start code
Error importing new.h264#video: BitStream Not Compliant
So not sure what to do now...
If I were you, I would just use ffmpeg. ffmpeg has a magic ‘codec’ called copy
which simply copies the content, rather than re-encoding, which is useful for precisely your use case — changing container without re-encoding.
From the ffmpeg man page:
-vcodec codec
Force video codec to codec. Use the "
copy
" special value to tell that the raw codec data must be copied as is.
-acodec codec
Force audio codec to codec. Use the "
copy
" special value to specify that the raw codec data must be copied as is.
So, to put this into practice:
$ ffmpeg -i new.avi -acodec copy -vcodec copy new.m4v
I use this technique for reformatting H.264 videos inside an FLV container into an MP4 container, which drastically improves lip sync in some cases.
You should use handbrake.
精彩评论