[FFmpeg-user] Trouble compiling mp4 with two pass encoding

Francois Visagie francois.visagie at gmail.com
Wed Sep 5 08:20:56 CEST 2012


> -----Original Message-----
> From: ffmpeg-user-bounces at ffmpeg.org [mailto:ffmpeg-user-
> bounces at ffmpeg.org] On Behalf Of Thyen Hong Guedes Chang
> Sent: 04 September 2012 16:16
> To: ffmpeg-user at ffmpeg.org
> Subject: [FFmpeg-user] Trouble compiling mp4 with two pass encoding
> 
> Hello,
> 
> I'm having trouble compiling a .avi file into a .mp4 file with two pass
encoding.
> I'm following this tutorial http://h264.code-shop.com/trac/wiki/Encoding
and
> receiving the results:
> 
>   infile ="video.avi"
>   tmpfile="video_tmp.mp4"
>   outfile="video.mp4"
>   options="-vcodec libx264 -b 512k -flags +loop+mv4 -cmp 256 \
> 	   -partitions +parti4x4+parti8x8+partp4x4+partp8x8+partb8x8 \
> 	   -me_method hex -subq 7 -trellis 1 -refs 5 -bf 3 \
> 	   -flags2 +bpyramid+wpred+mixed_refs+dct8x8 -coder 1 -me_range
> 16 \
>            -g 250 -keyint_min 25 -sc_threshold 40 -i_qfactor 0.71 -qmin
10\
> 	   -qmax 51 -qdiff 4"
> 
>   ffmpeg -y -i "$infile" -an -pass 1 -threads 2 $options "$tmpfile"
> 
> 
> It returns me:
> 
>   ffmpeg version git-2012-09-04-9de7622 Copyright (c) 2000-2012 the FFmpeg
> developers
>   built on Sep  4 2012 10:24:49 with gcc 4.4.3 (Ubuntu 4.4.3-4ubuntu5.1)
>   configuration: --enable-gpl --enable-libfaac --enable-libmp3lame
--enable-
> libopencore-amrnb --enable-libopencore-amrwb --enable-libtheora --
> enable-libvorbis --enable-libvpx --enable-libx264 --enable-nonfree
--enable-
> version3 --enable-x11grab
>   libavutil      51. 70.100 / 51. 70.100
>   libavcodec     54. 55.100 / 54. 55.100
>   libavformat    54. 25.104 / 54. 25.104
>   libavdevice    54.  2.100 / 54.  2.100
>   libavfilter     3. 15.103 /  3. 15.103
>   libswscale      2.  1.101 /  2.  1.101
>   libswresample   0. 15.100 /  0. 15.100
>   libpostproc    52.  0.100 / 52.  0.100
> Input #0, avi, from 'a.avi':
>   Duration: 00:00:30.00, start: 0.000000, bitrate: 25994 kb/s
>     Stream #0:0: Video: msrle ([1][0][0][0] / 0x0001), pal8, 790x704,
> 10 tbr, 10 tbn, 10 tbc
> Please use -b:a or -b:v, -b is ambiguous [NULL @ 0xa95abe0] [Eval @
> 0xbfd58fa8] Undefined constant or missing '(' in 'bpyramid'
> [NULL @ 0xa95abe0] Unable to parse option value
> "bpyramid+wpred+mixed_refs+dct8x8"
> [NULL @ 0xa95abe0] Error setting option flags2 to value
> +bpyramid+wpred+mixed_refs+dct8x8.
> Output #0, mp4, to 'a_tmp.mp4':
>     Stream #0:0: Video: none, yuv444p, 790x704, q=-1--1, pass 1, 512 kb/s,
90k
> tbn, 10 tbc Stream mapping:
>   Stream #0:0 -> #0:0 (msrle -> libx264) Error while opening encoder for
> output stream #0:0 - maybe incorrect parameters such as bit_rate, rate,
> width or height

Those messages are caused by using old syntax on a newer version ffmpeg. The
best route forward is to optimise your command line using the guide Lou
suggested. The quick and dirty way is to add the :a and :v specifiers as
suggested above, and to substitute current option names for the ones giving
errors. Between the documentation and command line help I could find them
all except one I had to look up in the code, hopefully you don't use that
one ;-).

The only one I'm unsure of is whether wpred is equivalent to weightb,
perhaps someone can confirm.

> 
> 
> Any help?
> 
> --
> Thyen Hong Guedes Chang
> Bacharelando em Ciências da Computação
> Universidade Federal de Goiás
> _______________________________________________
> ffmpeg-user mailing list
> ffmpeg-user at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-user



More information about the ffmpeg-user mailing list