FFmpeg再学习 -- Linux 安装说明

来源:互联网 发布:韩素音翻译大赛 知乎 编辑:程序博客网 时间:2024/05/19 14:56

参看:ffmpeg 入门

参看:ffmpeg Documentation

ffmpeg 之前项目有用到过,最近在做使用 ffmpeg 将 jpeg 转成 mp4,正好借此机会将安装过程说明一下。

参看:关于ffmpeg的安装详细步骤和说明

Windows下安装方法,可以参看上面的文章。

下载:Download FFmpeg for Windows     该页面里也有相关的  External Libraries 链接

解压后即可使用:
ffmpeg -i C:\ffmpeg\test.avi -b:v 640k c:\ffmpeg\output.ts


现在我讲讲在 Ubuntu 下的安装。

首先需要安装几个必要的解码器:

参看:ffmpeg再学习 -- 将 jpeg 转成 mp4

更多可部分:

参看:Linux下ffmpeg的完整安装

参看:ubuntu上安装ffmpeg


接下来开始讲ffmpeg的安装

1、首先下载

下载:ffmpeg 官网下载   下载的版本为 ffmpeg-3.3.1.tar

2、解压

将软件拷贝到指定位置,解压。
tar -xvf ffmpeg-3.3.1.tar

3、配置

