[MEncoder-users] Sending raw video into x264
James Hastings-Trew
jimht at shaw.ca
Tue Mar 3 14:29:32 CET 2009
Andrew Berg wrote:
> I've been using MediaCoder for a while, but I decided I want a bit more
> control, so I thought I'd try doing what MC does manually. I'm really
> doing this mostly because I want to deinterlace video before sending it
> to x264, which I can't do with MC. I'm having a big problem, though. I
> can't seem to send raw video from by mencoder into x264 for encoding and
> get a good output like MC does (the video I get is distorted and plays
> at half the speed it should). What are the basic options I should set to
> achieve this (sending the decoded video to stdout)? My input files are
> interlaced MPEG-2, if that matters.
> _______________________________________________
>
Why try to send output from mencoder to x264 when mencoder has x264
built into it? And I don't mean the mencoder that comes with Media
Coder. I mean get a decent built of it from
http://oss.netfarm.it/mplayer-win32.php.
I am assuming your input is interlaced NTSC video in mpeg-2, likely from
a DVD source, and you want a progressive h.264/aac .mp4 output. You
could try this:
mencoder input.vob -fps 30000/1001 -ofps 24000/1001 -of lavf -lavopts
format=mp4
\ -oac faac -faacopts mpeg=4:object=2:br=128:raw -channels 2 -srate 48000
\ -ovc -ovc x264 -x264encopts
bitrate=2500:vbv_maxrate=8000:vbv_bufsize=1835:
\
nocabac:frameref=6:subq4=6:partitions=all:me=umh:level_idc=31:nofast_pskip:
\ nodct_decimate:global_header:threads=auto
\ -sws 9 -vf pullup,softskip,scale=848:480:dsize=848:480,harddup
\ -o yourmovie.mp4
Note that this recipe leaves out b-frames which mencoder cannot
currently encode into an mp4 container without creating an broken file.
If you want to use bframes (which help with compression) then you will
need to do what Media Coder does - encode the audio and video
seperately, and mux them together into an mp4 container with mp4box.
However, I do not recommend that with DVD sources - you will more than
likely lose a/v sync doing it that way. Note also that I've not included
any niceties like cropping since it is impossible to guess at what
you'll need. I've also left de-interlacing out entirely because most
DVDs have progressive content pulled down into an interlaced video
stream. If the input is truely interlaced video then use this filter
chain instead, and omit the -fps and -ofps parameters:
-vf pp=lb,scale=848:480,dsize=848:480,harddup
It is weird that media coder only includes deinterlace as a "post
processing" video filter. Deinterlacing should always be at the top of
the filter chain, before you do anything else with the video, in my opinion.
More information about the MEncoder-users
mailing list