FFmpeg主要模块

 

FFmpeg is a collection of libraries and tools to process multimedia content
such as audio, video, subtitles and related metadata.

## Libraries

* `libavcodec` provides implementation of a wider range of codecs.
* `libavformat` implements streaming protocols, container formats and basic I/O access.
* `libavutil` includes hashers, decompressors and miscellaneous utility functions.
* `libavfilter` provides means to alter decoded audio and video through a directed graph of connected filters.
* `libavdevice` provides an abstraction to access capture and playback devices.
* `libswresample` implements audio mixing and resampling routines.
* `libswscale` implements color conversion and scaling routines.

## Tools

* [ffmpeg](https://ffmpeg.org/ffmpeg.html) is a command line toolbox to
  manipulate, convert and stream multimedia content.
* [ffplay](https://ffmpeg.org/ffplay.html) is a minimalistic multimedia player.
* [ffprobe](https://ffmpeg.org/ffprobe.html) is a simple analysis tool to inspect
  multimedia content.
* Additional small tools such as `aviocat`, `ismindex` and `qt-faststart`.
 

1. libavformat:封装模块,封装与解封装

处理mp4/flv等文件封装格式与RTMP/RTSP/HLS等网络协议封装格式

2. libavcodec:编码模块,编码与解码

处理音频和视频编解码

3. libavfilter:滤镜模块,可以有多路输入与多路输出

4. libswscale:视频图像转换

5. libswresample:音频重采样

6. libavdevice:

7. libavutil:通用工具

首先ffmpeg库分为 6个库组成: 
(1)  libavformat :用于各种音视频封装格式的生成和解析,包括获取编解码所需信
息以生成编解码上下文结构和读取音视频帧等功能; 
(2)  libavcodec :用于各种类型声音/图像编解码; 
(3)  libavutil :包含一些公共的工具函数; 
(4)  libswscale :用于视频场景比例缩放、色彩映射转换; 
(5)  libavfilter: 用于后期效果处理,比如添加水印等; 
(6)  libavdevice:用于视频源的获取; 
上面6个库相互协作完成了下面的3个示例程序: 
(1)ffmpeg :该项目提供的一个工具,可用于格式转换、解码或电视卡即时编码等; 
(2)ffsever :一个  HTTP  多媒体即时广播串流服务器; 
(3)ffplay :是一个简单的播放器,使用 ffmpeg  库解析和解码,通过SDL显示; 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
适合fresh man上手 ffmpeg 库。 目录 ------------------------- 目录 第一章 多媒体概念介绍 6 1.1 视频格式 6 1.1.1 常见格式 6 1.2 音频格式 8 1.2.1 常见格式 9 1.2.2 比较 14 1.3 字幕格式 14 1.3.1 外挂字幕与内嵌字幕的阐述 14 1.3.2 外挂字幕视频与内嵌字幕视频的画面比较 15 1.3.3 外挂字幕的三种格式 15 1.4 采集录制和播放渲染 15 1.4.1 视频采集 15 1.4.2 视频录制 16 1.4.3 视频渲染 16 1.5 编解码器 18 1.6 容器和协议 18 1.6.1 容器格式和编码格式 18 1.6.2 协议 24 1.6.2.1 视频协议 25 1.6.2.2 音频协议 25 1.6.2.3 上层通讯协议 25 1.7 常用概念介绍 26 1.7.1 硬解 26 1.7.2 IBP 帧 26 1.7.3 DTS 和PTS 30 1.7.4 分辨率 30 1.7.5 码率 30 1.7.6 帧率 30 1.7.7 RGB 和YUV 30 1.7.8 实时和非实时 30 1.7.9 复合视频和 s-video 31 1.7.10 硬件加速 31 1.7.11 FFmpeg Device 31 第二章 FFmpeg 框架 32 2.1 FFmpeg 概述 32 2.1.1 简介 32 2.1.2 功能 32 2.1.3 模块组成 33 2.1.4 命令集 33 2.2 媒体播放器三大底层框架 35 第三章 编译及简单应用 39 3.1 FFmpeg 库编译和入门介绍 41 39 3.2 流媒体数据流程讲解 40 3.3 简单应用 42 3.4 SDL( Simple Direct Layer) 45 3.4.1 SDL 显示视频 45 3.4.2 SDL 显示音频 46 3.5 ffmpeg 程序的使用(ffmpeg.exe,ffplay.exe,ffprobe.exe) 46 3.5.1 ffmpeg.exe 46 3.5.2 ffplay.exe 46 3.5.3 ffprobe.exe 46 第四章 数据结构 50 4.1 AVCodec 结构体 51 4.2 AVCodecContext 结构体 52 4.3 AVInputFormat 结构体 53 4.4 AVFormatContext 结构体 62 4.5 MovContext 结构体 63 4.6 URLProtocol 结构体 63 4.7 URLContext 结构体 64 4.8 AVIOContext 结构体(老版本为:ByteIOContext) 64 4.9 AVStream 结构体 65 4.10 MOVStreamContext 结 构体 66 4.11 AVPacket 结 构体 67 4.12 AVPacketList 结 构体 67 4.13 AVFrame 结构体 53 第五章 重要模块 68 5.1 libavutil 公共模块 68 1 文件列表 68 2 common.h 文件 68 3 bswap.h 文件 70 4 rational.h 文件 71 5 mathematics.h 文件 71 6 avutil.h 文件 72 5.2 libavcodec 编解码模块 73 1 文件列表 73 2 avcodec.h 文件 74 3 allcodec.c 文件 78 4 dsputil.h 文件 79 5 dsputil.c 文件 79 6 utils_codec.c 文件 80 7 imgconvert_template.h 文件 90 8 imgconvert.c 文件 110 9 msrle.c 文件 152 10 turespeech_data.h 文件 159 11 turespeech.c 文件 162 5.3 libavformat 容器模块 171 1 文件列表 171 2 avformat.h 文件 172 3 allformat.c 文件 177 4 cutils.c 文件 178 5 file.c 文件 179 6 avio.h 文件 182 7 avio.c 文件 184 8 aviobuf.c 文件 188 9 utils_format.c 文件 197 10 avidec.c 文件 208 5.4 libswscale 视频色彩空间转换 230 5.5 libswresample 音频重采样 230 5.6 libavfilter 音视频滤器 230 5.7 libavdevice 设备输入和输出容器 230 5.8 libpostproc 视频后期处理 230 第六章 播放器 230 6.1 视频播放器 230 6.1.1 ffmpeg 库的配置 230 6.1.2 一个简单的视频播放器 231 6.2 音频播放器 234 6.3 一个完整的播放器--ffplay 240 6.3.1 ffplay 流程图 240 6.3.2 ffplay 源码剖析 240 第七章 应用开发 262 7.1 ffmpeg 库的使用:编码 262 第八章 关键函数介绍 267 8.1 avformat_open_input 267 8.2 avcodec_register_all() 268 8.3 av_read_frame() 269 8.4 avcodec_decode_video2() 270 8.5 transcode_init() 270 8.6 transcode() 280 第九章 ffmpeg 相关工程 288 9.1 ffdshow 288 ffdshow 源代码分析 1 : 整体结构 288 ffdshow 源代码分析 2: 位图覆盖滤镜(对话框部分 Dialog) 290 ffdshow 源代码分析 3: 位图覆盖滤镜(设置部分Settings) 297 ffdshow 源代码分析 4: 位图覆盖滤镜(滤镜部分Filter) 301 ffdshow 源代码分析 5: 位图覆盖滤镜(总结) 306 ffdshow 源代码分析 6: 对解码器的 dll 的封装(libavcodec) 306 ffdshow 源代码分析 8: 视频解码器类(TvideoCodecDec) 328 ffdshow 源代码分析 9: 编解码器有关类的总结 335 9.2 LAV filters 340 LAV Filter 源代码分析 1: 总体结构 340 LAV Filter 源代码分析 2: LAV Splitter 341 LAV Filter 源代码分析 3: LAV Video (1) 364 LAV Filter 源代码分析 4: LAV Video (2) 382 9.3 MPlayer 408 9.3.1 Mplayer 支持的格式 408 9.3.2 Mplayer 中头文件的功能分析 408 9.3.3 MPlayer.main 主流程简要说明 408 9.3.4 Mplayer 源码分析 409 第十章 开发实例 416 第十一章 mp4 文件封装协议分析 416 11.1 概述 416 11.2 mp4 的物理结构 416 11.3 数据的组织结构 417 11.4 mp4 的时间结构 417 11.5 文件结构分析 418 11.5.1 File Type Box(ftyp) 418 11.5.2 Movie Box(moov) 418 第十二章 flv 文件格式分析 437 12.1 概述 437 12.2 文件总体结构 437 12.3 文件结构分析 438 12.3.1 flv 文件头的结构 438 12.3.2 body 主体结构 439 附录A:常见问题 444 1 ffmpeg 从内存中读取数据 444 2 MFC 中使用SDL 播放音频没有声音的解决方法 444 附录B:经典代码示例 445 附录 c:ffmpeg 参数中文详细解释 456 附录D:ffplay 的快捷键以及选项 458 附录E: ffmpeg 处理 rtmp 流媒体 459
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值