可以使用 ./configure --help 看看哪些功能是我们需要打开关闭的
# ./configure --helpUsage: configure [options]Options: [defaults in brackets after descriptions]Help options:  --help                   print this message  --quiet                  Suppress showing informative output  --list-decoders          show all available decoders  --list-encoders          show all available encoders  --list-hwaccels          show all available hardware accelerators  --list-demuxers          show all available demuxers  --list-muxers            show all available muxers  --list-parsers           show all available parsers  --list-protocols         show all available protocols  --list-bsfs              show all available bitstream filters  --list-indevs            show all available input devices  --list-outdevs           show all available output devices  --list-filters           show all available filtersStandard options:  --logfile=FILE           log tests and output to FILE [config.log]  --disable-logging        do not log configure debug information  --fatal-warnings         fail if any configure warning is generated  --prefix=PREFIX          install in PREFIX [/usr/local]  --bindir=DIR             install binaries in DIR [PREFIX/bin]  --datadir=DIR            install data files in DIR [PREFIX/share/ffmpeg]  --docdir=DIR             install documentation in DIR [PREFIX/share/doc/ffmpeg]  --libdir=DIR             install libs in DIR [PREFIX/lib]  --shlibdir=DIR           install shared libs in DIR [LIBDIR]  --incdir=DIR             install includes in DIR [PREFIX/include]  --mandir=DIR             install man page in DIR [PREFIX/share/man]  --pkgconfigdir=DIR       install pkg-config files in DIR [LIBDIR/pkgconfig]  --enable-rpath           use rpath to allow installing libraries in paths                           not part of the dynamic linker search path                           use rpath when linking programs (USE WITH CARE)  --install-name-dir=DIR   Darwin directory name for installed targetsLicensing options:  --enable-gpl             allow use of GPL code, the resulting libs                           and binaries will be under GPL [no]  --enable-version3        upgrade (L)GPL to version 3 [no]  --enable-nonfree         allow use of nonfree code, the resulting libs                           and binaries will be unredistributable [no]Configuration options:  --disable-static         do not build static libraries [no]  --enable-shared          build shared libraries [no]  --enable-small           optimize for size instead of speed  --disable-runtime-cpudetect disable detecting CPU capabilities at runtime (smaller binary)  --enable-gray            enable full grayscale support (slower color)  --disable-swscale-alpha  disable alpha channel support in swscale  --disable-all            disable building components, libraries and programs  --enable-raise-major     increase major version numbers in sonames [no]Program options:  --disable-programs       do not build command line programs  --disable-ffmpeg         disable ffmpeg build  --disable-ffplay         disable ffplay build  --disable-ffprobe        disable ffprobe build  --disable-ffserver       disable ffserver buildDocumentation options:  --disable-doc            do not build documentation  --disable-htmlpages      do not build HTML documentation pages  --disable-manpages       do not build man documentation pages  --disable-podpages       do not build POD documentation pages  --disable-txtpages       do not build text documentation pagesComponent options:  --disable-avdevice       disable libavdevice build  --disable-avcodec        disable libavcodec build  --disable-avformat       disable libavformat build  --disable-swresample     disable libswresample build  --disable-swscale        disable libswscale build  --disable-postproc       disable libpostproc build  --disable-avfilter       disable libavfilter build  --enable-avresample      enable libavresample build [no]  --disable-pthreads       disable pthreads [autodetect]  --disable-w32threads     disable Win32 threads [autodetect]  --disable-os2threads     disable OS/2 threads [autodetect]  --disable-network        disable network support [no]  --disable-dct            disable DCT code  --disable-dwt            disable DWT code  --disable-error-resilience disable error resilience code  --disable-lsp            disable LSP code  --disable-lzo            disable LZO decoder code  --disable-mdct           disable MDCT code  --disable-rdft           disable RDFT code  --disable-fft            disable FFT code  --disable-faan           disable floating point AAN (I)DCT code  --disable-pixelutils     disable pixel utils in libavutilIndividual component options:  --disable-everything     disable all components listed below  --disable-encoder=NAME   disable encoder NAME  --enable-encoder=NAME    enable encoder NAME  --disable-encoders       disable all encoders  --disable-decoder=NAME   disable decoder NAME  --enable-decoder=NAME    enable decoder NAME  --disable-decoders       disable all decoders  --disable-hwaccel=NAME   disable hwaccel NAME  --enable-hwaccel=NAME    enable hwaccel NAME  --disable-hwaccels       disable all hwaccels  --disable-muxer=NAME     disable muxer NAME  --enable-muxer=NAME      enable muxer NAME  --disable-muxers         disable all muxers  --disable-demuxer=NAME   disable demuxer NAME  --enable-demuxer=NAME    enable demuxer NAME  --disable-demuxers       disable all demuxers  --enable-parser=NAME     enable parser NAME  --disable-parser=NAME    disable parser NAME  --disable-parsers        disable all parsers  --enable-bsf=NAME        enable bitstream filter NAME  --disable-bsf=NAME       disable bitstream filter NAME  --disable-bsfs           disable all bitstream filters  --enable-protocol=NAME   enable protocol NAME  --disable-protocol=NAME  disable protocol NAME  --disable-protocols      disable all protocols  --enable-indev=NAME      enable input device NAME  --disable-indev=NAME     disable input device NAME  --disable-indevs         disable input devices  --enable-outdev=NAME     enable output device NAME  --disable-outdev=NAME    disable output device NAME  --disable-outdevs        disable output devices  --disable-devices        disable all devices  --enable-filter=NAME     enable filter NAME  --disable-filter=NAME    disable filter NAME  --disable-filters        disable all filtersExternal library support:  Using any of the following switches will allow FFmpeg to link to the  corresponding external library. All the components depending on that library  will become enabled, if all their other dependencies are met and they are not  explicitly disabled. E.g. --enable-libwavpack will enable linking to  libwavpack and allow the libwavpack encoder to be built, unless it is  specifically disabled with --disable-encoder=libwavpack.  Note that only the system libraries are auto-detected. All the other external  libraries must be explicitly enabled.  Also note that the following help text describes the purpose of the libraries  themselves, not all their features will necessarily be usable by FFmpeg.  --enable-avisynth        enable reading of AviSynth script files [no]  --disable-bzlib          disable bzlib [autodetect]  --enable-chromaprint     enable audio fingerprinting with chromaprint [no]  --enable-frei0r          enable frei0r video filtering [no]  --enable-gcrypt          enable gcrypt, needed for rtmp(t)e support                           if openssl, librtmp or gmp is not used [no]  --enable-gmp             enable gmp, needed for rtmp(t)e support                           if openssl or librtmp is not used [no]  --enable-gnutls          enable gnutls, needed for https support                           if openssl is not used [no]  --disable-iconv          disable iconv [autodetect]  --enable-jni             enable JNI support [no]  --enable-ladspa          enable LADSPA audio filtering [no]  --enable-libass          enable libass subtitles rendering,                           needed for subtitles and ass filter [no]  --enable-libbluray       enable BluRay reading using libbluray [no]  --enable-libbs2b         enable bs2b DSP library [no]  --enable-libcaca         enable textual display using libcaca [no]  --enable-libcelt         enable CELT decoding via libcelt [no]  --enable-libcdio         enable audio CD grabbing with libcdio [no]  --enable-libdc1394       enable IIDC-1394 grabbing using libdc1394                           and libraw1394 [no]  --enable-libfdk-aac      enable AAC de/encoding via libfdk-aac [no]  --enable-libflite        enable flite (voice synthesis) support via libflite [no]  --enable-libfontconfig   enable libfontconfig, useful for drawtext filter [no]  --enable-libfreetype     enable libfreetype, needed for drawtext filter [no]  --enable-libfribidi      enable libfribidi, improves drawtext filter [no]  --enable-libgme          enable Game Music Emu via libgme [no]  --enable-libgsm          enable GSM de/encoding via libgsm [no]  --enable-libiec61883     enable iec61883 via libiec61883 [no]  --enable-libilbc         enable iLBC de/encoding via libilbc [no]  --enable-libkvazaar      enable HEVC encoding via libkvazaar [no]  --enable-libmodplug      enable ModPlug via libmodplug [no]  --enable-libmp3lame      enable MP3 encoding via libmp3lame [no]  --enable-libnut          enable NUT (de)muxing via libnut,                           native (de)muxer exists [no]  --enable-libopencore-amrnb enable AMR-NB de/encoding via libopencore-amrnb [no]  --enable-libopencore-amrwb enable AMR-WB decoding via libopencore-amrwb [no]  --enable-libopencv       enable video filtering via libopencv [no]  --enable-libopenh264     enable H.264 encoding via OpenH264 [no]  --enable-libopenjpeg     enable JPEG 2000 de/encoding via OpenJPEG [no]  --enable-libopenmpt      enable decoding tracked files via libopenmpt [no]  --enable-libopus         enable Opus de/encoding via libopus [no]  --enable-libpulse        enable Pulseaudio input via libpulse [no]  --enable-librubberband   enable rubberband needed for rubberband filter [no]  --enable-librtmp         enable RTMP[E] support via librtmp [no]  --enable-libschroedinger enable Dirac de/encoding via libschroedinger [no]  --enable-libshine        enable fixed-point MP3 encoding via libshine [no]  --enable-libsmbclient    enable Samba protocol via libsmbclient [no]  --enable-libsnappy       enable Snappy compression, needed for hap encoding [no]  --enable-libsoxr         enable Include libsoxr resampling [no]  --enable-libspeex        enable Speex de/encoding via libspeex [no]  --enable-libssh          enable SFTP protocol via libssh [no]  --enable-libtesseract    enable Tesseract, needed for ocr filter [no]  --enable-libtheora       enable Theora encoding via libtheora [no]  --enable-libtwolame      enable MP2 encoding via libtwolame [no]  --enable-libv4l2         enable libv4l2/v4l-utils [no]  --enable-libvidstab      enable video stabilization using vid.stab [no]  --enable-libvo-amrwbenc  enable AMR-WB encoding via libvo-amrwbenc [no]  --enable-libvorbis       enable Vorbis en/decoding via libvorbis,                           native implementation exists [no]  --enable-libvpx          enable VP8 and VP9 de/encoding via libvpx [no]  --enable-libwavpack      enable wavpack encoding via libwavpack [no]  --enable-libwebp         enable WebP encoding via libwebp [no]  --enable-libx264         enable H.264 encoding via x264 [no]  --enable-libx265         enable HEVC encoding via x265 [no]  --enable-libxavs         enable AVS encoding via xavs [no]  --enable-libxcb          enable X11 grabbing using XCB [autodetect]  --enable-libxcb-shm      enable X11 grabbing shm communication [autodetect]  --enable-libxcb-xfixes   enable X11 grabbing mouse rendering [autodetect]  --enable-libxcb-shape    enable X11 grabbing shape rendering [autodetect]  --enable-libxvid         enable Xvid encoding via xvidcore,                           native MPEG-4/Xvid encoder exists [no]  --enable-libzimg         enable z.lib, needed for zscale filter [no]  --enable-libzmq          enable message passing via libzmq [no]  --enable-libzvbi         enable teletext support via libzvbi [no]  --disable-lzma           disable lzma [autodetect]  --enable-decklink        enable Blackmagic DeckLink I/O support [no]  --enable-mediacodec      enable Android MediaCodec support [no]  --enable-netcdf          enable NetCDF, needed for sofalizer filter [no]  --enable-openal          enable OpenAL 1.1 capture support [no]  --enable-opencl          enable OpenCL code  --enable-opengl          enable OpenGL rendering [no]  --enable-openssl         enable openssl, needed for https support                           if gnutls is not used [no]  --disable-schannel       disable SChannel SSP, needed for TLS support on                           Windows if openssl and gnutls are not used [autodetect]  --disable-sdl2           disable sdl2 [autodetect]  --disable-securetransport disable Secure Transport, needed for TLS support                           on OSX if openssl and gnutls are not used [autodetect]  --disable-xlib           disable xlib [autodetect]  --disable-zlib           disable zlib [autodetect]  The following libraries provide various hardware acceleration features:  --disable-audiotoolbox   disable Apple AudioToolbox code [autodetect]  --disable-cuda           disable dynamically linked Nvidia CUDA code [autodetect]  --disable-cuvid          disable Nvidia CUVID support [autodetect]  --disable-d3d11va        disable Microsoft Direct3D 11 video acceleration code [autodetect]  --disable-dxva2          disable Microsoft DirectX 9 video acceleration code [autodetect]  --enable-libmfx          enable Intel MediaSDK (AKA Quick Sync Video) code via libmfx [no]  --enable-libnpp          enable Nvidia Performance Primitives-based code [no]  --enable-mmal            enable Broadcom Multi-Media Abstraction Layer (Raspberry Pi) via MMAL [no]  --disable-nvenc          disable Nvidia video encoding code [autodetect]  --enable-omx             enable OpenMAX IL code [no]  --enable-omx-rpi         enable OpenMAX IL code for Raspberry Pi [no]  --disable-vaapi          disable Video Acceleration API (mainly Unix/Intel) code [autodetect]  --disable-vda            disable Apple Video Decode Acceleration code [autodetect]  --disable-vdpau          disable Nvidia Video Decode and Presentation API for Unix code [autodetect]  --disable-videotoolbox   disable VideoToolbox code [autodetect]Toolchain options:  --arch=ARCH              select architecture []  --cpu=CPU                select the minimum required CPU (affects                           instruction selection, may crash on older CPUs)  --cross-prefix=PREFIX    use PREFIX for compilation tools []  --progs-suffix=SUFFIX    program name suffix []  --enable-cross-compile   assume a cross-compiler is used  --sysroot=PATH           root of cross-build tree  --sysinclude=PATH        location of cross-build system headers  --target-os=OS           compiler targets OS []  --target-exec=CMD        command to run executables on target  --target-path=DIR        path to view of build directory on target  --target-samples=DIR     path to samples directory on target  --tempprefix=PATH        force fixed dir/prefix instead of mktemp for checks  --toolchain=NAME         set tool defaults according to NAME  --nm=NM                  use nm tool NM [nm -g]  --ar=AR                  use archive tool AR [ar]  --as=AS                  use assembler AS []  --ln_s=LN_S              use symbolic link tool LN_S [ln -s -f]  --strip=STRIP            use strip tool STRIP [strip]  --windres=WINDRES        use windows resource compiler WINDRES [windres]  --yasmexe=EXE            use yasm-compatible assembler EXE [yasm]  --cc=CC                  use C compiler CC [gcc]  --cxx=CXX                use C compiler CXX [g++]  --objcc=OCC              use ObjC compiler OCC [gcc]  --dep-cc=DEPCC           use dependency generator DEPCC [gcc]  --ld=LD                  use linker LD []  --pkg-config=PKGCONFIG   use pkg-config tool PKGCONFIG [pkg-config]  --pkg-config-flags=FLAGS pass additional flags to pkgconf []  --ranlib=RANLIB          use ranlib RANLIB [ranlib]  --doxygen=DOXYGEN        use DOXYGEN to generate API doc [doxygen]  --host-cc=HOSTCC         use host C compiler HOSTCC  --host-cflags=HCFLAGS    use HCFLAGS when compiling for host  --host-cppflags=HCPPFLAGS use HCPPFLAGS when compiling for host  --host-ld=HOSTLD         use host linker HOSTLD  --host-ldflags=HLDFLAGS  use HLDFLAGS when linking for host  --host-libs=HLIBS        use libs HLIBS when linking for host  --host-os=OS             compiler host OS []  --extra-cflags=ECFLAGS   add ECFLAGS to CFLAGS []  --extra-cxxflags=ECFLAGS add ECFLAGS to CXXFLAGS []  --extra-objcflags=FLAGS  add FLAGS to OBJCFLAGS []  --extra-ldflags=ELDFLAGS add ELDFLAGS to LDFLAGS []  --extra-ldexeflags=ELDFLAGS add ELDFLAGS to LDEXEFLAGS []  --extra-ldlibflags=ELDFLAGS add ELDFLAGS to LDLIBFLAGS []  --extra-libs=ELIBS       add ELIBS []  --extra-version=STRING   version string suffix []  --optflags=OPTFLAGS      override optimization-related compiler flags  --build-suffix=SUFFIX    library name suffix []  --enable-pic             build position-independent code  --enable-thumb           compile for Thumb instruction set  --enable-lto             use link-time optimization  --env="ENV=override"     override the environment variablesAdvanced options (experts only):  --malloc-prefix=PREFIX   prefix malloc and related names with PREFIX  --custom-allocator=NAME  use a supported custom allocator  --disable-symver         disable symbol versioning  --enable-hardcoded-tables use hardcoded tables instead of runtime generation  --disable-safe-bitstream-reader                           disable buffer boundary checking in bitreaders                           (faster, but may crash)  --sws-max-filter-size=N  the max filter size swscale uses [256]Optimization options (experts only):  --disable-asm            disable all assembly optimizations  --disable-altivec        disable AltiVec optimizations  --disable-vsx            disable VSX optimizations  --disable-power8         disable POWER8 optimizations  --disable-amd3dnow       disable 3DNow! optimizations  --disable-amd3dnowext    disable 3DNow! extended optimizations  --disable-mmx            disable MMX optimizations  --disable-mmxext         disable MMXEXT optimizations  --disable-sse            disable SSE optimizations  --disable-sse2           disable SSE2 optimizations  --disable-sse3           disable SSE3 optimizations  --disable-ssse3          disable SSSE3 optimizations  --disable-sse4           disable SSE4 optimizations  --disable-sse42          disable SSE4.2 optimizations  --disable-avx            disable AVX optimizations  --disable-xop            disable XOP optimizations  --disable-fma3           disable FMA3 optimizations  --disable-fma4           disable FMA4 optimizations  --disable-avx2           disable AVX2 optimizations  --disable-aesni          disable AESNI optimizations  --disable-armv5te        disable armv5te optimizations  --disable-armv6          disable armv6 optimizations  --disable-armv6t2        disable armv6t2 optimizations  --disable-vfp            disable VFP optimizations  --disable-neon           disable NEON optimizations  --disable-inline-asm     disable use of inline assembly  --disable-yasm           disable use of nasm/yasm assembly  --disable-mipsdsp        disable MIPS DSP ASE R1 optimizations  --disable-mipsdspr2      disable MIPS DSP ASE R2 optimizations  --disable-msa            disable MSA optimizations  --disable-mipsfpu        disable floating point MIPS optimizations  --disable-mmi            disable Loongson SIMD optimizations  --disable-fast-unaligned consider unaligned accesses slowDeveloper options (useful when working on FFmpeg itself):  --disable-debug          disable debugging symbols  --enable-debug=LEVEL     set the debug level []  --disable-optimizations  disable compiler optimizations  --enable-extra-warnings  enable more compiler warnings  --disable-stripping      disable stripping of executables and shared libraries  --assert-level=level     0(default), 1 or 2, amount of assertion testing,                           2 causes a slowdown at runtime.  --enable-memory-poisoning fill heap uninitialized allocated space with arbitrary data  --valgrind=VALGRIND      run "make fate" tests through valgrind to detect memory                           leaks and errors, using the specified valgrind binary.                           Cannot be combined with --target-exec  --enable-ftrapv          Trap arithmetic overflows  --samples=PATH           location of test samples for FATE, if not set use                           $FATE_SAMPLES at make invocation time.  --enable-neon-clobber-test check NEON registers for clobbering (should be                           used only for debugging purposes)  --enable-xmm-clobber-test check XMM registers for clobbering (Win64-only;                           should be used only for debugging purposes)  --enable-random          randomly enable/disable components  --disable-random  --enable-random=LIST     randomly enable/disable specific components or  --disable-random=LIST    component groups. LIST is a comma-separated list                           of NAME[:PROB] entries where NAME is a component                           (group) and PROB the probability associated with                           NAME (default 0.5).  --random-seed=VALUE      seed value for --enable/disable-random  --disable-valgrind-backtrace do not print a backtrace under Valgrind                           (only applies to --disable-optimizations builds)NOTE: Object files are built at the place where configure is launched.
基本选项介绍
以下为配置 ffmpeg 的基本选项,其含义如下:
--cache-file=FILE
configure 会在你的系统上测试存在的特性(或者 bug!)。 为了加速随后进行的配置,测试的结果会存储在一个 cache file 里。 当 configure 到每个子树里都有 configure 脚本的复杂的源码树时, 一个很好的 cache file 的存在会有很大帮助。
--help
输出帮助信息。 即使是有经验的用户也偶尔需要使用使用--help 选项, 因为一个复杂的项目会包含附加的选项。 例如, GCC 包里的 configure 脚本就包含了允许你控制是否生成和在 GCC 中使用 GNU 汇编器的选项。
--no-create
configure 中的一个主要函数会制作输出文件。 此选项阻止 configure 生成这个文件。你可以认为这是一种演习(dry run), 尽管缓存(cache)仍然被改写了。
--quiet
--silent
当 configure 进行他的测试时, 会输出简要的信息来告诉用户正在作什么。 这样做是因为 configure 可能会比较慢, 没有这种输出的话用户将会被扔在一旁疑惑正在发生什么。 使用这两个选项中的任何一个都会把你扔到一旁。 (译注: 这两句话比较有意思, 原文是这样的: If there was no such output, the user would be left wondering what is happening. By using this option, you too can be left wondering!)
--version
打印用来产生'configure'脚本的 Autoconf 的版本号。
--prefix=PEWFIX
--prefix 是最常用的选项。 制作出的 Makefile 会查看随此选项传递的参数, 当一个包在安装时可以彻底的重新安置他的结构独立部分。 举一个例子, 当安装一个包, 例如说 Emacs, 下面的命令将会使 Emacs Lisp file 被安装到"/opt/gnu/share":
$ ./configure --prefix=/opt/gnu
--exec-prefix=EPREFIX
与--prefix 选项类似,但是他是用来设置结构倚赖的文件的安装位置。编译好的 emacs二进制文件就是这样一个问件。 如果没有设置这个选项的话, 默认使用的选项值将被设为和--prefix 选项值一样。
--bindir=DIR
指定二进制文件的安装位置。 这里的二进制文件定义为可以被用户直接执行的程序。
--sbindir=DIR
指定超级二进制文件的安装位置。 这是一些通常只能由超级用户执行的程序。
--libexecdir=DIR
指定可执行支持文件的安装位置。 与二进制文件相反, 这些文件从来不直接由用户执行, 但是可以被上面提到的二进制文件所执行。
--datadir=DIR
指定通用数据文件的安装位置。
--sysconfdir=DIR
指定在单个机器上使用的只读数据的安装位置。
--sharedstatedir=DIR
指定可以在多个机器上共享的可写数据的安装位置。
--localstatedir=DIR
指定只能单机使用的可写数据的安装位置。
--libdir=DIR
指定库文件的安装位置。
--includedir=DIR
指定 C 头文件的安装位置。 其他语言如 C++的头文件也可以使用此选项。
--oldincludedir=DIR
指定为除 GCC 外编译器安装的 C 头文件的安装位置。
--infodir=DIR
指定 Info 格式文档的安装位置。 Info 是被 GNU 工程所使用的文档格式。
--mandir=DIR
指定手册页的安装位置。
--srcdir=DIR
这个选项对安装没有作用。 他会告诉 configure 源码的位置。 一般来说不用指定此选项, 因为 configure 脚本一般和源码文件在同一个目录下。
--program-prefix=PREFIX
指定将被加到所安装程序的名字上的前缀。例如,使用--program-prefix=g 来 configure一个名为 tar 的程序将会使安装的程序被命名为 gtar。 当和其他的安装选项一起使用时,这个选项只有当他被 Makefile.in 文件使用时才会工作。
--program-suffix=SUFFIX
指定将被加到所安装程序的名字上的后缀。
--program-transform-name=PROGRAM
这里的 PROGRAM 是一个 sed 脚本。 当一个程序被安装时, 他的名字将经过 sed -e
PROGRAM 来产生安装的名字。
--build=BUILD
指定软件包安装的系统平台。 如果没有指定, 默认值将是--host 选项的值。
--host=HOST
指定软件运行的系统平台。 如果没有指定, 将会运行 config.guess 来检测。
--target=GARGET'
指定软件面向(target to)的系统平台。 这主要在程序语言工具如编译器和汇编器上下文中起作用。 如果没有指定, 默认将使用--host 选项的值。
--disable-FEATURE
一些软件包可以选择这个选项来提供为大型选项的编译时配置, 例如使用 Kerberos认证系统或者一个实验性的编译器最优配置。 如果默认是提供这些特性, 可以使用
--disable-FEATURE 来禁用它, 这里 FEATURE 是特性的名字。 例如:
$ ./configure --disable-gui
-enable-FEATURE[=ARG]
相反的, 一些软件包可能提供了一些默认被禁止的特性, 可以使用--enable-FEATURE来起用它。 这里 FEATURE 是特性的名字。 一个特性可能会接受一个可选的参数。 例如:
$ ./configure --enable-buffers=128
--enable-FEATURE=no 与上面提到的--disable-FEATURE 是同义的。
--with-PACKAGE[=ARG]
在自由软件社区里, 有使用已有软件包和库的优秀传统。 当用 configure 来配置一个源码树时, 可以提供其他已经安装的软件包的信息。 例如, 倚赖于 Tcl 和 Tk 的 BLT 器件工具包。 要配置 BLT, 可能需要给 configure 提供一些关于我们把 Tcl 和 Tk 装的何处的信息:
$ ./configure --with-tcl=/usr/local --with-tk=/usr/local
--with-PACKAGE=no 与下面将提到的--without-PACKAGE 是同义的。
--without-PACKAGE
有时候你可能不想让你的软件包与系统已有的软件包交互。 例如, 你可能不想让你的新编译器使用 GNU ld。 通过使用这个选项可以做到这一点:
$ ./configure --without-gnu-ld
--x-includes=DIR
这个选项是--with-PACKAGE 选项的一个特例。 在 Autoconf 最初被开发出来时, 流行使用 configure 来作为 Imake 的一个变通方法来制作运行于 X 的软件。 --x-includes 选项提供了向 configure 脚本指明包含 X11 头文件的目录的方法。
--x-libraries=DIR
类似的, --x-libraries 选项提供了向 configure 脚本指明包含 X11 库的目录的方法

