本文章是阅读《音视频开发进阶指南基于android与ios平台的实践》一书的学习笔记。 若要讲解音视频的开发,首先不得不提开源框架 FFmpeg。该开源框架为音视频开发者们提供了非常大的帮助,其也是全世界的音视频开发工程师都应该掌握的工具。 FFmpeg 是一套可以用来记录、处理数字音频、视频,并将其转换为流的开源框架,提供了录制、转换以及流化音视频的完整解决方案。 它的可移植性或者说跨平台特性非常强大,可以用在 Linux 服务器、PC (包括 Windows、Mac OS X 等)、移动端设备 (Android、iOS 等移动设备) 等平台。 名称中的 mpeg 来自视频编码标准 MPEG,而前缀 FF 是 Fast Forward 的首字母缩写。本章会从编译开始讲解,然后介绍命令行工具的使用,接着会介绍 FFmpeg 在代码层面提供给开发者的 API,最后会从源码的角度分析一下整个 FFmpeg 框架。 FFmpeg github 上已经有现成编译好的 android 库:https://github.com/xufuji456/FFmpegAndroid,简介如下: android 端基于 FFmpeg 库的使用,添加编译 ffmpeg、shine、mp3lame、x264 源码的参考脚本,目前音视频相关处理: 默认的编译会生成 4 个可执行文件和 8 个静态库。可执行文件包括用于转码、推流、Dump 媒体文件的 ffmpeg、用于播放媒体文件的ffplay、用于获取媒体文件信息的 ffprobe,以及作为简单流媒体服务器的 ffserver。8 个静态库其实就是 FFmpeg 的 8 个模块,具体包括如下内容: 如何为 FFmpeg 平台引入第三方编解码库呢?下面就以最常用的 LAME、X264、FDK-AAC 进行举例。前面的章节中已经介绍了这三个库在 Android 和 iOS 平台上的交叉编译,现在就假设已经交叉编译出了 LAME、X264、FDK-AAC 的静态库与头文件,并且在 FFmpeg 的源码目录下建立了 external-libs 目录,还在其中建立了 LAME、X264、FDK-AAC 三个目录,每个目录中的结构都包含了 include 和 lib两个目录,并且将编译出来的头文件和静态库文件分别都放到了这两个目录下面。 现在修改编译脚本如下: 新增 X264 编码器需要新增以下脚本: 新增 LAME 编码器需要新增以下脚本: 新增FDK-AAC编码器需要新增以下脚本: 可以按照自己的应用场景,把需要编译进来的第三方库以修改脚本文件的方式进行编译,然后以命令行模式或者以API调用的方式进行使用。 FFmpeg 中有 ffmpeg、ffprobe、ffplay以及 ffserver 等命令行工具,这边将重点介绍 ffmpeg、ffprobe 与 ffplay 这三个命令行工具,而ffserver 则是作为简单的流媒体服务器存在的,与客户端开发关系不大。 4.1 ffprobe
目录:
1. FFmpeg 的介绍
2. FFmpeg Android 编译库
3. FFmpeg 的结构
--enable-muxer=h264 --enable-encoder=libx264 --enable-libx264 --extra-cflags=”-Iexternal-libs/x264/include” --extra-ldflags=”-Lexternal-libs/x264/lib”
--enable-muxer=mp3 --enable-encoder=libmp3lame --enable-libmp3lame --extra-cflags=”-Iexternal-libs/lame/include” --extra-ldflags=”-Lexternal-libs/lame/lib”
--enable-encoder=libfdk_aac --enable-libfdk_aac --extra-cflags=”-Iexternal-libs/fdk-aac/include” --extra-ldflags=”-Lexternal-libs/fdk-aac/lib”
4. FFmpeg 命令行工具的使用
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算