FFmpeg再学习 -- Linux 安装说明
linux-dash
A beautiful web dashboard for Linux
项目地址:https://gitcode.com/gh_mirrors/li/linux-dash
免费下载资源
·
参看:ffmpeg 入门
ffmpeg 之前项目有用到过,最近在做使用 ffmpeg 将 jpeg 转成 mp4,正好借此机会将安装过程说明一下。
Windows下安装方法,可以参看上面的文章。
下载:Download FFmpeg for Windows 该页面里也有相关的 External Libraries 链接
解压后即可使用:
ffmpeg -i C:\ffmpeg\test.avi -b:v 640k c:\ffmpeg\output.ts
现在我讲讲在 Ubuntu 下的安装。
首先需要安装几个必要的解码器:
更多可部分:
接下来开始讲ffmpeg的安装
1、首先下载
下载:ffmpeg 官网下载 下载的版本为 ffmpeg-3.3.1.tar
2、解压
将软件拷贝到指定位置,解压。
tar -xvf ffmpeg-3.3.1.tar
3、配置
可以使用 ./configure --help 看看哪些功能是我们需要打开关闭的
# ./configure --help
Usage: 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 filters
Standard 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 targets
Licensing 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 build
Documentation 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 pages
Component 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 libavutil
Individual 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 filters
External 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 variables
Advanced 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 slow
Developer 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 的基本选项,其含义如下:
--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/lib
yasm/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 latest
version from Git. If the latest version fails, report the problem to the
ffmpeg-user@ffmpeg.org mailing list or IRC #ffmpeg on irc.freenode.net.
Include the log file "config.log" produced by configure as this will help
solve 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 -version
ffmpeg 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.100
配置环境变量 PATH:
一次性的:
export PATH=/usr/local/ffmpeg/bin/:$PATH
永久性的:
# gedit /etc/profile
在最后添加:
export PATH=/usr/local/ffmpeg/bin/:$PATH
立即生效执行:
source /etc/profile
则可以在任何目录都可以查看 ffmpeg 版本:
# ffmpeg -version
ffmpeg 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.100
6、查看 help
执行:
# ffmpeg -help
ffmpeg 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.100
Hyper fast Audio and Video encoder
usage: 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 methods
Global 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 disposition
Video 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 data
Audio 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 filters
Subtitle 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 -codecs
ffmpeg 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.100
Codecs:
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 播放,看看我拍摄的美图:
GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e
added ecosystem file for PM2 4 年前
5def40a3
Add host customization support for the NodeJS version 4 年前
更多推荐
已为社区贡献19条内容
所有评论(0)