[FFmpeg-user] forcing x264 baseline

Lou lou at lrcd.com
Mon Nov 7 22:33:58 CET 2011


On Mon, 7 Nov 2011 22:23:51 +0100
Robert Krüger <krueger at lesspain.de> wrote:

> 
> On Nov 7, 2011, at 10:51 , Paolo wrote:
> 
> > dear all,
> > 
> > for a lot of time I used this command line to convert my video to a
> > format compatible with my android device:
> > 
> > ffmpeg -i input.mp4 -strict experimental -s 320x240 -b 384k -vcodec
> > libx264 -flags +loop+mv4 -cmp 256 -partitions
> > +parti4x4+parti8x8+partp4x4+partp8x8+partb8x8 -subq 7 -trellis 1
> > -refs 5 -bf 0 -flags2 +mixed_refs -coder 0 -me_range 16 -g 250
> > -keyint_min 25 -sc_threshold 40 -i_qfactor 0.71 -qmin 10 -qmax 51
> > -qdiff 4 -acodec aac -ac 2 -ab 128k -ar 44100 output.mp4
> > 
> > using mediainfo I see that
> > 
> > Format profile                           : Baseline at L1.3
> > 
> > and the result file will play on android without problems
> > 
> > Now, I suppose after an ffmpeg update, the same command line
> > produce a file with
> > 
> > Format profile                           : Main at L1.3
> > 
> > by this way the file mp4 will not play on my android device.
> > 
> > I see in the man ffmpeg that "-profile" is deprecated, so, what will
> 
> http://ffmpeg.org/ffmpeg.html#Options
> 
> this doesn't look like it's deprecated. Have you tried -profile
> baseline?

-vprofile is required if audio is also being encoded otherwise ffmpeg
will output errors.

> And btw. it is recommended to use presets (i.e. -preset)
> instead of specifying all the encoder options. try x264 --fullhelp
> for docs.

I second this suggestion. Using a preset, a close approximation of your
command is:

ffmpeg -i input.mp4 -vcodec libx264 -preset medium -vprofile baseline \
-s 320x240 -b 384k -acodec aac -ac 2 -ab 128k -ar 44100 output.mp4

Using the presets ensures that your command will more likely continue
to work through any updates and API changes.

> HTH,
> 
> Robert


More information about the ffmpeg-user mailing list