macos/unix下x264开发

macos/unix下x264开发

x264新手入门

下载x264源码

videolan提供下载地址,git安装(没有git的自己装一下),终端进入你想保存源码的目录,输入:

git clone git://git.videolan.org/x264.git

稍等几分钟,下载完x264文件夹

安装yasm

yasm是一个汇编库,包含很多底层汇编代码,包括SIMD指令,用于加速,如果没有安装将会报错,用macos下用mac port安装:

$ make configure
Makefile:3: config.mak: No such file or directory
cat: config.h: No such file or directory
./configure
Found no assembler
Minimum version is yasm-1.2.0
If you really want to compile without asm, configure with --disable-asm.
make: *** [config.mak] Error 1

编译

进入x264目录,配置编译

make configure

成功后回生成可执行文件x264,验证,如果出现下述反馈说明编译成功啦!

$ ./x264 --help
x264 core:148 r2579 73ae2d1
Syntax: x264 [options] -o outfile infile

Infile can be raw (in which case resolution is required),
  or YUV4MPEG (*.y4m),
  or Avisynth if compiled with support (yes).
  or libav* formats if compiled with lavf support (no) or ffms support (no).
Outfile type is selected by filename:
 .264 -> Raw bytestream
 .mkv -> Matroska
 .flv -> Flash Video
 .mp4 -> MP4 if compiled with GPAC or L-SMASH support (no)
Output bit depth: 8 (configured at compile time)

Options:

  -h, --help List basic options
      --longhelp List more options
      --fullhelp List all options

Example usage:

      Constant quality mode:
            x264 --crf 24 -o <output> <input>

      Two-pass with a bitrate of 1000kbps:
            x264 --pass 1 --bitrate 1000 -o <output> <input>
            x264 --pass 2 --bitrate 1000 -o <output> <input>

      Lossless:
            x264 --qp 0 -o <output> <input>

      Maximum PSNR at the cost of speed and visual quality:
            x264 --preset placebo --tune psnr -o <output> <input>

      Constant bitrate at 1000kbps with a 2 second-buffer:
            x264 --vbv-bufsize 2000 --bitrate 1000 -o <output> <input>

Presets:

      --profile <string> Force the limits of an H.264 profile
                                  Overrides all settings.
                                  - baseline,main,high,high10,high422,high444
      --preset <string> Use a preset to select encoding settings [medium]
                                  Overridden by user settings.
                                  - ultrafast,superfast,veryfast,faster,fast
                                  - medium,slow,slower,veryslow,placebo
      --tune <string> Tune the settings for a particular type of source
                              or situation
                                  Overridden by user settings.
                                  Multiple tunings are separated by commas.
                                  Only one psy tuning can be used at a time.
                                  - psy tunings: film,animation,grain,
                                                 stillimage,psnr,ssim
                                  - other tunings: fastdecode,zerolatency

Frame-type options:

  -I, --keyint <integer or "infinite"> Maximum GOP size [250]
      --tff Enable interlaced mode (top field first)
      --bff Enable interlaced mode (bottom field first)
      --pulldown <string> Use soft pulldown to change frame rate
                                  - none, 22, 32, 64, double, triple, euro (requires cfr input)

Ratecontrol:

  -B, --bitrate <integer> Set bitrate (kbit/s)
      --crf <float> Quality-based VBR (0-51) [23.0]
      --vbv-maxrate <integer> Max local bitrate (kbit/s) [0]
      --vbv-bufsize <integer> Set size of the VBV buffer (kbit) [0]
  -p, --pass <integer> Enable multipass ratecontrol
                                  - 1: First pass, creates stats file
                                  - 2: Last pass, does not overwrite stats file

Input/Output:

  -o, --output <string> Specify output file
      --sar width:height Specify Sample Aspect Ratio
      --fps <float|rational> Specify framerate
      --seek <integer> First frame to encode
      --frames <integer> Maximum number of frames to encode
      --level <string> Specify level (as defined by Annex A)
      --quiet Quiet Mode

Filtering:

      --vf, --video-filter <filter0>/<filter1>/... Apply video filtering to the input file

      Filter options may be specified in <filter>:<option>=<value> format.

      Available filters:
      crop:left,top,right,bottom
      select_every:step,offset1[,...]

你可能感兴趣的:(源码,安装,x264,视频编解码)