Media Handler Pro: x264 encoding using ffmpeg presets .

Media Handler Pro 5.0 or later support using preset files for encoding videos with x264 codec. You can use lots of predefined preset files for mp4 / x264 encoding to achieve best results.

Preset File:

A preset file contains a sequence of option=value pairs, one for each line, specifying a sequence of options which would be awkward to specify on the command line.

Check the `ffpresets' directory in the FFmpeg source tree or download preset files directly from here.

Preset files are categorize with

  • Default quality preset files.
  • Normal quality preset files.
  • Hiqh quality preset files.
  • Maximum quality preset files.

Also make sure that you must use latest ffmpeg build that support ffpreset or preset files.

Some of preset files supported byffmpeg build rev 22598 are as follows

  • libx264-baseline.ffpreset
  • libx264-default.ffpreset
  • libx264-fast.ffpreset
  • libx264-fast_firstpass.ffpreset
  • libx264-faster.ffpreset
  • libx264-faster_firstpass.ffpreset
  • libx264-fastfirstpass.ffpreset
  • libx264-hq.ffpreset
  • libx264-ipod320.ffpreset
  • libx264-ipod640.ffpreset
  • libx264-lossless_fast.ffpreset
  • libx264-lossless_max.ffpreset
  • libx264-lossless_medium.ffpreset
  • libx264-lossless_slow.ffpreset
  • libx264-lossless_slower.ffpreset
  • libx264-lossless_ultrafast.ffpreset
  • libx264-main.ffpreset
  • libx264-max.ffpreset
  • libx264-medium.ffpreset
  • libx264-medium_firstpass.ffpreset
  • libx264-normal.ffpreset
  • libx264-placebo.ffpreset
  • libx264-placebo_firstpass.ffpreset
  • libx264-slow.ffpreset
  • libx264-slow_firstpass.ffpreset
  • libx264-slower.ffpreset
  • libx264-slower_firstpass.ffpreset
  • libx264-slowfirstpass.ffpreset
  • libx264-ultrafast.ffpreset
  • libx264-ultrafast_firstpass.ffpreset
  • libx264-veryfast.ffpreset
  • libx264-veryfast_firstpass.ffpreset
  • libx264-veryslow.ffpreset
  • libx264-veryslow_firstpass.ffpreset

Sample Code for using ffpreset file while encoding mp4 video with x264 codec. (C# only)

Sample c# code that uses Media Handler Pro component for encoding mp4 video with x264 codec using preset file mentioned above.

Parameter Settings

MediaHandler _mhandler = new MediaHandler();

string RootPath = Server.MapPath(Request.ApplicationPath);
_mhandler.FFMPEGPath = HttpContext.Current.Server.MapPath("~\\ffmpeg\\ffmpeg.exe");
_mhandler.InputPath = RootPath + "\\contents\\source";
_mhandler.OutputPath = RootPath + "\\contents\\output";

// set ffpreset file mentioned above using media handler pro property PresetPath.

_mhandler.PresetPath = RootPath + "\\ffmpeg\\ffpresets\\libx264-veryfast_firstpass.ffpreset";

// set mp4 related required properties.

_mhandler.FileName = "Sample.VOB";
_mhandler.OutputFileName = "Sample.mp4";
// Set width and height of final output.
_mhandler.Width = 320;
_mhandler.Height = 240;

// Call method to process parameters

VideoInfo info = _mhandler.Encode_MP4();
if (info.ErrorCode > 0)
{
Response.Write("Error occured: Error Code: " + info.ErrorCode + "<br />Error Message: " + info.ErrorMessage);
return;
}