进入 ffmpeg-3.3.1 并配置
# cd ffmpeg-3.3.1# ./configure --enable-shared --prefix=/usr/local/ffmpeg --enable-gpl --enable-libx264 --extra-cflags=-I/usr/local/include --extra-ldflags=-L/usr/local/libyasm/nasm not found or too old. Use --disable-yasm for a crippled build.If you think configure made a mistake, make sure you are using the latestversion from Git.  If the latest version fails, report the problem to theffmpeg-user@ffmpeg.org mailing list or IRC #ffmpeg on irc.freenode.net.Include the log file "config.log" produced by configure as this will helpsolve the problem.
会提示如上的错误,说明 yasm/nasm not found or too old. 
安装 yasm:
# apt-get install yasm
或者按照提示直接在配置上添加 --disable-yasm
重新执行:
./configure --enable-shared --prefix=/usr/local/ffmpeg --enable-gpl --enable-libx264 --extra-cflags=-I/usr/local/include --extra-ldflags=-L/usr/local/lib --enable-libmp3lame --disable-yasm 
为什么会是上面的配置,参看:ffmpeg再学习 -- 将 jpeg 转成 mp4

4、编译

先执行,时间有点长,需要等几分钟:
# make
然后执行:
# make install

5、检查是否安装成功

查看 ffmpeg 版本:
# /usr/local/ffmpeg/bin/ffmpeg --version/usr/local/ffmpeg/bin/ffmpeg: error while loading shared libraries: libavdevice.so.57: cannot open shared object file: No such file or directory
出现如上错误,原因是 libavdevice.so 找不到

