初识FFmpeg

若要讲解音视频的开发,首先不得不提的就是开源框架FFmpeg。该开源框架为音视频开发者们提供了非常强大的帮助,也是全世界的音频开发工程师都应该掌握的工具。ffmpeg是一套可以用来记录,处理数字音频,视频,并将其转换为流的开源框架,采用lpl或者GPL许可证,提供了录制,转换以及流化音频的完整解决方案。他的可移植性或者说跨平台特性非常强大,可以用在Linux服务器,PC,MAC,移动端设备等平台。名称中的mpeg来自视频编码标准MPEG,二前缀FF是Fast Forward 的首字母缩写。

1.1 FFmpeg的编译与命令行工具的使用

1.1.1 FFmpeg的编译

首先到FFmpeg官网下载稳定版本的FFmpeg源码,然后将下载的源码解压到一个目录中,FFmpeg与大部分GNU软件的编译方式类似,都是通过configure脚本来实现编译前定制的,这种方式允许用户在编译前对软件进行裁剪,同事通过对最终运行到的系统以及目标品台的配置来决定对某些模块设定合适的配置。configure脚本运行完毕之后,会生成config.mk和config.h这两个文件,分别作用到makefile和源代码的层次,由这两部分协同实现对编译选项的控制。

configure 命令提供了哪些选项:

用法:配置[选项]

选项:[描述后括号中的默认值]

帮助选项:

  --help打印此消息

  --quiet抑制显示信息输出

  --list-decoders显示所有可用的解码器

  --list-encoders显示所有可用的编码器

  --list-hwaccels显示所有可用的硬件加速器

  --list-demuxers显示所有可用的分路器

  --list-muxers显示所有可用的复用器

  --list-parsers显示所有可用的解析器

  --list-protocols显示所有可用的协议

  --list-bsfs显示所有可用的比特流过滤器

  --list-indevs显示所有可用的输入设备

  --list-outdevs显示所有可用的输出设备

  --list-filters显示所有可用的过滤器

标准选项:

  --logfile = FILE日志测试并输出到FILE [ffbuild / config.log]

  --disable-logging不记录配置调试信息

   - 如果生成任何配置警告,则-fatal-warnings将失败

  --prefix = PREFIX安装在PREFIX [/ usr / local]

  --bindir = DIR在DIR [PREFIX / bin]中安装二进制文件

  -datadir = DIR在DIR中安装数据文件[PREFIX / share / ffmpeg]

  --docdir = DIR中的DIR安装文档[PREFIX / share / doc / ffmpeg]

  --libdir = DIR在DIR [PREFIX / lib]中安装库

  --shlibdir = DIR在DIR [LIBDIR]中安装共享库

  --incdir = DIR安装包含在DIR [PREFIX / include]中

  -mandir = DIR在DIR安装手册页[PREFIX / share / man]

  --pkgconfigdir = DIR在DIR [LIBDIR / pkgconfig]中安装pkg-config文件

  --enable-rpath使用rpath允许在路径中安装库

                           不属于动态链接器搜索路径的一部分

                           链接程序时使用rpath(USE WITH CARE)

  --install-name-dir =已安装目标的DIR Darwin目录名

许可选项:

  --enable-gpl允许使用GPL代码,生成的库

                           和二进制文件将在GPL下[no]

  --enable-version3升级(L)GPL到版本3 [no]

  --enable-nonfree允许使用非自由代码,生成的库

                           和二进制文件将是不可分发的[不]

配置选项:

  --disable-static不构建静态库[no]

  --enable-shared构建共享库[no]

  --enable-small优化尺寸而不是速度

  --disable-runtime-cpudetect禁用在运行时检测CPU功能(较小的二进制)

  --enable-grey启用全灰度支持(较慢的颜色)

  --disable-swscale-alpha禁用swscale中的alpha通道支持

  --disable-all禁用构建组件,库和程序

  --disable-autodetect禁用自动检测到的外部库[no]

计划选项:

  --disable-programs不构建命令行程序

  --enable-ffmpeg禁用ffmpeg构建

  --enable-ffplay禁用ffplay构建

  --enable-ffprobe禁用ffprobe构建

文档选项:

  --disable-doc不构建文档

  --disable-htmlpages不构建HTML文档页面

  --disable-manpages不构建man文档页面

  --disable-podpages不构建POD文档页面

  --disable-txtpages不构建文本文档页面

组件选项:

  --disable-avdevice禁用libavdevice构建

  --disable-avcodec禁用libavcodec构建

  --disable-avformat禁用libavformat构建

  --disable-swresample禁用libswresample build

  --disable-swscale禁用libswscale构建

  --disable-postproc禁用libpostproc构建

  --disable-avfilter禁用libavfilter构建

  --enable-avresample启用libavresample build(不建议使用)[no]

  --disable-pthreads禁用pthreads [autodetect]

  --disable-w32threads禁用Win32线程[autodetect]

  --disable-os2threads禁用OS / 2线程[autodetect]

  --disable-network禁用网络支持[否]

  --disable-dct禁用DCT代码

  --disable-dwt禁用DWT代码

  --disable-error-resilience禁用错误恢复代码

  --disable-lsp禁用LSP代码

  --disable-lzo禁用LZO解码器代码

  --disable-mdct禁用MDCT代码

  --disable-rdft禁用RDFT代码

  --disable-fft禁用FFT代码

  --disable-faan禁用浮点AAN(I)DCT代码

  --disable-pixelutils禁用libavutil中的pixel utils

个别组件选项:

  --disable-everything禁用下面列出的所有组件

  --disable-encoder = NAME禁用编码器NAME

  --enable-encoder = NAME启用编码器NAME

  --disable-encoders禁用所有编码器

  --disable-decoder = NAME禁用解码器NAME

  --enable解码器= NAME

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,163评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,301评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,089评论 0 352
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,093评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,110评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,079评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,005评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,840评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,278评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,497评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,667评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,394评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,980评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,628评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,796评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,649评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,548评论 2 352

推荐阅读更多精彩内容