ffmpeg-config编译资料(整理)
FFMPEG完美入门资料
3.2.2 相关数据结构介绍 ............................................................................................. 18 3.3 D EMUXER 和 MUXER 模块分析 .................................................................................. 23 3.3.1 概述 .................................................................................................................... 23 3.3.2 相关数据结构介绍 ............................................................................................. 23 3.4 D ECODER /ENCODER 模块 ........................................................................................... 26 3.4.1 概述 .................................................................................................................... 26 3.4.2 相关数据结构的初始化 ..................................................................................... 26 3.5 其他重要数据结构的初始化 .................................................................................... 27 3.5.1 AVStream ............................................................................................................. 27 3.5.2 AVInputStream/ AVOutputStream ......................................................................... 28 3.5.3 AVPacket ............................................................................................................. 28 4.FFMPEG 裁剪说明 ......................................................................................................... 28 4.1 CONFIGURE 参数 ........................................................................................................ 28 4.1.1 通用选项 ............................................................................................................ 28 4.1.2 基本选项介绍 .................................................................................................... 32 4.2 FF MPEG 裁剪优化实例 .............................................................................................. 34 4.3 裁剪优化前后文件比较 ............................................................................................ 35
ffmpeg cmake编译
一、介绍ffmpeg和cmakeffmpeg是一个开源跨评台的音视频处理工具,可用于录制、转换和流媒体等操作。
而cmake是一个跨评台的构建工具,可用于控制软件编译的过程。
二、为何选择使用cmake编译ffmpeg1. 跨评台性:cmake可以在不同的操作系统上生成相应的构建文件,使得ffmpeg可以在各种评台上进行编译。
2. 简化编译过程:cmake可以自动检测系统环境和依赖库,简化了ffmpeg的编译过程。
3. 可维护性:使用cmake可以更方便地管理ffmpeg的编译配置和参数,便于维护和更新。
三、cmake编译ffmpeg的基本步骤1. 安装cmake:在开始编译之前,首先要确保系统中已经安装了cmake。
2. 配置编译参数:通过cmake命令行或者CMakeLists.txt文件来配置ffmpeg的编译参数。
3. 生成构建文件:执行cmake命令生成相应评台的构建文件。
4. 编译ffmpeg:使用生成的构建文件进行编译,生成可执行文件或库文件。
四、cmake编译ffmpeg的详细步骤和命令1. 安装cmake:可以通过包管理工具或者源代码安装cmake,具体方法可以参考cmake的官方文档。
2. 配置编译参数:可以通过命令行参数或者编写CMakeLists.txt文件来配置ffmpeg的编译参数,例如:```cmake -DENABLE_SHARED=off -DENABLE_SDL2=on -DENABLE_TESTS=off -DCMAKE_INSTALL_PREFIX=/usr/local .. ```3. 生成构建文件:在ffmpeg源代码目录下执行cmake命令,生成构建文件,例如:```mkdir build && cd buildcmake ..```4. 编译ffmpeg:使用生成的构建文件进行编译,例如:```make```五、常见问题和解决方法1. 编译依赖库:在使用cmake编译ffmpeg时,可能会遇到依赖库找不到的问题,需要根据系统环境安装相应的依赖库。
linux编译ffmpeg支持x264,x265
linux编译ffmpeg支持x264,x2651. 前言本教程涉及的ffmpeg, x264, x2652. 环境依赖2.1 删除系统中安装的ffmpeg等库[plain] view plain copy1.sudo apt-get --purge remove ffmpeg mplayer x264 x2652.2 安装依赖库[plain] view plain copy1.sudo apt-get update2.sudo apt-get -y --force-yes install autoconf automake build-essential libass-dev libfreetype6-dev libgpac-dev \3.libsdl1.2-dev libtheora-dev libtool libva-dev libvdpau-dev libvorbis-dev libxcb1-dev libxcb-shm0-dev \4.libxcb-xfixes0-dev pkg-config texi2html zlib1g-dev注: 服务器版本可忽略libsdl1.2-dev libva-dev libvdpau-dev libxcb1-dev libxcb-shm0-dev libxcb-xfixes0-dev2.3 下载源代码(1) ffmpeg[plain] view plain copy1.git clone git:///ffmpeg.git ffmpeg(2) x264[plain] view plain copy1.<pre name="code" class="plain"><pre name="code" clas s="plain">git clone git:///x264.git(3) x265[plain] view plain copy1.hg clone /multicoreware/x265(4) yasmyasm 是x86平台的一个汇编优化器, 能够加快ffmpeg x264的编译[plain] view plain copy1.wget /projects/yasm/releases/yasm-1.3.0.tar.gz2.tar xzvf yasm-1.3.0.tar.gz3. 编译3.1 配置编译输出目录[plain] view plain copy1.export FFMPEG_PATH="YOUR_PATH"2.export PATH="$FFMPEG_PATH/bin:$PATH"例如我输出目录为$HOME/ffmpeg_2.6.3/build_out那么:[plain] view plain copy1.export FFMPEG_PATH="$HOME/ffmpeg_2.6.3/build_out"3.1 yasm[plain] view plain copy1.cd yasm-1.3.02../configure --prefix="$HOME/"3.make4.make install或者安装已有的库(yasm version ≥ 1.3.0)[plain] view plain copy1.sudo apt-get install yasm3.2 x264在配置ffmpeg config时需要加入--enable-gpl和--enable-libx264[plain] view plain copy1.cd x264*2../configure --prefix="$FFMPEG_PATH" --enable-shared --enable-static3.make -j44.make install5.make clean或者安装已有的库(yasm version ≥ 1.3.0)[plain] view plain copy1.sudo apt-get install libx264-dev3.3 x265[plain] view plain copy1.cd x265/build/linux2.cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="$FFMPEG_PATH" -DENABLE_SHARED:bool=off ../../source3.make -j44.make install5.make clean6.</tt></span>3.4 aac在配置ffmpeg config时需要加入--enable-libfdk_aac(如果开启--enable-gpl同时需要开启--enable-nonfree )[plain] view plain copy1.PKG_CONFIG_PATH="$FFMPEG_PATH/lib/pkgconfig" ./co nfigure \2.--prefix="$FFMPEG_PATH" \3.--pkg-config-flags="--static" \4.--extra-cflags="-I$FFMPEG_PATH/include" \5.--extra-ldflags="-L$FFMPEG_PATH/lib" \6.--enable-gpl \7.--enable-libass \8.--enable-libfaac \9.--enable-libfreetype \10.--enable-libmp3lame \11.--enable-libtheora \12.--enable-libvorbis \13.--enable-libx264 \14.--enable-libx265 \15.--enable-nonfree \16.--enable-shared \17.--enable-postproc \18.--enable-x11grab \19.--enable-bzlib \20.--enable-libxvid \21.--enable-zlib \22.--disable-debug4. 将ffmpeg添加到环境变量4.1 将ffmpeg添加到环境变量[plain] view plain copy1.vim ~/.bashrc在最后添加[plain] view plain copy1.export FFMPEG_PATH="/home/guohe/workspace/ffmpeg _2.6.3/build_out"2.export PATH="$FFMPEG_PATH/bin:$PATH"4.2 添加链接库编译完成之后调用ffmpeg 会出现error while loading shared libraries: xxx解决这种问题有2中方法:(1) 修改/etc/ld.so.conf[plain] view plain copy1.vim /etc/ld.so.conf在最后添加[plain] view plain copy1.$FFMPEG_PATH/lib然后执行[plain] view plain copy1.sudo ldconfig(2) 修改LD_LIBRARY_PATH[plain] view plain copy1.vim ~/.bashrc在最后添加[plain] view plain copy1.export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$FFMPEG_ PATH/ib。
linux编译ffmpeg支持x264,x265
linux 编译ffmpeg 支持x264, x2651. 前言本教程涉及的ffmpeg, x264, x2652. 环境依赖2.1 删除系统中安装的ffmpeg等库[plain] view plain copy sudo apt-get --purge remove ffmpeg mplayer x264 x2652.2 安装依赖库[plain] view plain copy sudo apt-get update sudo apt-get -y --force-yes install autoconf automake build-essential libass-dev libfreetype6-dev libgpac-dev \ libsdl1.2-dev libtheora-dev libtool libva-dev libvdpau-dev libvorbis-dev libxcb1-dev libxcb-shm0-dev \ libxcb-xfixes0-devpkg-config texi2html zlib1g-dev注: 服务器版本可忽略libsdl1.2-dev libva-dev libvdpau-dev libxcb1-devlibxcb-shm0-dev libxcb-xfixes0-dev2.3 下载源代码(1) ffmpeg[plain] view plain copy git clonegit:///ffmpeg.git ffmpeg(2) x264[plain] view plain copy <pre name="code"class="plain"><pre name="code" class="plain">git clone git:///x264.git (3) x265[plain] view plain copy hg clonehttps:///multicoreware/x265(4) yasmyasm 是x86平台的一个汇编优化器, 能够加快ffmpegx264的编译[plain] view plain copy wget/projects/yasm/releases/yasm-1.3.0.ta r.gz tar xzvf yasm-1.3.0.tar.gz3. 编译3.1 配置编译输出目录[plain] view plain copy exportFFMPEG_PATH="YOUR_PATH" exportPATH="$FFMPEG_PATH/bin:$PATH" 例如我输出目录为$HOME/ffmpeg_2.6.3/build_out那么:[plain] view plain copy exportFFMPEG_PATH="$HOME/ffmpeg_2.6.3/build_out"3.1 yasm[plain] view plain copy cd yasm-1.3.0 ./configure--prefix="$HOME/" make make install或者安装已有的库(yasm version ≥ 1.3.0)[plain] view plain copy sudo apt-get install yasm 3.2 x264 在配置ffmpeg config时需要加入--enable-gpl和--enable-libx264[plain] view plain copy cd x264* ./configure--prefix="$FFMPEG_PATH" --enable-shared--enable-static make -j4 make install make clean 或者安装已有的库(yasm version ≥ 1.3.0)[plain] view plain copy sudo apt-get install libx264-dev 3.3 x265[plain] view plain copy cd x265/build/linux cmake -G "Unix Makefiles"-DCMAKE_INSTALL_PREFIX="$FFMPEG_PATH"-DENABLE_SHARED:bool=off ../../source make -j4 make install make clean </tt></span>3.4 aac在配置ffmpeg config时需要加入--enable-libfdk_aac(如果开启--enable-gpl同时需要开启--enable-nonfree ) [plain] view plain copyPKG_CONFIG_PATH="$FFMPEG_PATH/lib/pkgconfig" ./ configure \ --prefix="$FFMPEG_PATH" \--pkg-config-flags="--static" \--extra-cflags="-I$FFMPEG_PATH/include" \--extra-ldflags="-L$FFMPEG_PATH/lib" \ --enable-gpl \ --enable-libass \ --enable-libfaac \--enable-libfreetype \ --enable-libmp3lame \--enable-libtheora \ --enable-libvorbis \--enable-libx264 \ --enable-libx265 \--enable-nonfree \ --enable-shared \--enable-postproc \ --enable-x11grab \--enable-bzlib \ --enable-libxvid \ --enable-zlib \--disable-debug4. 将ffmpeg添加到环境变量4.1 将ffmpeg添加到环境变量[plain] view plain copy vim ~/.bashrc 在最后添加[plain] view plain copy exportFFMPEG_PATH="/home/guohe/workspace/ffmpeg_2.6.3/ build_out" export PATH="$FFMPEG_PATH/bin:$PATH"4.2 添加链接库编译完成之后调用ffmpeg 会出现errorwhile loading shared libraries: xxx解决这种问题有2中方法:(1) 修改/etc/ld.so.conf[plain] view plain copy vim /etc/ld.so.conf在最后添加[plain] view plain copy $FFMPEG_PATH/lib然后执行[plain] view plain copy sudo ldconfig (2) 修改LD_LIBRARY_PATH[plain] view plain copy vim ~/.bashrc 在最后添加[plain] view plain copy exportLD_LIBRARY_PATH=$LD_LIBRARY_PATH:$FFMPEG_P ATH/ib。
用Android NDK编译FFmpeg,RTSP手机视频
2010-12-03用Android NDK编译FFmpeg文章分类:移动开发用Android NDK编译FFmpegPOSTED AT: 2010-07-24 06:38:52 UTC | POSTED IN: Android | 69 COMMENTS| EDITAndroid内置的编解码器实在太少,于是我们需要FFmpeg。
Android提供了NDK,为我们使用FFmpeg这种C语言代码提供了方便。
不过为了用NDK编译FFmpeg,还真的花费了不少时间,也得到了很多人的帮助,最应该谢谢havlenapetr。
我觉得我现在这些方法算是比较简洁的了--下面就尽量詳細的说一下我是怎么在项目中使用FFmpeg的,但是基于我混乱的表达能力,有不明白的就问我。
你得了解JNI和Android NDK的基本用法,若觉得我的文章还不错,可以看之前写的JNI简单入门和Android NDK入门首先创建一个标准的Android项目vPlayerandroid create project -n vPlayer -t 8 -p vPlayer -k me.abitno.vplayer -a PlayerView然后在vPlayer目录里mkdir jni &&cd jniwget /releases/ffmpeg-0.6.tar.bz2tar xf ffmpeg-0.6.tar.bz2 &&mv ffmpeg-0.6 ffmpeg &&cd ffmpeg在ffmpeg下新建一个config.sh,内容如下,注意把PREBUILT和PLATFORM设置正确。
另外里面有些参数你也可以自行调整,我主要是为了配置一个播放器而这样设置的。
#!/bin/bashPREBUILT=/home/abitno/Android/android-ndk-r4/build/prebuilt/linux-x86 /arm-eabi-4.4.0PLATFORM=/home/abitno/Android/android-ndk-r4/build/platforms/android-8/arch-arm./configure --target-os=linux \--arch=arm \--enable-version3 \--enable-gpl \--enable-nonfree \--disable-stripping \--disable-ffmpeg \--disable-ffplay \--disable-ffserver \--disable-ffprobe \--disable-encoders \--disable-muxers \--disable-devices \--disable-protocols \--enable-protocol=file \ --enable-avfilter \--disable-network \--disable-mpegaudio-hp \--disable-avdevice \--enable-cross-compile \--cc=$PREBUILT/bin/arm-eabi-gcc \--cross-prefix=$ PREBUILT/bin/arm-eabi- \--nm=$PREBUILT/bin/arm-eabi-nm \--extra-cflags="-fPIC -DANDROID"\--disable-asm \--enable-neon \--enable-armv5te \--extra-ldflags="-Wl,-T,$PREBUILT/arm-eabi/lib/ldscripts/armelf.x -Wl,-rpath-link=$ PLATFORM/usr/lib -L$PLATFORM/usr/lib -nostdlib $PREBUILT/lib/gcc/arm-eabi/4.4.0/crtbegin.o $PREBUILT/lib/gcc/arm-eabi/4.4.0/crtend.o -lc -lm -ldl"运行config.sh开始configurechmod +x config.sh./config.shconfigure完成后,编辑刚刚生成的config.h,找到这句#define restrict restrictAndroid的GCC不支持restrict关键字,于是修改成下面这样#define restrict编辑libavutil/libm.h,把其中的static方法都删除。
ffmpeg 打印 编译参数
FFmpeg 是一个开源的音视瓶处理工具,广泛应用于音视瓶处理、编解码、转码等领域。
在使用 FFmpeg 进行编译时,常常需要打印编译参数,以便开发人员和用户对编译环境有更清晰的了解。
下面我们将详细介绍如何使用 FFmpeg 打印编译参数。
1. 确认 FFmpeg 版本我们需要确认我们使用的 FFmpeg 版本。
不同的版本可能会有不同的编译参数,因此我们需要先确定我们的 FFmpeg 版本。
可以通过命令行输入 ffmpeg -version 来查看当前安装的 FFmpeg 版本信息。
2. 打印编译参数在确认了当前使用的 FFmpeg 版本之后,我们可以使用以下命令来打印编译参数:ffmpeg -buildconf。
这个命令会输出当前 FFmpeg 的编译参数,包括编译器、架构、配置选项等信息。
通过查看这些参数,我们可以更好地了解当前的编译环境,方便日后的使用和调试。
3. 查看编译参数详细信息除了使用 ffmpeg -buildconf 命令之外,我们还可以查看更详细的编译参数信息。
在 FFmpeg 的源代码目录下,有一个文件 config.h,这个文件包含了编译参数的详细信息。
我们可以打开这个文件,查看其中的内容,以获取更详尽的编译参数信息。
4. 了解常用的编译参数除了打印当前的编译参数之外,我们还可以了解一些常用的编译参数,这些参数可以在编译 FFmpeg 时进行配置,以满足特定的需求。
一些常用的编译参数包括:--enable-gpl、--enable-libx264、--enable-libfdk_aac 等。
通过了解这些常用的编译参数,我们可以更好地进行自定义的编译配置。
5. 阅读 FFmpeg 冠方文档建议大家阅读 FFmpeg 的冠方文档,这些文档包含了丰富的编译参数信息,以及详细的使用方法和示例。
通过阅读冠方文档,我们可以更全面地了解 FFmpeg 的编译参数,以及如何根据特定的需求进行编译配置。
ffmpeg 6.0使用手册
文章内容:一、介绍ffmpeg是一个广泛使用的开源多媒体工具包,可以用于录制、转换和流化音频和视频。
在本文中,我们将详细介绍ffmpeg 6.0的使用手册,以便读者能够更好地了解和使用这一工具。
二、安装和运行要使用ffmpeg 6.0,首先需要进行安装。
在Linux系统中,可以通过包管理器进行安装;在Windows系统中,可以下载预编译的可执行文件。
安装完成后,可以通过命令行终端运行ffmpeg,进行音视频处理操作。
三、基本命令ffmpeg提供了丰富的命令,可以进行音视频处理、转码、剪辑等操作。
常用的命令包括:- `-i`:指定输入文件- `-c`:指定编解码器- `-f`:指定输出格式- `-ss`:指定起始时间- `-t`:指定持续时间- `filterplex`:复杂过滤器的使用四、高级功能除了基本命令外,ffmpeg还提供了许多高级功能,包括:- 多路转码:可以同时对多个音视频流进行转码处理- 实时流化:可以将音视频实时流化到网络- 视频编辑:可以对视频进行裁剪、拼接、滤镜等操作五、个人观点ffmpeg是一个功能强大、灵活多样的多媒体工具,可以满足各种音视频处理需求。
通过学习和使用ffmpeg 6.0,不仅可以提升音视频处理能力,还可以为个人和企业带来更多的创造和商业机会。
六、总结在本文中,我们详细介绍了ffmpeg 6.0的使用手册,包括安装和运行、基本命令、高级功能等内容。
通过阅读本文,希望读者能够更全面地了解和掌握ffmpeg 6.0,从而在音视频处理领域取得更好的成就。
以上就是我撰写的关于ffmpeg 6.0使用手册的文章。
希望对你有所帮助!七、应用场景ffmpeg 6.0在实际应用中有广泛的场景,包括但不限于以下几个方面:1. 视频编辑和制作:通过ffmpeg可以轻松实现视频的剪辑、拼接、添加滤镜、调整画面亮度、对比度等操作,是视频编辑和制作领域的利器。
2. 音频处理和转换:除了视频处理,ffmpeg也可以用于音频领域,包括音频格式转换、音频剪辑、音频合并等,满足了音频处理的需求。
ffmpeg 各种编码器 使用方法
一、介绍ffmpeg编码器ffmpeg是一个开源的音视瓶处理工具,可以进行音视瓶的编解码、转换和流媒体的处理。
在使用ffmpeg进行编码时,我们可以选择不同的编码器来实现不同的功能,比如压缩、转换、解码等。
本文将介绍一些常见的编码器,并说明它们的使用方法。
二、常见的音频编码器1. AAC编码器AAC(Advanced Audio Coding)是一种高级音频编码格式,常用于音乐和音频流媒体的编码。
在ffmpeg中,可以使用libfaac库来支持AAC编码,具体命令如下:ffmpeg -i input.wav -c:a libfaac -b:a 128k output.aac参数说明:-i input.wav:指定输入文件为input.wav-c:a libfaac:选择使用libfaac库进行音频编码-b:a 128k:设置音频比特率为128kbpsoutput.aac:指定输出文件为output.aac2. MP3编码器MP3(MPEG-1 Audio Layer 3)是一种广泛使用的有损音频压缩格式,适用于音乐和语音的编码。
在ffmpeg中,可以使用libmp3lame库来支持MP3编码,具体命令如下:ffmpeg -i input.wav -c:a libmp3lame -q:a 2 output.mp3参数说明:-i input.wav:指定输入文件为input.wav-c:a libmp3lame:选择使用libmp3lame库进行音频编码-q:a 2:设置音频质量因子为2(取值范围0-9,数值越大,音质越低)output.mp3:指定输出文件为output.mp3三、常见的视瓶编码器1. H.264编码器H.264(又称AVC)是一种高效的视瓶编码格式,适用于视瓶会议、高清电视等场景。
在ffmpeg中,可以使用libx264库来支持H.264编码,具体命令如下:ffmpeg -i input.mp4 -c:v libx264 -crf 23 -preset slowoutput.mp4参数说明:-i input.mp4:指定输入文件为input.mp4-c:v libx264:选择使用libx264库进行视瓶编码-crf 23:设置视瓶质量因子为23(取值范围0-51,数值越小,视瓶质量越高)-preset slow:设置编码速度为slow(速度越慢,压缩效率越高)output.mp4:指定输出文件为output.mp42. H.265编码器H.265(又称HEVC)是一种更高效的视瓶编码格式,可以实现更好的压缩效果和视瓶质量。
VC使用mingw32编译ffmpeg静态库所需文件(二),mingwexsrc.cpp
VC使⽤mingw32编译ffmpeg静态库所需⽂件(⼆),mingwexsrc.cppVC 使⽤mingw32编译ffmpeg静态库所需⽂件(⼆),mingwexsrc.cpp哈哈,这是我从⼀些项⽬⾥⾯看到的,这些函数是ffmpeg.a缺少的函数。
估计⼤家会⽤得上.当然我移植的的项⽬都不需要这些,因为我是⽤VC编译,所以不存在缺少mingw32⾥⾯的函数.// mingwexsource.cpp// ---------------------// This file is to define and fill in libmingwex.a functions// This is not a complete list by any means, and was coded due to incompatabilities of libmingwex.a// With MSVC. This file was created by Justin Ahn, and any questions can be directed to justin@soonahn.ca//#define WIN32_LEAN_AND_MEAN#define _CRTIMP#include <windows.h>#include <stdio.h>#include <stdarg.h>#include <stdlib.h>#include <time.h>#include <errno.h>#include <float.h>#include <math.h>#include <io.h>#include <sys/timeb.h>#include <time.h>#ifdef __cplusplusextern "C" {#endifextern int __cdecl _fpclass (double);/*#ifndef _ieeemisc_.objint __cdecl _fpclassf (float x) {return _fpclass(double(x));}#elseextern int __cdecl _fpclassf (float);#endif*/int __cdecl _fpclassf (float x) {return _fpclass(double(x));}int __cdecl _fpclassl (long double x) {return _fpclass(double(x));}int __cdecl __fpclassify (float x) {return _fpclass(double(x));}#if defined(_MSC_VER) || defined(_MSC_EXTENSIONS)#define DELTA_EPOCH_IN_MICROSECS 11644473600000000Ui64#else#define DELTA_EPOCH_IN_MICROSECS 11644473600000000ULL#endif#define fpclass(x) (sizeof (x) == sizeof (float) ? _fpclassf (x) \: sizeof (x) == sizeof (double) ? _fpclass (x) \: _fpclassl (x))#ifndef _WINSOCK2API_struct timeval {long tv_sec;long tv_usec;};#endif#define isfinite(x) ((fpclass(x) & FP_NAN) == 0)#define FP_NAN 0x0100#define FP_NORMAL 0x0400#define FP_ZERO 0x4000#define APICHAR char#define PFORMAT_NOLIMIT 0x4000extern int __cdecl _fstat64 (int,struct _stat64*);extern void __cdecl _ftime (struct __timeb64*);extern __int64 __cdecl _strtoi64 (const char * _String, char ** _EndPtr, int _Radix);extern float __cdecl log10f (float);extern float __cdecl sqrtf (float);extern double __cdecl round (double);extern float __cdecl cosf (float);extern float __cdecl sinf (float);extern float __cdecl log2f (float);extern float __cdecl atan2f (float, float);extern float __cdecl atanf (float);extern double __cdecl log(double);extern __int64 __cdecl _filelengthi64 (int);extern char* __cdecl gai_strerrorA (int);typedef long _off64_t;typedef long off64_t;struct timezone {int tz_minuteswest; /* minutes W of Greenwich */int tz_dsttime; /* type of dst correction */};float __cdecl truncf(float n) {return n > 0.0 ? floorf(n) : ceilf(n);}int __cdecl __imp___fstat64(__in int _FileDes, __out struct _stat64 * _Stat) {return _fstat64(_FileDes, _Stat);}void __cdecl __imp___ftime64(__out struct __timeb64 *_Time) {_ftime(_Time);}/*int __cdecl __imp_getaddrinfo(const char *node, const char *service, const struct addrinfo *hints, struct addrinfo **res) { return getaddrinfo(node, service, hints, res);}*/double log2(double n) {return log(n)/log(2.0);}float log2f(float n) {return logf(n)/logf(2.0);}float exp2f(float n) {return powf(2.0, n);}float roundf(float x){return floor(x + 0.5f);}int __cdecl snprintf(char* buffer, size_t n, const char *format, ...){int retval;va_list argptr;va_start(argptr, format);retval = _vsnprintf (buffer, n, format, argptr);va_end(argptr);return retval;}long long __cdecl strtoll (const char* __restrict nptr, char ** __restrict endptr, int base){return _strtoi64(nptr, endptr, base);}static const float CBRT2 = 1.25992104989487316477f;static const float CBRT4 = 1.58740105196819947475f;float cbrtf (float x) {int e, rem, sign;float z;if (!isfinite (x) || x == 0.0F)return x;if (x > 0)sign = 1;else{sign = -1;x = -x;}z = x;// extract power of 2, leaving// mantissa between 0.5 and 1//x = frexpf(x, &e);// Approximate cube root of number between .5 and 1,// peak relative error = 9.2e-6 //x = (((-0.13466110473359520655053f * x+ 0.54664601366395524503440f ) * x- 0.95438224771509446525043f ) * x+ 1.1399983354717293273738f ) * x+ 0.40238979564544752126924f;// exponent divided by 3if (e >= 0){rem = e;e /= 3;rem -= 3*e;if (rem == 1)x *= CBRT2;else if (rem == 2)x *= CBRT4;}// argument less than 1else{e = -e;rem = e;e /= 3;rem -= 3*e;if (rem == 1)x /= CBRT2;else if (rem == 2)x /= CBRT4;e = -e;}// multiply by power of 2x = ldexpf(x, e);// Newton iterationx -= ( x - (z/(x*x)) ) * 0.333333333333f;if (sign < 0)x = -x;return (x);}double round (double x) {double res;if (x >= 0.0){res = ceil (x);if (res - x > 0.5)res -= 1.0;}else{res = ceil (-x);if (res + x > 0.5)res -= 1.0;res = -res;}return res;}int fseeko64 (FILE* stream, _off64_t offset, int whence) {fpos_t pos;if (whence == SEEK_CUR){// If stream is invalid, fgetpos sets errno.if (fgetpos (stream, &pos))return (-1);pos += (fpos_t) offset;}else if (whence == SEEK_END){// If writing, we need to flush before getting file length.fflush (stream);pos = (fpos_t) (_filelengthi64 (_fileno (stream)) + offset);}else if (whence == SEEK_SET)pos = (fpos_t) offset;else{errno = EINVAL;return (-1);}return fsetpos (stream, &pos);}_off64_t ftello64 (FILE * stream) {fpos_t pos;if (fgetpos(stream, &pos))return -1LL;elsereturn ((off64_t) pos);}#ifdef __cplusplus}#endifwzplayer 相关链接:ffmpeg移植相关以上项⽬,都是付费,需要的⽤户可以联系.版权所有,禁⽌⽤于商业⽤途及转载.发布⾃:/weinyzhou/article/details/8120015。
ffmpeg的编译
ffmpeg的编译全文共四篇示例,供读者参考第一篇示例:FFmpeg是一个开源的跨平台音视频处理工具,它可以进行解码、编码、转码、流媒体处理等多种操作。
FFmpeg支持众多音视频格式,功能强大,使用广泛。
在实际应用中,可能会遇到需要对FFmpeg进行定制编译的情况,以满足自己的需求。
本文将介绍如何编译FFmpeg,并提供一些常见问题的解决方案。
第一步,准备开发环境在编译FFmpeg之前,首先需要准备好开发环境。
FFmpeg的编译过程需要依赖一些开发工具和库文件,这些工具和库文件可以通过包管理工具进行安装。
在不同的操作系统上,具体的安装方法可能有所不同。
在Ubuntu上,可以通过以下命令安装所需的开发工具和库文件:```bashsudo apt-get updatesudo apt-get install build-essentialsudo apt-get install git yasm libx264-dev libx265-dev```第二步,下载FFmpeg源代码接下来,我们需要下载FFmpeg的源代码。
FFmpeg的源代码托管在Git仓库中,可以通过Git工具进行下载。
在命令行中执行以下命令即可下载FFmpeg的源代码:```bashgit clone https:///ffmpeg.git``````bashcd ffmpeg```第三步,配置编译选项在编译FFmpeg之前,需要对其进行配置,配置编译选项。
FFmpeg的配置支持很多参数,可以根据需要进行定制。
通常情况下,我们可以使用以下命令进行配置:--prefix参数指定FFmpeg安装的路径,--enable-gpl参数表示开启GPL许可证的功能,--enable-libx264和--enable-libx265参数表示开启x264和x265编码器的支持。
在配置时,还可以根据实际需要添加其他参数,比如开启其他编码器的支持、开启特定格式的支持等。
ffmpeg编译、使用与常见问题
FFMPEG编译、使用与常见问题一. Linux下FFMPEG的安装与测试 (1)二. FFMPEG编译中出现的一些问题与解决方法 (4)三. FFMpeg简介及命令选项参数 (8)四. FFMPEG与x264的编译 (13)一.Linux下FFMPEG的安装与测试a. 先装mp3在linux下的包:lame-3.97.tar.gz;tar -xvzf lame-3.97.tar.gz;cd lame-3.97;./configure --enable-shared --prefix=/usr/;make;make install;b. 支持Ogg Vorbis:as4自带相应的rpm包,你可以安装一下如下rpm包:libvorbis, libvorbis-devel,libogg, libogg-devel 一般情况下as4都会安装c. 支持xvid x264,现在最流行的两种高质量的压缩格式xvid的编译安装wget /downloads/xvidcore-1.1.0.tar.gztar zvxf xvidcore-1.1.0.tar.gzcd xvidcore-1.1.2/build/generic./configure --prefix=/usr --enable-sharedmakemake installx264的获取用git:git clone git:///x264.gitcd x264./configure --prefix=/usr --enable-sharedmakemake install3d. AC3和dts编码的支持as4系统似乎已经支持ac3编码,编译的时候只要加--enable-a52 --enable-gpl参数就行libdts编译参数tar zxvf libdts-0.0.2.tar.gz./configure --prefix=/usrmakemake installe. mpg4 aac格式支持,由于服务器还针对手机用户服务,所以,类似aac,mpg4铃声格式的支持,我们也得做。
ffmpeg中文文档
ffmpeg的中⽂⽂档1. 概要ffmpeg [global_options] {[input_file_options] -iINPUT_FILE} ... {[output_file_options] OUTPUT_FILE} ... 2. 说明ffmpeg是⼀个⾮常快的视频和⾳频转换器,还可以抓取实时的⾳频/视频流。
它可以在任意的采样率之间的转换和调整视频,并同时使⽤⾼品质的多相滤波器。
ffmpeg从输⼊“⽂件”(其可以是常规⽂件,管道,⽹络流,录制装置等),由指定任意数量的读取-i选项,并写⼊到任意数量的输出“⽂件”,只需指定⼀个输出的⽂件名。
任何⼀个命令⾏中不能被解释为选项的内容都被认为是⼀个输出⽂件名。
每个输⼊或输出⽂件可以在原则上,包含任意数量的不同类型(视频/⾳频/字幕/附件/数据)的流。
输出⽂件中允许流的数量和类型是由输出格式容器限制决定的。
输⼊流和输出流直接的映射可以⾃动完成也可以⽤-map选项给定(⻅流选择章节)。
引⽤输⼊⽂件的选项时,则必须使⽤他们的索引(从0开始)。
例如:第⼀输⼊⽂件是0 ,第⼆个是1等。
类似地,⼀个⽂件中的流也通过其索引指定。
例如2:3指的是在第三个输⼊⽂件中的第四数据流。
参⻅流章节。
作为⼀般规则,选项作⽤于下⼀个指定的⽂件。
因此,命令的顺序是重要,你可以在命令⾏上多次相同的选项。
每次选项的出现都将作⽤于下⼀个输⼊或输出⽂件。
这条规则若有例外将会提前声明(例如冗余级别)。
不要混合输⼊和输出⽂件。
⾸先指定所有输⼊⽂件,那么所有的输出⽂件。
也不要混⽤属于不同的⽂件的选项。
所有选项仅适⽤于下⼀个输⼊或输出⽂件,之后选项将被重置。
设置输出⽂件以64千⽐特/秒的视频⽐特率:ffmpeg -i input.avi -b:V 64K -bufsize 64K output.avi要强制输出⽂件为24 fps的帧速率:ffmpeg -i input.avi -r 24 output.avi要强制输⼊⽂件的帧频(仅对原始格式有效),以1 FPS读⼊⽂件,以每秒24帧的帧速率输出:ffmpeg -r 1 -i input.m2v -r 24 output.aviformat 选项可能需要指定,对于原始输⼊⽂件。
课题_iOS_FFMpeg编译和使用问题总结
iOS: FFMpeg编译和使用问题总结折磨了我近一周多时间的FFmpeg库编译问题终于解决了,必须得把这一段时间来遇到过的坑全写出来。
如果急着解决问题,编译最新版本的FFmpeg库请直接看第二部分,编译较老版本(0.7)的FFmpeg库请直接跳至第七部分,那里有你想要的编译脚本,但别忘了抽空看看全文。
一、背景网上有很多FFmpeg编译配置的资料,大部分都是关于FFmpeg最新的版本(2.0)的,我一开始也想着编写一个2.0版本的,可以放到接手的那个项目中,发现各种问题(无法快进,没有声音),再看一下代码一堆警告,原因很简单,使用的FFMpeg库太新了,很多接口变动了。
由于手上没有多少信息,不知道那个项目使用的是哪个版本的FFmpeg库,一点点找,终于知道原来使用的是0.7.x的。
找到目标版本的FFmpeg本以为万事大吉了,后来才发现原来这才是坑的开始,有历经一系列磨难,最后终于把编译问题解决了。
二、FFmpeg最新版本的库编译FFmpeg最新版本的应该是2.1的,历史版本详见:///releases/,在这个网站上我们可以下到所有历史版本的库。
FFmpeg是一个跨平台的用C语言写成的库,包含了编码,解码,色彩空间转换等库。
编译需要用到命令行,对于我们这些没搞过后台或者linux开发的脚本知识欠缺的人来说的确算是一个挑战。
庆幸的是现在网络这么方便,不会做问Google,很快就找到了一个在xcode5下一键编译FFmpeg库的脚本。
这个脚本是个老外写的,真心强大,从下载到编译到构建最后的Fat库一气呵成。
脚本地址: s:///m1entus/6983547运行这个脚本需要依赖一个库Perl写的脚本,搜了一下网上目前编译FFmpeg库的帖子基本都会提到这个脚本,脚本地址如下: s:///mansr/gas-preprocessor。
下载完这两个脚本后,编译FFmpeg库的准备工作就基本完成了,接着依次执行下面几步:1、拷贝gas-preprocessor.pl文件到 /usr/bin目录下。
ffmpeg常用基本命令
ffmpeg常用基本命令1.分离视频音频流ffmpeg -i input_file –c:v copy -an output_file_video//分离视频流ffmpeg -i input_file –c:a copy -vn output_file_audio//分离音频流2.视频解复用ffmpeg –i test.mp4 –c:v copy –an –f m4v test.264ffmpeg –i test.avi –c:v copy –an –f m4v test.2643.视频转码ffmpeg –i test.mp4 –c:v h264 –s 352*278 –an –f m4v test.264 //转码为码流原始文件ffmpeg –i test.mp4 –vcodec h264 –bf 0 –g 25 –s 352*278 –an –f m4v test.264 //转码为码流原始文件ffmpeg –i test.avi -vcodec mpeg4 –vtag xvid –qsame test_xvid.avi //转码为封装文件//-bf B帧数目控制,-g 关键帧间隔控制,-s 分辨率控制4.视频封装ffmpeg –i video_file –i audio_file –c copy output_file5.视频剪切ffmpeg –i test.avi –r 1 –f image2 image-%3d.jpeg//提取图片, -r 提取图像的频率ffmpeg -ss 0:1:30 -t 0:0:20 -i input.avi –c copy output.avi//剪切视频-ss 开始时间,-t 持续时间à从0:1:30开始持续20秒6.视频录制ffmpeg –i rtsp://192.168.3.205:5555/test –vcodec copy out.avi7.YUV序列播放ffplay -f rawvideo -s 1920x1080 input.yuv8.YUV序列转AVIffmpeg –s w*h –pix_fmt yuv420p –i input.yuv –vcodec mpeg4 output.avi常用参数说明:主要参数:-i 设定输入流-f 设定输出格式-ss 开始时间视频参数:-b 设定视频流量,默认为200Kbit/s -r 设定帧速率,默认为25 -s 设定画面的宽与高320x240àqvga 176x144 à qcif -vn 不处理视频–vcodec(c:v) 设定视频编解码器音频参数:-ar 设定采样率-ac 设定声音的Channel数–acodec(c:a) 设定声音编解码器,-an 不处理音频1、将文件当做直播送至liveffmpeg -re -i localFile.mp4 -c copy -f flvrtmp://server/live/streamName2、将直播媒体保存至本地文件ffmpeg -i rtmp://server/live/streamName -c copy dump.flv3、将其中一个直播流,视频改用h264压缩,音频不变,送至另外一个直播服务流ffmpeg -i rtmp://server/live/originalStream -c:a copy -c:v libx264 -vpre slow -f flv rtmp://server/live/h264Stream4、将其中一个直播流,视频改用h264压缩,音频改用faac压缩,送至另外一个直播服务流ffmpeg -i rtmp://server/live/originalStream -c:a libfaac -ar 44100 -ab 48k -c:v libx264 -vpre slow -vpre baseline -f flv rtmp://server/live/h264Stream5、将其中一个直播流,视频不变,音频改用faac压缩,送至另外一个直播服务流ffmpeg -i rtmp://server/live/originalStream -acodec libfaac -ar 44100 -ab 48k -vcodec copy -f flv rtmp://server/live/h264_AAC_Stream6、将一个高清流,复制为几个不同视频清晰度的流重新发布,其中音频不变ffmpeg -re -i rtmp://server/live/high_FMLE_stream -acodec copy -vcodec x264lib -s 640×360 -b 500k -vpre medium -vpre baselinertmp://server/live/baseline_500k -acodec copy -vcodec x264lib -s480×272 -b 300k -vpre medium -vpre baselinertmp://server/live/baseline_300k -acodec copy -vcodec x264lib -s320×200 -b 150k -vpre medium -vpre baselinertmp://server/live/baseline_150k -acodec libfaac -vn -ab 48k rtmp://server/live/audio_only_AAC_48k7、功能一样,只是采用-x264opts选项ffmpeg -re -i rtmp://server/live/high_FMLE_stream -c:a copy -c:vx264lib -s 640×360 -x264optsbitrate=500:profile=baseline:preset=slowrtmp://server/live/baseline_500k -c:a copy -c:v x264lib -s 480×272 -x264opts bitrate=300:profile=baseline:preset=slow rtmp://server/live/baseline_300k -c:a copy -c:v x264lib -s 320×200 -x264opts bitrate=150:profile=baseline:preset=slow rtmp://server/live/baseline_150k -c:a libfaac -vn -b:a 48krtmp://server/live/audio_only_AAC_48k8、将当前摄像头及音频通过DSSHOW采集,视频h264、音频faac压缩后发布ffmpeg -r 25 -f dshow -s 640×480 -i video=”video source name”:audio=”audio source name” -vcodec libx264 -b 600k -vpre slow -acodec libfaac -ab 128k -f flv rtmp://server/application/stream_name9、将一个JPG图片经过h264压缩循环输出为mp4视频ffmpeg.exe -i INPUT.jpg -an -vcodec libx264 -coder 1 -flags +loop -cmp +chroma -subq 10 -qcomp 0.6 -qmin 10 -qmax 51 -qdiff 4 -flags2+dct8x8 -trellis 2 -partitions +parti8x8+parti4x4 -crf 24 -threads 0 -r 25 -g 25 -y OUTPUT.mp410、将普通流视频改用h264压缩,音频不变,送至高清流服务(新版本FMS live=1)ffmpeg -i rtmp://server/live/originalStream -c:a copy -c:v libx264 -vpre slow -f flv “rtmp://server/live/h264Stream live=1〃1.采集usb摄像头视频命令:ffmpeg -t 10 -f vfwcap -i 0 -r 8 -f mp4 cap.mp4具体说明如下:我们采集10秒,采集设备为vfwcap类型设备,第0个vfwcap采集设备(如果系统有多个vfw的视频采集设备,可以通过-i num来选择),每秒8帧,输出方式为文件,格式为mp4。
ffmpeg编码的例子 c++代码
标题:使用ffmpeg编码的C++代码示例一、介绍FFmpeg是一个广泛使用的开源多媒体框架,能够处理音频、视瓶、字幕等多媒体数据。
在C++编程中,使用FFmpeg进行编码是非常常见的需求,本文将介绍如何使用FFmpeg进行音视瓶编码的C++代码示例。
二、准备工作在开始编写C++代码之前,需要确保已经安装了FFmpeg库,并且配置好了开发环境。
可以从FFmpeg全球信息站(xxx)下载源码并进行编译安装,也可以直接使用各种包管理器进行安装。
三、C++代码示例以下是一个简单的C++代码示例,演示了如何使用FFmpeg进行音视瓶编码:```c++extern "C"{#include <libavformat/avformat.h>#include <libavcodec/avcodec.h>}void encode_video(const char* filename, AVFrame* frame, AVCodecContext* codecContext, AVFormatContext* formatContext){AVPacket packet;av_init_packet(packet);packet.data = NULL;packet.size = 0;if (avcodec_send_frame(codecContext, frame) < 0){// 处理发送帧失败的情况}while (avcodec_receive_packet(codecContext, packet) >= 0){ av_packet_rescale_ts(packet, codecContext->time_base, codecContext->time_base);packet.stream_index = 0;packet.dts = packet.pts = AV_NOPTS_VALUE;av_interleaved_write_frame(formatContext, packet);av_packet_unref(packet);}}void encode_audio(const char* filename, AVFrame* frame,AVCodecContext* codecContext, AVFormatContext* formatContext){AVPacket packet;av_init_packet(packet);packet.data = NULL;packet.size = 0;if (avcodec_send_frame(codecContext, frame) < 0){// 处理发送帧失败的情况}while (avcodec_receive_packet(codecContext, packet) >= 0){ av_packet_rescale_ts(packet, codecContext->time_base, codecContext->time_base);packet.stream_index = 1;packet.dts = packet.pts = AV_NOPTS_VALUE;av_interleaved_write_frame(formatContext, packet);av_packet_unref(packet);}}int m本人n(){const char* output_file = "output.mp4";av_register_all();AVFormatContext* formatContext = avformat_alloc_context(); avformat_alloc_output_context2(formatContext, NULL, NULL, output_file);AVCodec* video_codec =avcodec_find_encoder(AV_CODEC_ID_H264);AVCodecContext* video_codec_context =avcodec_alloc_context3(video_codec);video_codec_context->bit_rate = xxx;video_codec_context->width = 1920;video_codec_context->height = 1080;video_codec_context->time_base = {1, 30};AVStream* video_stream =avformat_new_stream(formatContext, video_codec);avcodec_parameters_from_context(video_stream->codecpar, video_codec_context);if (avcodec_open2(video_codec_context, video_codec, NULL) < 0){// 处理视瓶编码器打开失败的情况}AVCodec* audio_codec =avcodec_find_encoder(AV_CODEC_ID_AAC);AVCodecContext* audio_codec_context =avcodec_alloc_context3(audio_codec);audio_codec_context->bit_rate = xxx;audio_codec_context->sample_rate = xxx;audio_codec_context->channels = 2;AVStream* audio_stream =avformat_new_stream(formatContext, audio_codec);avcodec_parameters_from_context(audio_stream->codecpar, audio_codec_context);if (avcodec_open2(audio_codec_context, audio_codec, NULL) < 0){// 处理音频编码器打开失败的情况}if (avio_open(formatContext->pb, output_file,AVIO_FLAG_WRITE) < 0){// 处理文件打开失败的情况}avformat_write_header(formatContext, NULL);AVFrame* video_frame = av_frame_alloc();AVFrame* audio_frame = av_frame_alloc();// 填充视瓶帧和音频帧的数据encode_video(output_file, video_frame, video_codec_context, formatContext);encode_audio(output_file, audio_frame, audio_codec_context, formatContext);av_write_tr本人ler(formatContext);avcodec_close(video_codec_context);avcodec_free_context(video_codec_context);avcodec_close(audio_codec_context);avcodec_free_context(audio_codec_context);avformat_close_input(formatContext->pb);avformat_free_context(formatContext);return 0;}```四、总结以上代码演示了如何使用FFmpeg进行音视瓶编码的C++示例。
ffmpeg cmake编译
ffmpeg cmake编译要使用CMake进行FFmpeg编译,可以参考以下步骤:1. 首先,确保你已经下载了FFmpeg的源代码。
2. 创建一个新的空文件夹作为编译目录。
3. 在该文件夹下,创建一个CMakeLists.txt文件,并在其中添加以下内容:```cmake_minimum_required(VERSION 3.10)project(ffmpeg)set(CMAKE_C_STANDARD 99)# Add FFmpeg source directoryadd_subdirectory(path_to_ffmpeg_source)# Create your own target and link FFmpeg librariesadd_executable(your_target YourSourceFile.cpp)target_link_libraries(your_target avcodec avformat avutil swresample)```注意将`path_to_ffmpeg_source`替换为FFmpeg源代码所在的路径。
4. 打开终端,并导航到编译目录。
5. 运行以下命令来生成Makefile:```cmake .```6. 运行make命令来开始编译FFmpeg:```make```7. 等待编译完成,如果没有出现错误信息,则编译成功。
这样就完成了使用CMake进行FFmpeg编译的过程。
你可以将代码中的`your_target`替换为你自己的目标文件名,并添加其他的源文件、FFmpeg库以及其他的依赖项。
在Windows下编译ffmpeg步骤
在windows下编译FFmpeg详细说明1.Mingw的搭建:可参考“mingw安装步骤说明(windows 7系统下安装成功).docx”2.开始编译ffmpeg。
运行“C:\MinGW\msys\1.0\msys.bat”,如下图这是一个类似Linux的shell并且在Windows上运行,就像是在使用一个真正的Linux shell。
不过使用这个shell时需要注意:→目录名使用正斜杠来分割,而不是Windows所使用的反斜杠(比如说要写成"D:/ffmpeg"而不是"D:\ffmpeg")。
→盘符(例如"C:\")可以从根目录处访问(像这样"/C/")。
→文件名或目录名中如果带有空格,必须用双引号括起(例如这样"/C/Program Files",带有双引号)。
下面切换到存放FFmpeg源代码的目录(假如你的代码解压之后的路径是D:\ffmpeg),方法是输入:"cd /D/ffmpeg"。
我的编译文件时在此路径下“F:\test\compileffmpeg\ffmpeg-2.6.3”所以输入:“cd /f/test/compileffmpeg/ffmpeg-2.6.3”接下来要配置FFmpeg,选择编译时包含的库,这里先输入:./configure --enable-shared --disable-static --enable-memalign-hack--enable-memalign-hack选项是FFmpeg在Windows上编译成功所必须指定的下面报错提示丢失libgmp-10.dll从网上下载并拷贝到“C:\MinGW\bin”,因为“C:\MinGW\bin”已经配置在系统环境Path变量中。
再次执行。
请耐心等待,时间比较长。
再次报出错误信息网上的方法:(编译FFMPEG时,出现了ffmpeg yasm not found, use--disable-yasm for a crippled build,是因为FFMPEG为了提高编译速度,使用了汇编指令,如果系统中没有yasm指令的话,就会出现上述的问题。
ffmpeg configure 参数翻译
--disable-mpegaudio-hp faster (but less accurate) MPEG audio decoding [no] //快(但不准确)的音频解码
--disable-rdft disable RDFT code //取消RDFT代码
--enable-runtime-cpudetect detect cpu capabilities at runtime (bigger binary) //检测cpu的能力在运行时(更大的2进制)
--enable-pthreads use pthreads [no] //pthreads
--enable-w32threads use Win32 threads [no] //win32
--enable-avfilter video filter support [no] //视频过滤支持
--enable-avfilter-lavf video filters dependent on avformat [no] //依赖avformat过滤器
--enable-gray enable full grayscale support (slower color) //使全灰度支持(慢,颜色)
--disable-swscale-alpha disable alpha channel support in swscale //使alpha管道在swscale失去支持
--bindir=DIR install binaries in DIR [PREFIX/bin] //安装2进制文件
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
--enable-pp 启用后加工支持(默认关闭)enable GPLed postprocessing support [default=no]
--enable-libogg 启用ogg支持libogg(默认关闭)enable Ogg support via libogg [default=no]
--enable-vorbis 启用Vorbis支持libvorbis(默认关闭)enable Vorbis support via libvorbis [default=no]
Standard options: 基本选项参数
--help 显示此帮助信息|print this message
--log[=FILE|yes|no] 记录测试并输出到config.err文件|log tests and output to FILE [config.err]
--enable-sunmlib 启用Sun medialib(默认关闭) | use Sun medialib [default=no]
--enable-pthreads 启用pthreads(多线程)(默认关闭)use pthreads [default=no]
--enable-amr_wb 启用amr_wb float音频编解码器|enable amr_wb float audio codec
--enable-amr_if2 启用amr_wb IF2音频编解码器|enable amr_wb IF2 audio codec
--enable-mingw32 启用MinGW本地/交叉win环境编译|enable MinGW native/cross Windows compile
--enable-mingwce 启用MinGW本地/交叉winCE环境编译enable MinGW native/cross WinCE compile
--enable-amr_nb 启用amr_nb float音频编解码器|enable amr_nb float audio codec
--enable-amr_nb-fixed 启用fixed amr_nb codec | use fixed point for amr-nb codec
--cross-compile 假定使用了交叉编译 | assume a cross-compiler is used
--cc=CC 指定使用何种C编译器(默认gcc)use C compiler CC [gcc]
--make=MAKE 使用特定的make | use specified make [make]
--enable-dc1394 启用libdc1394、libraw1394抓取IIDC-1394(默认关闭)enable IIDC-1394 grabbing using libdc1394 and libraw1394 [default=no]
--enable-swscaler 启用计数器支持?(默认关闭)software scaler support [default=no]
--disable-audio-beos 禁用BeOS音频支持(默认启用)disable BeOS audio support [default=no]
--disable-v4l 禁用video4linux提取(默认启用)disable video4linux grabbing [default=no]
--extra-cflags=ECFLAGS 添加ECFLAGS到CFLAGS | add ECFLAGS to CFLAGS []
--extra-ldflags=ELDFLAGS 添加ELDFLAGS到LDFLAGS(默认-Wl,--as-needed)| add ELDFLAGS to LDFLAGS [ -Wl,--as-needed]
--extra-libs=ELIBS 添加ELIBS | add ELIBS []
--build-suffix=SUFFIX 为专用程序添加后缀 | suffix for application specific build []
--arch=ARCH 选择机器架构(默认x86)select architecture [x86]
--mandir=DIR 指定man page路径(默认prefix/man)install man page in DIR [PREFIX/man]
--enable-mp3lame 启用mp3编码libmp3lame(默认关闭)enable MP3 encoding via libmp3lame[default=no]
--enable-faac 启用faac支持libfaac(默认关闭)enable FAAC support via libfaac [default=no]
--enable-libgsm 启用GSM支持libgsm(默认关闭)enable GSM support via libgsm [default=no]
--cpu=CPU 选用最低的cpu(影响指令的选择,可以在老CPU上出错) | selects the minimum cpu required (affects instruction selection, may crash on older CPUs)
--powerpc-perf-enable 启用PPC上面的性能报告(需要启用PMC)enable performance report on PPC
--disable-v4l2 禁用video4linux2提取(默认启用)disable video4linux2 grabbing [default=no]
--disable-bktr 禁用bktr视频提取(默认启用)disable bktr video grabbing [default=no]
--enable-xvid 启用xvid支持xvidcore(默认关闭)enable XviD support via xvidcore [default=no]
--enable-x264 启用H.264编码(默认关闭)enable H.264 encoding via x264 [default=no]
--prefix=PREFIX 安装程序到指定目录(默认/usr/local)|install in PREFIX [/usr/local]
--libdir=DIR 安装库到指定目录(默认prefix/lib)|install libs in DIR [PREFIX/lib]
--enable-avisynth 允许读取AVISynth脚本本件(默认关闭)allow reading AVISynth script files [default=no]
--enable-gpl 允许使用GPL(默认关闭)allow use of GPL code, the resulting libav* and ffmpeg will be under GPL [default=no]
--shlibdir=DIR 指定共享库路径(默认prefix/lib)|install shared libs in DIR [PREFIX/lib]
--incdir=DIR 指定includes路径(默认prefix/include/ffmpeg)|install includes in DIR[PREFIX/include/ffmpeg]
--enable-a52 启用A52支持(默认关闭)enable GPLed A52 support [default=no]
--enable-a52bin 启用运行时打开liba52.so.0(默认关闭)open liba52.so.0 at runtime [default=no]
--enable-faad 启用faad支持libfaad(默认关闭)enable FAAD support via libfaad [default=no]
--enable-faadbin 启用faad运行时链接支持(默认关闭)build FAAD support with runtime linking[default=no]
--disable-iwmmxt 禁用iwmmxt | disable iwmmxt usage
--disable-altivec 禁用AltiVec | disable AltiVec usage
--disable-audio-oss 禁用OSS音频支持(默认启用)disable OSS audio support [default=no]
(requires enabling PMC)
--disable-mmx 禁用MMX | disable MMX usage
--disable-armv5te 禁用armv5te | disable armv5te usage
Advanced options (experts only): 高级选项参数(供专业人员使用)
--source-path=PATH 源码的路径(当前为/root/flv/ffmpeg)| path to source code [/root/flv/ffmpeg]
--cross-prefix=PREFIX 为编译工具指定路径 | use PREFIX for compilation tools []
--enable-shared 构建共享库(默认关闭)build shared librBiblioteka ries [default=no]
--disable-shared 禁止构建共享库(默认启用)do not build shared libraries [default=yes]