修改文件 /etc/ld.so.conf 内容增加 /usr/local/ffmpeg/lib/
vi /etc/ld.so.conf在最后添加:/usr/local/ffmpeg/lib/
使之生效:
# ldconfig
重新查看 ffmpeg 版本:
# /usr/local/ffmpeg/bin/ffmpeg -versionffmpeg version 3.3.1 Copyright (c) 2000-2017 the FFmpeg developersbuilt with gcc 4.6 (Ubuntu/Linaro 4.6.3-1ubuntu5)configuration: --enable-shared --prefix=/usr/local/ffmpeglibavutil      55. 58.100 / 55. 58.100libavcodec     57. 89.100 / 57. 89.100libavformat    57. 71.100 / 57. 71.100libavdevice    57.  6.100 / 57.  6.100libavfilter     6. 82.100 /  6. 82.100libswscale      4.  6.100 /  4.  6.100libswresample   2.  7.100 /  2.  7.100
配置环境变量 PATH:
一次性的:
export PATH=/usr/local/ffmpeg/bin/:$PATH
永久性的:
# gedit /etc/profile  在最后添加:export PATH=/usr/local/ffmpeg/bin/:$PATH立即生效执行:source /etc/profile
则可以在任何目录都可以查看 ffmpeg 版本:
# ffmpeg -versionffmpeg version 3.3.1 Copyright (c) 2000-2017 the FFmpeg developersbuilt with gcc 4.6 (Ubuntu/Linaro 4.6.3-1ubuntu5)configuration: --enable-shared --prefix=/usr/local/ffmpeglibavutil      55. 58.100 / 55. 58.100libavcodec     57. 89.100 / 57. 89.100libavformat    57. 71.100 / 57. 71.100libavdevice    57.  6.100 / 57.  6.100libavfilter     6. 82.100 /  6. 82.100libswscale      4.  6.100 /  4.  6.100libswresample   2.  7.100 /  2.  7.100

6、查看 help

