Php – ffmpeg error while converting to mp4 Error while opening encoder for output stream #0.0

ffmpegPHP

I am trying to convert various file types to mp4 to be displayed using ffmpeg, but i keep getting the error:

Error while opening encoder for output stream #0.0 – maybe incorrect parameters such as bit_rate, rate, width or height

Another piece that looks important is:

[libx264 @ 0x93caef0] broken ffmpeg default settings detected

[libx264 @ 0x93caef0] use an encoding preset (e.g. -vpre medium)

[libx264 @ 0x93caef0] preset usage: -vpre -vpre

[libx264 @ 0x93caef0] speed presets are listed in x264 –help

[libx264 @ 0x93caef0] profile is optional; x264 defaults to high

The latest code I am running is:

ffmpeg -i source -s 320×240 -r 30000/1001 -b 200k -bt 240k -vcodec libx264 -coder 0 -bf 0 -refs 1 -flags2 -wpred-dct8x8 -level 30 -maxrate 10M -bufsize 10M -acodec libfaac -ac 2 -ar 48000 -ab 192k destination

I have seen a few other people with this issue, but their fixes didn't work for some reason.

In case it matters: ultimately this will be used in php, though I am trying to get it working first via putty

EDIT:: Here is the full thing as requested(using a wmv, have tested wmv and flv):

     ~ >> ffmpeg -i path.wmv -s 320x240 -r 30000/1001 -b 200k -r 29.97 -bt 240k -vcodec libx264 -coder 0 -bf 0 -refs 1 -flags2 -wpred-dct8x8 -level 30 -maxrate 10M -bufsize 10M -acodec libfaac -ac 2 -ar 48000 -ab 192k path.mp4
FFmpeg version SVN-r26076, Copyright (c) 2000-2011 the FFmpeg developers
  built on Aug 28 2012 17:55:47 with gcc 4.1.2 20080704 (Red Hat 4.1.2-52)
  configuration: --enable-version3 --enable-gpl --enable-nonfree --enable-shared --enable-postproc --enable-avfilter --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libvpx --enable-libfaac --enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libxvid --disable-ffplay --disable-indevs --disable-outdevs --disable-demuxer=v4l --disable-demuxer=v4l2 --disable-mmx
  libavutil     50.36. 0 / 50.36. 0
  libavcore      0.16. 1 /  0.16. 1
  libavcodec    52.108. 0 / 52.108. 0
  libavformat   52.93. 0 / 52.93. 0
  libavdevice   52. 2. 3 / 52. 2. 3
  libavfilter    1.74. 0 /  1.74. 0
  libswscale     0.12. 0 /  0.12. 0
  libpostproc   51. 2. 0 / 51. 2. 0

Seems stream 1 codec frame rate differs from container frame rate: 1000.00 (1000/1) -> 29.97 (30000/1001)
Input #0, asf, from 'path.wmv':
  Metadata:
    SfOriginalFPS   : 299
    WMFSDKVersion   : 11.0.6001.7000
    WMFSDKNeeded    : 0.0.0.0000
    IsVBR           : 0
    title           : Wildlife in HD
    artist          :
    copyright       : © 2008 Microsoft Corporation
    comment         : Footage: Small World Productions, Inc; Tourism New Zealand | Producer: Gary F. Spradling | Music: Steve Ball
  Duration: 00:00:30.09, start: 8.000000, bitrate: 6977 kb/s
    Stream #0.0(eng): Audio: wmav2, 44100 Hz, 2 channels, s16, 192 kb/s
    Stream #0.1(eng): Video: vc1, yuv420p, 1280x720, 5942 kb/s, 29.97 tbr, 1k tbn, 1k tbc
File 'path.mp4' already exists. Overwrite ? [y/N] y
[buffer @ 0x9ce9eb0] w:1280 h:720 pixfmt:yuv420p
[scale @ 0x9ce8f70] w:1280 h:720 fmt:yuv420p -> w:320 h:240 fmt:yuv420p flags:0x4
[libx264 @ 0x9ce9ef0] broken ffmpeg default settings detected
[libx264 @ 0x9ce9ef0] use an encoding preset (e.g. -vpre medium)
[libx264 @ 0x9ce9ef0] preset usage: -vpre <speed> -vpre <profile>
[libx264 @ 0x9ce9ef0] speed presets are listed in x264 --help
[libx264 @ 0x9ce9ef0] profile is optional; x264 defaults to high
Output #0, mp4, to 'path.mp4':
    Stream #0.0(eng): Video: libx264, yuv420p, 320x240, q=2-31, 200 kb/s, 90k tbn, 29.97 tbc
    Stream #0.1(eng): Audio: libfaac, 48000 Hz, 2 channels, s16, 192 kb/s
Stream mapping:
  Stream #0.1 -> #0.0
  Stream #0.0 -> #0.1
Error while opening encoder for output stream #0.0 - maybe incorrect parameters such as bit_rate, rate, width or height

Thanks for any help

Best Answer

Declaring each libx264 option is depreciated. Use the encoding presets instead as the console output indicates. See the FFmpeg and x264 Encoding Guide and FFmpeg: The ultimate Video and Audio Manipulation Tool for more information and some up to date examples. Also note that -bt has been "disconnected" from libx264 so it does nothing for you.

Secondly, your ffmpeg is old. FFmpeg uses Git instead of SVN and there have been thousands of additional commits (around 19202 as of now) and bug fixes since r26076. See Compile FFmpeg on CentOS for compilation instructions or refer to the FFmpeg download page for links to some static builds.