执行:
# ffmpeg -helpffmpeg version 3.3.1 Copyright (c) 2000-2017 the FFmpeg developers  built with gcc 4.6 (Ubuntu/Linaro 4.6.3-1ubuntu5)  configuration: --enable-shared --prefix=/usr/local/ffmpeg  libavutil      55. 58.100 / 55. 58.100  libavcodec     57. 89.100 / 57. 89.100  libavformat    57. 71.100 / 57. 71.100  libavdevice    57.  6.100 / 57.  6.100  libavfilter     6. 82.100 /  6. 82.100  libswscale      4.  6.100 /  4.  6.100  libswresample   2.  7.100 /  2.  7.100Hyper fast Audio and Video encoderusage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...Getting help:    -h      -- print basic options    -h long -- print more options    -h full -- print all options (including all format and codec specific options, very long)    -h type=name -- print all options for the named decoder/encoder/demuxer/muxer/filter    See man ffmpeg for detailed description of the options.Print help / information / capabilities:-L                  show license-h topic            show help-? topic            show help-help topic         show help--help topic        show help-version            show version-buildconf          show build configuration-formats            show available formats-muxers             show available muxers-demuxers           show available demuxers-devices            show available devices-codecs             show available codecs-decoders           show available decoders-encoders           show available encoders-bsfs               show available bit stream filters-protocols          show available protocols-filters            show available filters-pix_fmts           show available pixel formats-layouts            show standard channel layouts-sample_fmts        show available audio sample formats-colors             show available color names-sources device     list sources of the input device-sinks device       list sinks of the output device-hwaccels           show available HW acceleration methodsGlobal options (affect whole program instead of just one file:-loglevel loglevel  set logging level-v loglevel         set logging level-report             generate a report-max_alloc bytes    set maximum size of a single allocated block-y                  overwrite output files-n                  never overwrite output files-ignore_unknown     Ignore unknown stream types-filter_threads     number of non-complex filter threads-filter_complex_threads  number of threads for -filter_complex-stats              print progress report during encoding-max_error_rate ratio of errors (0.0: no errors, 1.0: 100% error  maximum error rate-bits_per_raw_sample number  set the number of bits per raw sample-vol volume         change audio volume (256=normal)Per-file main options:-f fmt              force format-c codec            codec name-codec codec        codec name-pre preset         preset name-map_metadata outfile[,metadata]:infile[,metadata]  set metadata information of outfile from infile-t duration         record or transcode "duration" seconds of audio/video-to time_stop       record or transcode stop time-fs limit_size      set the limit file size in bytes-ss time_off        set the start time offset-sseof time_off     set the start time offset relative to EOF-seek_timestamp     enable/disable seeking by timestamp with -ss-timestamp time     set the recording timestamp ('now' to set the current time)-metadata string=string  add metadata-program title=string:st=number...  add program with specified streams-target type        specify target file type ("vcd", "svcd", "dvd", "dv" or "dv50" with optional prefixes "pal-", "ntsc-" or "film-")-apad               audio pad-frames number      set the number of frames to output-filter filter_graph  set stream filtergraph-filter_script filename  read stream filtergraph description from a file-reinit_filter      reinit filtergraph on input parameter changes-discard            discard-disposition        dispositionVideo options:-vframes number     set the number of video frames to output-r rate             set frame rate (Hz value, fraction or abbreviation)-s size             set frame size (WxH or abbreviation)-aspect aspect      set aspect ratio (4:3, 16:9 or 1.3333, 1.7777)-bits_per_raw_sample number  set the number of bits per raw sample-vn                 disable video-vcodec codec       force video codec ('copy' to copy stream)-timecode hh:mm:ss[:;.]ff  set initial TimeCode value.-pass n             select the pass number (1 to 3)-vf filter_graph    set video filters-ab bitrate         audio bitrate (please use -b:a)-b bitrate          video bitrate (please use -b:v)-dn                 disable dataAudio options:-aframes number     set the number of audio frames to output-aq quality         set audio quality (codec-specific)-ar rate            set audio sampling rate (in Hz)-ac channels        set number of audio channels-an                 disable audio-acodec codec       force audio codec ('copy' to copy stream)-vol volume         change audio volume (256=normal)-af filter_graph    set audio filtersSubtitle options:-s size             set frame size (WxH or abbreviation)-sn                 disable subtitle-scodec codec       force subtitle codec ('copy' to copy stream)-stag fourcc/tag    force subtitle tag/fourcc-fix_sub_duration   fix subtitles duration-canvas_size size   set canvas size (WxH or abbreviation)-spre preset        set the subtitle options to the indicated preset

7、查看支持的编码格式

# ffmpeg -codecsffmpeg version 3.3.1 Copyright (c) 2000-2017 the FFmpeg developers  built with gcc 4.6 (Ubuntu/Linaro 4.6.3-1ubuntu5)  configuration: --enable-shared --prefix=/usr/local/ffmpeg --enable-gpl --enable-libx264 --extra-cflags=-I/usr/local/include --extra-ldflags=-L/usr/local/lib --enable-libmp3lame --disable-yasm  libavutil      55. 58.100 / 55. 58.100  libavcodec     57. 89.100 / 57. 89.100  libavformat    57. 71.100 / 57. 71.100  libavdevice    57.  6.100 / 57.  6.100  libavfilter     6. 82.100 /  6. 82.100  libswscale      4.  6.100 /  4.  6.100  libswresample   2.  7.100 /  2.  7.100  libpostproc    54.  5.100 / 54.  5.100Codecs: D..... = Decoding supported .E.... = Encoding supported ..V... = Video codec ..A... = Audio codec ..S... = Subtitle codec ...I.. = Intra frame-only codec ....L. = Lossy compression .....S = Lossless compression ------- D.VI.. 012v                 Uncompressed 4:2:2 10-bit D.V.L. 4xm                  4X Movie D.VI.S 8bps                 QuickTime 8BPS video .EVIL. a64_multi            Multicolor charset for Commodore 64 (encoders: a64multi ) .EVIL. a64_multi5           Multicolor charset for Commodore 64, extended with 5th color (colram) (encoders: a64multi5 ) D.V..S aasc                 Autodesk RLE D.VIL. aic                  Apple Intermediate Codec DEVI.S alias_pix            Alias/Wavefront PIX image DEVIL. amv                  AMV Video D.V.L. anm                  Deluxe Paint Animation D.V.L. ansi                 ASCII/ANSI art DEV..S apng                 APNG (Animated Portable Network Graphics) image DEVIL. asv1                 ASUS V1 DEVIL. asv2                 ASUS V2 D.VIL. aura                 Auravision AURA D.VIL. aura2                Auravision Aura 2 ..V.L. av1                  Alliance for Open Media AV1 D.V... avrn                 Avid AVI Codec DEVI.. avrp                 Avid 1:1 10-bit RGB Packer D.V.L. avs                  AVS (Audio Video Standard) video DEVI.. avui                 Avid Meridien Uncompressed DEVI.. ayuv                 Uncompressed packed MS 4:4:4:4 D.V.L. bethsoftvid          Bethesda VID video D.V.L. bfi                  Brute Force & Ignorance D.V.L. binkvideo            Bink video D.VI.. bintext              Binary text DEVI.S bmp                  BMP (Windows and OS/2 bitmap) D.V..S bmv_video            Discworld II BMV video D.VI.S brender_pix          BRender PIX image D.V.L. c93                  Interplay C93 D.V.L. cavs                 Chinese AVS (Audio Video Standard) (AVS1-P2, JiZhun profile) D.V.L. cdgraphics           CD Graphics video D.VIL. cdxl                 Commodore CDXL video D.V.L. cfhd                 Cineform HD DEV.L. cinepak              Cinepak D.V.L. clearvideo           Iterated Systems ClearVideo DEVIL. cljr                 Cirrus Logic AccuPak D.VI.S cllc                 Canopus Lossless Codec D.V.L. cmv                  Electronic Arts CMV video (decoders: eacmv ) D.V... cpia                 CPiA video format D.V..S cscd                 CamStudio (decoders: camstudio ) D.VIL. cyuv                 Creative YUV (CYUV) ..V.LS daala                Daala D.VILS dds                  DirectDraw Surface image decoder D.V.L. dfa                  Chronomaster DFA DEV.LS dirac                Dirac (encoders: vc2 ) DEVIL. dnxhd                VC3/DNxHD DEVI.S dpx                  DPX (Digital Picture Exchange) image D.V.L. dsicinvideo          Delphine Software International CIN video DEVIL. dvvideo              DV (Digital Video) D.V..S dxa                  Feeble Files/ScummVM DXA D.VI.S dxtory               Dxtory D.VIL. dxv                  Resolume DXV D.V.L. escape124            Escape 124 D.V.L. escape130            Escape 130 D.VILS exr                  OpenEXR image DEV..S ffv1                 FFmpeg video codec #1 DEVI.S ffvhuff              Huffyuv FFmpeg variant D.V.L. fic                  Mirillis FIC DEV..S flashsv              Flash Screen Video v1 DEV.L. flashsv2             Flash Screen Video v2 D.V..S flic                 Autodesk Animator Flic video DEV.L. flv1                 FLV / Sorenson Spark / Sorenson H.263 (Flash Video) (decoders: flv ) (encoders: flv ) D.V..S fmvc                 FM Screen Capture Codec D.VI.S fraps                Fraps D.VI.S frwu                 Forward Uncompressed D.V.L. g2m                  Go2Meeting DEV..S gif                  GIF (Graphics Interchange Format) DEV.L. h261                 H.261 DEV.L. h263                 H.263 / H.263-1996, H.263+ / H.263-1998 / H.263 version 2 D.V.L. h263i                Intel H.263 DEV.L. h263p                H.263+ / H.263-1998 / H.263 version 2 DEV.LS h264                 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (decoders: h264 h264_cuvid ) (encoders: libx264 libx264rgb h264_nvenc nvenc nvenc_h264 ) D.VIL. hap                  Vidvox Hap DEV.L. hevc                 H.265 / HEVC (High Efficiency Video Coding) (decoders: hevc hevc_cuvid ) (encoders: nvenc_hevc hevc_nvenc ) D.V.L. hnm4video            HNM 4 video D.VIL. hq_hqa               Canopus HQ/HQA D.VIL. hqx                  Canopus HQX DEVI.S huffyuv              HuffYUV D.V.L. idcin                id Quake II CIN video (decoders: idcinvideo ) D.VI.. idf                  iCEDraw text D.V.L. iff_ilbm             IFF ACBM/ANIM/DEEP/ILBM/PBM/RGB8/RGBN (decoders: iff ) D.V.L. indeo2               Intel Indeo 2 D.V.L. indeo3               Intel Indeo 3 D.V.L. indeo4               Intel Indeo Video Interactive 4 D.V.L. indeo5               Intel Indeo Video Interactive 5 D.V.L. interplayvideo       Interplay MVE video DEVILS jpeg2000             JPEG 2000 DEVILS jpegls               JPEG-LS D.VIL. jv                   Bitmap Brothers JV video D.V.L. kgv1                 Kega Game Video D.V.L. kmvc                 Karl Morton's video codec D.VI.S lagarith             Lagarith lossless .EVI.S ljpeg                Lossless JPEG D.VI.S loco                 LOCO D.VI.S m101                 Matrox Uncompressed SD D.V.L. mad                  Electronic Arts Madcow Video (decoders: eamad ) D.VI.S magicyuv             MagicYUV video D.VIL. mdec                 Sony PlayStation MDEC (Motion DECoder) D.V.L. mimic                Mimic DEVIL. mjpeg                Motion JPEG (decoders: mjpeg mjpeg_cuvid ) D.VIL. mjpegb               Apple MJPEG-B D.V.L. mmvideo              American Laser Games MM Video D.V.L. motionpixels         Motion Pixels video DEV.L. mpeg1video           MPEG-1 video (decoders: mpeg1video mpeg1_cuvid ) DEV.L. mpeg2video           MPEG-2 video (decoders: mpeg2video mpegvideo mpeg2_cuvid ) DEV.L. mpeg4                MPEG-4 part 2 (decoders: mpeg4 mpeg4_cuvid ) ..V.L. mpegvideo_xvmc       MPEG-1/2 video XvMC (X-Video Motion Compensation) D.V.L. msa1                 MS ATC Screen D.V.L. msmpeg4v1            MPEG-4 part 2 Microsoft variant version 1 DEV.L. msmpeg4v2            MPEG-4 part 2 Microsoft variant version 2 DEV.L. msmpeg4v3            MPEG-4 part 2 Microsoft variant version 3 (decoders: msmpeg4 ) (encoders: msmpeg4 ) D.V..S msrle                Microsoft RLE D.V.L. mss1                 MS Screen 1 D.VIL. mss2                 MS Windows Media Video V9 Screen DEV.L. msvideo1             Microsoft Video 1 D.VI.S mszh                 LCL (LossLess Codec Library) MSZH D.V.L. mts2                 MS Expression Encoder Screen D.VIL. mvc1                 Silicon Graphics Motion Video Compressor 1 D.VIL. mvc2                 Silicon Graphics Motion Video Compressor 2 D.V.L. mxpeg                Mobotix MxPEG video D.V.L. nuv                  NuppelVideo/RTJPEG D.V.L. paf_video            Amazing Studio Packed Animation File Video DEVI.S pam                  PAM (Portable AnyMap) image DEVI.S pbm                  PBM (Portable BitMap) image DEVI.S pcx                  PC Paintbrush PCX image DEVI.S pgm                  PGM (Portable GrayMap) image DEVI.S pgmyuv               PGMYUV (Portable GrayMap YUV) image D.VIL. pictor               Pictor/PC Paint D.VIL. pixlet               Apple Pixlet DEV..S png                  PNG (Portable Network Graphics) image DEVI.S ppm                  PPM (Portable PixelMap) image DEVIL. prores               Apple ProRes (iCodec Pro) (decoders: prores prores_lgpl ) (encoders: prores prores_aw prores_ks ) D.VI.S psd                  Photoshop PSD file D.VIL. ptx                  V.Flash PTX image D.VI.S qdraw                Apple QuickDraw D.V.L. qpeg                 Q-team QPEG DEV..S qtrle                QuickTime Animation (RLE) video DEVI.S r10k                 AJA Kona 10-bit RGB Codec DEVI.S r210                 Uncompressed RGB 10-bit DEVI.S rawvideo             raw video D.VIL. rl2                  RL2 video DEV.L. roq                  id RoQ video (decoders: roqvideo ) (encoders: roqvideo ) D.V.L. rpza                 QuickTime video (RPZA) D.V..S rscc                 innoHeim/Rsupport Screen Capture Codec DEV.L. rv10                 RealVideo 1.0 DEV.L. rv20                 RealVideo 2.0 D.V.L. rv30                 RealVideo 3.0 D.V.L. rv40                 RealVideo 4.0 D.V.L. sanm                 LucasArts SANM/SMUSH video D.V.LS scpr                 ScreenPressor D.V..S screenpresso         Screenpresso DEVI.S sgi                  SGI image D.VI.S sgirle               SGI RLE 8-bit D.VI.S sheervideo           BitJazz SheerVideo D.V.L. smackvideo           Smacker video (decoders: smackvid ) D.V.L. smc                  QuickTime Graphics (SMC) D.V... smvjpeg              Sigmatel Motion Video DEV.LS snow                 Snow D.VIL. sp5x                 Sunplus JPEG (SP5X) D.VIL. speedhq              NewTek SpeedHQ DEVI.S sunrast              Sun Rasterfile image DEV.L. svq1                 Sorenson Vector Quantizer 1 / Sorenson Video 1 / SVQ1 D.V.L. svq3                 Sorenson Vector Quantizer 3 / Sorenson Video 3 / SVQ3 DEVI.S targa                Truevision Targa image D.VI.. targa_y216           Pinnacle TARGA CineWave YUV16 D.V.L. tdsc                 TDSC D.V.L. tgq                  Electronic Arts TGQ video (decoders: eatgq ) D.V.L. tgv                  Electronic Arts TGV video (decoders: eatgv ) D.V.L. theora               Theora D.VIL. thp                  Nintendo Gamecube THP video D.V.L. tiertexseqvideo      Tiertex Limited SEQ video DEVI.S tiff                 TIFF image D.VIL. tmv                  8088flex TMV D.V.L. tqi                  Electronic Arts TQI video (decoders: eatqi ) D.V.L. truemotion1          Duck TrueMotion 1.0 D.V.L. truemotion2          Duck TrueMotion 2.0 D.V.L. truemotion2rt        Duck TrueMotion 2.0 Real Time D.V..S tscc                 TechSmith Screen Capture Codec (decoders: camtasia ) D.V.L. tscc2                TechSmith Screen Codec 2 D.VIL. txd                  Renderware TXD (TeXture Dictionary) image D.V.L. ulti                 IBM UltiMotion (decoders: ultimotion ) DEVI.S utvideo              Ut Video DEVI.S v210                 Uncompressed 4:2:2 10-bit D.VI.S v210x                Uncompressed 4:2:2 10-bit DEVI.. v308                 Uncompressed packed 4:4:4 DEVI.. v408                 Uncompressed packed QT 4:4:4:4 DEVI.S v410                 Uncompressed 4:4:4 10-bit D.V.L. vb                   Beam Software VB D.VI.S vble                 VBLE Lossless Codec D.V.L. vc1                  SMPTE VC-1 (decoders: vc1 vc1_cuvid ) D.V.L. vc1image             Windows Media Video 9 Image v2 D.VIL. vcr1                 ATI VCR1 D.VIL. vixl                 Miro VideoXL (decoders: xl ) D.V.L. vmdvideo             Sierra VMD video D.V..S vmnc                 VMware Screen Codec / VMware Video D.V.L. vp3                  On2 VP3 D.V.L. vp5                  On2 VP5 D.V.L. vp6                  On2 VP6 D.V.L. vp6a                 On2 VP6 (Flash version, with alpha channel) D.V.L. vp6f                 On2 VP6 (Flash version) D.V.L. vp7                  On2 VP7 D.V.L. vp8                  On2 VP8 (decoders: vp8 vp8_cuvid ) D.V.L. vp9                  Google VP9 (decoders: vp9 vp9_cuvid ) D.VILS webp                 WebP DEV.L. wmv1                 Windows Media Video 7 DEV.L. wmv2                 Windows Media Video 8 D.V.L. wmv3                 Windows Media Video 9 D.V.L. wmv3image            Windows Media Video 9 Image D.VIL. wnv1                 Winnov WNV1 .EV..S wrapped_avframe      AVFrame to AVPacket passthrough D.V.L. ws_vqa               Westwood Studios VQA (Vector Quantized Animation) video (decoders: vqavideo ) D.V.L. xan_wc3              Wing Commander III / Xan D.V.L. xan_wc4              Wing Commander IV / Xxan D.VI.. xbin                 eXtended BINary text DEVI.S xbm                  XBM (X BitMap) image DEVIL. xface                X-face image D.VI.S xpm                  XPM (X PixMap) image DEVI.S xwd                  XWD (X Window Dump) image DEVI.. y41p                 Uncompressed YUV 4:1:1 12-bit D.VI.S ylc                  YUY2 Lossless Codec D.V.L. yop                  Psygnosis YOP Video DEVI.. yuv4                 Uncompressed packed 4:2:0 D.V..S zerocodec            ZeroCodec Lossless Video DEVI.S zlib                 LCL (LossLess Codec Library) ZLIB DEV..S zmbv                 Zip Motion Blocks Video ..A.L. 4gv                  4GV (Fourth Generation Vocoder) D.A.L. 8svx_exp             8SVX exponential D.A.L. 8svx_fib             8SVX fibonacci DEA.L. aac                  AAC (Advanced Audio Coding) (decoders: aac aac_fixed ) D.A.L. aac_latm             AAC LATM (Advanced Audio Coding LATM syntax) DEA.L. ac3                  ATSC A/52A (AC-3) (decoders: ac3 ac3_fixed ) (encoders: ac3 ac3_fixed ) D.A.L. adpcm_4xm            ADPCM 4X Movie DEA.L. adpcm_adx            SEGA CRI ADX ADPCM D.A.L. adpcm_afc            ADPCM Nintendo Gamecube AFC D.A.L. adpcm_aica           ADPCM Yamaha AICA D.A.L. adpcm_ct             ADPCM Creative Technology D.A.L. adpcm_dtk            ADPCM Nintendo Gamecube DTK D.A.L. adpcm_ea             ADPCM Electronic Arts D.A.L. adpcm_ea_maxis_xa    ADPCM Electronic Arts Maxis CDROM XA D.A.L. adpcm_ea_r1          ADPCM Electronic Arts R1 D.A.L. adpcm_ea_r2          ADPCM Electronic Arts R2 D.A.L. adpcm_ea_r3          ADPCM Electronic Arts R3 D.A.L. adpcm_ea_xas         ADPCM Electronic Arts XAS DEA.L. adpcm_g722           G.722 ADPCM (decoders: g722 ) (encoders: g722 ) DEA.L. adpcm_g726           G.726 ADPCM (decoders: g726 ) (encoders: g726 ) D.A.L. adpcm_g726le         G.726 ADPCM little-endian (decoders: g726le ) D.A.L. adpcm_ima_amv        ADPCM IMA AMV D.A.L. adpcm_ima_apc        ADPCM IMA CRYO APC D.A.L. adpcm_ima_dat4       ADPCM IMA Eurocom DAT4 D.A.L. adpcm_ima_dk3        ADPCM IMA Duck DK3 D.A.L. adpcm_ima_dk4        ADPCM IMA Duck DK4 D.A.L. adpcm_ima_ea_eacs    ADPCM IMA Electronic Arts EACS D.A.L. adpcm_ima_ea_sead    ADPCM IMA Electronic Arts SEAD D.A.L. adpcm_ima_iss        ADPCM IMA Funcom ISS D.A.L. adpcm_ima_oki        ADPCM IMA Dialogic OKI DEA.L. adpcm_ima_qt         ADPCM IMA QuickTime D.A.L. adpcm_ima_rad        ADPCM IMA Radical D.A.L. adpcm_ima_smjpeg     ADPCM IMA Loki SDL MJPEG DEA.L. adpcm_ima_wav        ADPCM IMA WAV D.A.L. adpcm_ima_ws         ADPCM IMA Westwood DEA.L. adpcm_ms             ADPCM Microsoft D.A.L. adpcm_mtaf           ADPCM MTAF D.A.L. adpcm_psx            ADPCM Playstation D.A.L. adpcm_sbpro_2        ADPCM Sound Blaster Pro 2-bit D.A.L. adpcm_sbpro_3        ADPCM Sound Blaster Pro 2.6-bit D.A.L. adpcm_sbpro_4        ADPCM Sound Blaster Pro 4-bit DEA.L. adpcm_swf            ADPCM Shockwave Flash D.A.L. adpcm_thp            ADPCM Nintendo THP D.A.L. adpcm_thp_le         ADPCM Nintendo THP (Little-Endian) D.A.L. adpcm_vima           LucasArts VIMA audio D.A.L. adpcm_xa             ADPCM CDROM XA DEA.L. adpcm_yamaha         ADPCM Yamaha DEA..S alac                 ALAC (Apple Lossless Audio Codec) D.A.L. amr_nb               AMR-NB (Adaptive Multi-Rate NarrowBand) (decoders: amrnb ) D.A.L. amr_wb               AMR-WB (Adaptive Multi-Rate WideBand) (decoders: amrwb ) D.A..S ape                  Monkey's Audio D.A.L. atrac1               ATRAC1 (Adaptive TRansform Acoustic Coding) D.A.L. atrac3               ATRAC3 (Adaptive TRansform Acoustic Coding 3) D.A..S atrac3al             ATRAC3 AL (Adaptive TRansform Acoustic Coding 3 Advanced Lossless) D.A.L. atrac3p              ATRAC3+ (Adaptive TRansform Acoustic Coding 3+) (decoders: atrac3plus ) D.A..S atrac3pal            ATRAC3+ AL (Adaptive TRansform Acoustic Coding 3+ Advanced Lossless) (decoders: atrac3plusal ) D.A.L. avc                  On2 Audio for Video Codec (decoders: on2avc ) D.A.L. binkaudio_dct        Bink Audio (DCT) D.A.L. binkaudio_rdft       Bink Audio (RDFT) D.A.L. bmv_audio            Discworld II BMV audio ..A.L. celt                 Constrained Energy Lapped Transform (CELT) DEA.L. comfortnoise         RFC 3389 Comfort Noise D.A.L. cook                 Cook / Cooker / Gecko (RealAudio G2) D.A.L. dsd_lsbf             DSD (Direct Stream Digital), least significant bit first D.A.L. dsd_lsbf_planar      DSD (Direct Stream Digital), least significant bit first, planar D.A.L. dsd_msbf             DSD (Direct Stream Digital), most significant bit first D.A.L. dsd_msbf_planar      DSD (Direct Stream Digital), most significant bit first, planar D.A.L. dsicinaudio          Delphine Software International CIN audio D.A.L. dss_sp               Digital Speech Standard - Standard Play mode (DSS SP) D.A..S dst                  DST (Direct Stream Transfer) DEA.LS dts                  DCA (DTS Coherent Acoustics) (decoders: dca ) (encoders: dca ) D.A.L. dvaudio              DV audio DEA.L. eac3                 ATSC A/52B (AC-3, E-AC-3) D.A.L. evrc                 EVRC (Enhanced Variable Rate Codec) DEA..S flac                 FLAC (Free Lossless Audio Codec) DEA.L. g723_1               G.723.1 D.A.L. g729                 G.729 D.A.L. gsm                  GSM D.A.L. gsm_ms               GSM Microsoft variant D.A.L. iac                  IAC (Indeo Audio Coder) ..A.L. ilbc                 iLBC (Internet Low Bitrate Codec) D.A.L. imc                  IMC (Intel Music Coder) D.A.L. interplay_dpcm       DPCM Interplay D.A.L. interplayacm         Interplay ACM D.A.L. mace3                MACE (Macintosh Audio Compression/Expansion) 3:1 D.A.L. mace6                MACE (Macintosh Audio Compression/Expansion) 6:1 D.A.L. metasound            Voxware MetaSound DEA..S mlp                  MLP (Meridian Lossless Packing) D.A.L. mp1                  MP1 (MPEG audio layer 1) (decoders: mp1 mp1float ) DEA.L. mp2                  MP2 (MPEG audio layer 2) (decoders: mp2 mp2float ) (encoders: mp2 mp2fixed ) DEA.L. mp3                  MP3 (MPEG audio layer 3) (decoders: mp3 mp3float ) (encoders: libmp3lame ) D.A.L. mp3adu               ADU (Application Data Unit) MP3 (MPEG audio layer 3) (decoders: mp3adu mp3adufloat ) D.A.L. mp3on4               MP3onMP4 (decoders: mp3on4 mp3on4float ) D.A..S mp4als               MPEG-4 Audio Lossless Coding (ALS) (decoders: als ) D.A.L. musepack7            Musepack SV7 (decoders: mpc7 ) D.A.L. musepack8            Musepack SV8 (decoders: mpc8 ) DEA.L. nellymoser           Nellymoser Asao DEA.L. opus                 Opus (Opus Interactive Audio Codec) D.A.L. paf_audio            Amazing Studio Packed Animation File Audio DEA.L. pcm_alaw             PCM A-law / G.711 A-law D.A..S pcm_bluray           PCM signed 16|20|24-bit big-endian for Blu-ray media D.A..S pcm_dvd              PCM signed 20|24-bit big-endian D.A..S pcm_f16le            PCM 16.8 floating point little-endian D.A..S pcm_f24le            PCM 24.0 floating point little-endian DEA..S pcm_f32be            PCM 32-bit floating point big-endian DEA..S pcm_f32le            PCM 32-bit floating point little-endian DEA..S pcm_f64be            PCM 64-bit floating point big-endian DEA..S pcm_f64le            PCM 64-bit floating point little-endian D.A..S pcm_lxf              PCM signed 20-bit little-endian planar DEA.L. pcm_mulaw            PCM mu-law / G.711 mu-law DEA..S pcm_s16be            PCM signed 16-bit big-endian DEA..S pcm_s16be_planar     PCM signed 16-bit big-endian planar DEA..S pcm_s16le            PCM signed 16-bit little-endian DEA..S pcm_s16le_planar     PCM signed 16-bit little-endian planar DEA..S pcm_s24be            PCM signed 24-bit big-endian DEA..S pcm_s24daud          PCM D-Cinema audio signed 24-bit DEA..S pcm_s24le            PCM signed 24-bit little-endian DEA..S pcm_s24le_planar     PCM signed 24-bit little-endian planar DEA..S pcm_s32be            PCM signed 32-bit big-endian DEA..S pcm_s32le            PCM signed 32-bit little-endian DEA..S pcm_s32le_planar     PCM signed 32-bit little-endian planar DEA..S pcm_s64be            PCM signed 64-bit big-endian DEA..S pcm_s64le            PCM signed 64-bit little-endian DEA..S pcm_s8               PCM signed 8-bit DEA..S pcm_s8_planar        PCM signed 8-bit planar DEA..S pcm_u16be            PCM unsigned 16-bit big-endian DEA..S pcm_u16le            PCM unsigned 16-bit little-endian DEA..S pcm_u24be            PCM unsigned 24-bit big-endian DEA..S pcm_u24le            PCM unsigned 24-bit little-endian DEA..S pcm_u32be            PCM unsigned 32-bit big-endian DEA..S pcm_u32le            PCM unsigned 32-bit little-endian DEA..S pcm_u8               PCM unsigned 8-bit D.A.L. pcm_zork             PCM Zork D.A.L. qcelp                QCELP / PureVoice D.A.L. qdm2                 QDesign Music Codec 2 D.A.L. qdmc                 QDesign Music DEA.L. ra_144               RealAudio 1.0 (14.4K) (decoders: real_144 ) (encoders: real_144 ) D.A.L. ra_288               RealAudio 2.0 (28.8K) (decoders: real_288 ) D.A..S ralf                 RealAudio Lossless DEA.L. roq_dpcm             DPCM id RoQ DEA..S s302m                SMPTE 302M D.A.L. sdx2_dpcm            DPCM Squareroot-Delta-Exact D.A..S shorten              Shorten D.A.L. sipr                 RealAudio SIPR / ACELP.NET D.A.L. smackaudio           Smacker audio (decoders: smackaud ) ..A.L. smv                  SMV (Selectable Mode Vocoder) D.A.L. sol_dpcm             DPCM Sol DEA... sonic                Sonic .EA... sonicls              Sonic lossless ..A.L. speex                Speex D.A..S tak                  TAK (Tom's lossless Audio Kompressor) DEA..S truehd               TrueHD D.A.L. truespeech           DSP Group TrueSpeech DEA..S tta                  TTA (True Audio) D.A.L. twinvq               VQF TwinVQ D.A.L. vmdaudio             Sierra VMD audio DEA.L. vorbis               Vorbis ..A.L. voxware              Voxware RT29 Metasound D.A... wavesynth            Wave synthesis pseudo-codec DEA.LS wavpack              WavPack D.A.L. westwood_snd1        Westwood Audio (SND1) (decoders: ws_snd1 ) D.A..S wmalossless          Windows Media Audio Lossless D.A.L. wmapro               Windows Media Audio 9 Professional DEA.L. wmav1                Windows Media Audio 1 DEA.L. wmav2                Windows Media Audio 2 D.A.L. wmavoice             Windows Media Audio Voice D.A.L. xan_dpcm             DPCM Xan D.A.L. xma1                 Xbox Media Audio 1 D.A.L. xma2                 Xbox Media Audio 2 ..D... bin_data             binary data ..D... dvd_nav_packet       DVD Nav packet ..D... klv                  SMPTE 336M Key-Length-Value (KLV) metadata ..D... otf                  OpenType font ..D... scte_35              SCTE 35 Message Queue ..D... timed_id3            timed ID3 metadata ..D... ttf                  TrueType font DES... ass                  ASS (Advanced SSA) subtitle (decoders: ssa ass ) (encoders: ssa ass ) DES... dvb_subtitle         DVB subtitles (decoders: dvbsub ) (encoders: dvbsub ) ..S... dvb_teletext         DVB teletext DES... dvd_subtitle         DVD subtitles (decoders: dvdsub ) (encoders: dvdsub ) D.S... eia_608              EIA-608 closed captions (decoders: cc_dec ) D.S... hdmv_pgs_subtitle    HDMV Presentation Graphic Stream subtitles (decoders: pgssub ) ..S... hdmv_text_subtitle   HDMV Text subtitle D.S... jacosub              JACOsub subtitle D.S... microdvd             MicroDVD subtitle DES... mov_text             MOV text D.S... mpl2                 MPL2 subtitle D.S... pjs                  PJS (Phoenix Japanimation Society) subtitle D.S... realtext             RealText subtitle D.S... sami                 SAMI subtitle ..S... srt                  SubRip subtitle with embedded timing ..S... ssa                  SSA (SubStation Alpha) subtitle D.S... stl                  Spruce subtitle format DES... subrip               SubRip subtitle (decoders: srt subrip ) (encoders: srt subrip ) D.S... subviewer            SubViewer subtitle D.S... subviewer1           SubViewer v1 subtitle DES... text                 raw UTF-8 text D.S... vplayer              VPlayer subtitle DES... webvtt               WebVTT subtitle DES... xsub                 XSUB

8、常用命令

参看:FFmpeg实用命令
参看:ffmpeg 常用命令
参看:FFmpeg功能命令集合

9、测试执行转码

生成 output.ts 文件:
# ffmpeg -i IMG_3888.mp4 -b:v 640k output.ts
使用 VLC 播放,看看我拍摄的美图: