计算机
类型
7.3
豆瓣评分
可以朗读
语音朗读
620千字
字数
2023-11-01
发行日期
展开全部
主编推荐语
FFmpeg详细介绍及API使用。
内容简介
本书详细介绍了开源音视频处理软件FFmpeg的使用,按照所讲述的内容及读者的不同层次,本书划分为上下两篇。
上篇为基础与参数详解,介绍了FFmpeg的基本组成部分、工具使用,以及封装、转码、流媒体、滤镜和设备操作。
下篇为API使用及开发,介绍了FFmpeg封装、编解码和滤镜部分的API使用操作,相关操作均以实例方式进行说明,包括新旧API的操作方法和异同,并给出了大量的API使用、自定义功能模块、基于FFmpeg的API开发自己的播放器的示例,以及其在实际开源软件中的应用等。
目录
- 版权信息
- 内容提要
- 推荐语
- 序
- 前言
- 服务与支持
- 上篇 基础与参数详解
- 第1章 多媒体基础
- 1.1 从现实世界到数字世界
- 1.1.1 颜色和图像
- 1.1.2 电影、电视和视频
- 1.1.3 音频
- 1.1.4 音视频封装、传输和未来
- 1.2 视频图像像素点的数据格式
- 1.2.1 图像的位深
- 1.2.2 FourCC
- 1.2.3 灰度模式表示
- 1.2.4 YUV色彩表示
- 1.2.5 RGB色彩表示
- 1.2.6 HSL与HSV色彩表示
- 1.3 视频逐行和隔行扫描、NTSC与PAL制式
- 1.3.1 逐行与隔行扫描
- 1.3.2 NTSC制式
- 1.3.3 PAL制式
- 1.4 帧率、PTS和DTS
- 1.5 图像分辨率与宽高比
- 1.6 图像的色彩空间
- 1.7 音频采样数据格式
- 1.7.1 声道
- 1.7.2 采样率
- 1.7.3 采样位深
- 1.7.4 带宽计算
- 1.8 小结
- 第2章 FFmpeg简介
- 2.1 FFmpeg的发展历史
- 2.2 FFmpeg的基本组成
- 2.2.1 封装/解封装模块AVFormat
- 2.2.2 编/解码模块AVCodec
- 2.2.3 滤镜模块AVFilter
- 2.2.4 设备模块AVDevice
- 2.2.5 图像转换模块swscale
- 2.2.6 音频转换模块swresample
- 2.2.7 编解码工具ffmpeg
- 2.2.8 播放器ffplay
- 2.2.9 多媒体分析器ffprobe
- 2.3 不同平台下的编译
- 2.3.1 Windows平台编译FFmpeg
- 2.3.2 Linux平台编译FFmpeg
- 2.3.3 macOS平台编译FFmpeg
- 2.4 FFmpeg特性的选择与定制
- 2.4.1 编码器支持
- 2.4.2 解码器支持
- 2.4.3 封装支持
- 2.4.4 解封装支持
- 2.4.5 通信协议支持
- 2.5 小结
- 第3章 FFmpeg工具使用基础
- 3.1 ffmpeg常用命令
- 3.1.1 封装转换
- 3.1.2 解码和编码
- 3.1.3 转码流程
- 3.2 ffprobe常用命令
- 3.2.1 ffprobe常用参数
- 3.2.2 ffprobe使用示例
- 3.3 ffplay常用命令
- 3.3.1 ffplay常用参数
- 3.3.2 ffplay高级参数
- 3.3.3 ffplay的数据可视化分析应用
- 3.3.4 ffplay快捷键
- 3.4 小结
- 第4章 封装与解封装
- 4.1 视频文件转MP4
- 4.1.1 MP4格式标准介绍
- 4.1.2 Fragment MP4与CMAF
- 4.1.3 MP4分析工具
- 4.1.4 MP4在FFmpeg中的Demuxer
- 4.1.5 MP4在FFmpeg中的Muxer
- 4.2 视频文件转FLV
- 4.2.1 FLV文件标准介绍
- 4.2.2 FLV Muxer参数说明
- 4.2.3 文件转FLV举例
- 4.2.4 生成带关键索引的FLV
- 4.2.5 FLV文件格式分析工具
- 4.3 视频文件转MPEG-TS
- 4.3.1 MPEG-TS格式简介
- 4.3.2 MPEG-TS Muxer参数说明
- 4.3.3 MPEG-TS格式分析工具
- 4.4 视频文件转HLS
- 4.4.1 HLS标准的M3U8介绍
- 4.4.2 HLS Muxer参数
- 4.4.3 HLS Muxer举例说明
- 4.5 视频文件切片
- 4.5.1 segment切片参数
- 4.5.2 segment切片举例
- 4.5.3 使用ss与t参数切片
- 4.6 视频文件的音视频流抽取
- 4.6.1 提取AAC音频流
- 4.6.2 提取H.264视频流
- 4.6.3 提取H.265视频流
- 4.7 系统资源使用情况
- 4.8 小结
- 第5章 编码与转码
- 5.1 软编码H.264
- 5.1.1 x264编码参数简介
- 5.1.2 H.264编码举例
- 5.2 硬件加速
- 5.2.1 基于OS的硬件加速方案简介
- 5.2.2 NVIDIA GPU硬编解码
- 5.2.3 Intel QSV硬编解码
- 5.2.4 Raspberry Pi硬编解码
- 5.2.5 macOS系统硬编解码
- 5.2.6 其他加速方案简介
- 5.3 输出MP3
- 5.3.1 MP3编码参数介绍
- 5.3.2 MP3的编码质量设置
- 5.3.3 平均码率编码ABR参数
- 5.4 输出AAC
- 5.4.1 AAC编码器操作
- 5.4.2 FDK-AAC
- 5.4.3 高质量AAC设置
- 5.4.4 AAC音频质量对比
- 5.5 系统资源使用情况
- 5.6 小结
- 第6章 流媒体技术
- 6.1 录制与发布RTMP流
- 6.1.1 RTMP参数说明
- 6.1.2 RTMP参数举例
- 6.2 录制与发布RTSP流
- 6.2.1 RTSP demuxer参数介绍
- 6.2.2 RTSP demuxer参数使用举例
- 6.2.3 RTSP demuxer/muxer的一些小说明
- 6.3 录制HTTP流
- 6.3.1 HTTP参数说明
- 6.3.2 HTTP参数举例
- 6.4 录制与发布UDP/TCP流
- 6.4.1 TCP与UDP参数
- 6.4.2 TCP/UDP参数使用举例
- 6.4.3 TCP/UDP使用小结
- 6.5 多路流输出
- 6.5.1 管道方式输出多路流
- 6.5.2 tee封装格式输出
- 6.5.3 tee协议输出多路流
- 6.6 DASH流输出
- 6.6.1 参数介绍
- 6.6.2 参数举例
- 6.7 HDS流输出
- 6.7.1 参数说明
- 6.7.2 HDS使用举例
- 6.8 小结
- 第7章 bitstream过滤器
- 7.1 aac_adtstoasc过滤器
- 7.1.1 ADTS格式
- 7.1.2 ASC格式
- 7.2 mp4toannexb过滤器
- 7.2.1 Annex B格式
- 7.2.2 AVCC格式
- 7.2.3 hevc_mp4toannexb/h264_mp4toannexb的使用
- 7.3 h264_metadata过滤器
- 7.3.1 h264_metadata参数说明
- 7.3.2 h264_metadata参数举例
- 7.3.3 其他Codec的metadata过滤器
- 7.4 其他常用bitstream过滤器
- 7.4.1 dump_extra
- 7.4.2 trace_headers
- 7.4.3 filter_units
- 7.5 小结
- 第8章 滤镜使用
- 8.1 滤镜表达式使用
- 8.2 滤镜描述格式
- 8.2.1 滤镜基本排列方式
- 8.2.2 时间内置变量
- 8.3 视频水印操作
- 8.3.1 文字水印示例
- 8.3.2 图片水印示例
- 8.4 画中画操作
- 8.5 视频多宫格处理
- 8.6 视频字幕操作
- 8.6.1 ASS字幕流写入视频流
- 8.6.2 ASS字幕写入封装容器
- 8.7 视频3D化处理
- 8.7.1 stereo3d处理3D视频
- 8.7.2 3D图像转换示例
- 8.8 视频截图操作
- 8.8.1 vframes参数截取一张图片
- 8.8.2 fps滤镜定时获得图片
- 8.9 音频流滤镜操作
- 8.9.1 双声道合并单声道
- 8.9.2 双声道提取
- 8.9.3 双声道转双音频流
- 8.9.4 单声道转双声道
- 8.9.5 两个音频源合并双声道
- 8.9.6 多个音频合并为多声道
- 8.10 音频音量探测
- 8.10.1 音频音量获得
- 8.10.2 绘制音频波形
- 8.11 生成测试元数据
- 8.11.1 生成音频测试流
- 8.11.2 生成视频测试流
- 8.12 音视频倍速处理
- 8.12.1 atempo音频倍速处理
- 8.12.2 setpts视频倍速处理
- 8.13 云剪辑常用技术
- 8.13.1 定格帧
- 8.13.2 透明视频兼容处理
- 8.13.3 隔行交错视频兼容处理
- 8.13.4 HDR视频兼容处理
- 8.13.5 雪碧图和WebVTT
- 8.13.6 缩略图
- 8.13.7 复杂项目渲染
- 8.13.8 色度抠图
- 8.13.9 蒙版抠图
- 8.13.10 调色
- 8.13.11 透明度调整
- 8.13.12 动态缩放
- 8.13.13 画质检测
- 8.13.14 滤镜动态调整
- 8.13.15 深度学习
- 8.14 小结
- 第9章 采集设备操作
- 9.1 Linux设备操作
- 9.1.1 查看设备列表
- 9.1.2 采集设备fbdev参数说明和使用
- 9.1.3 采集设备v4l2参数说明和使用
- 9.1.4 采集设备x11grab参数说明和使用
- 9.2 macOS设备操作
- 9.2.1 查看设备列表
- 9.2.2 设备采集举例
- 9.3 Windows设备采集
- 9.3.1 使用dshow采集音视频设备
- 9.3.2 使用vfwcap采集视频设备
- 9.3.3 使用gdigrab采集窗口
- 9.4 小结
- 下篇 API使用及开发
- 第10章 libavformat接口的使用
- 10.1 媒体流封装
- 10.2 媒体流解封装
- 10.3 文件转封装
- 10.4 视频截取
- 10.5 AVIO以及示例
- 10.6 AVPacket常用操作
- 10.7 小结
- 第11章 libavcodec接口的使用
- 11.1 旧接口的使用
- 11.1.1 视频解码旧接口
- 11.1.2 视频编码旧接口
- 11.1.3 音频解码旧接口
- 11.1.4 音频编码旧接口
- 11.2 新接口的使用
- 11.2.1 视频解码新接口
- 11.2.2 视频编码新接口
- 11.2.3 音频解码新接口
- 11.2.4 音频编码新接口
- 11.3 硬件加速的编解码
- 11.3.1 硬件加速解码
- 11.3.2 硬件加速编码
- 11.4 AVFrame操作
- 11.5 内存操作
- 11.6 小结
- 第12章 libavfilter接口的使用
- 12.1 Filter和FilterGraph简述
- 12.2 FFmpeg中内置的滤镜
- 12.2.1 音频滤镜
- 12.2.2 视频滤镜
- 12.3 libavfilter的API使用
- 12.4 使用滤镜给视频加Logo
- 12.5 小结
- 第13章 FFmpeg辅助库的使用
- 13.1 libavutil的dict与opt操作
- 13.2 libswscale的sws_scale图像转换
- 13.2.1 图像转换流程
- 13.2.2 代码实例
- 13.3 libswresample执行声音转换
- 13.3.1 声音转换流程
- 13.3.2 代码实例
- 13.4 小结
- 第14章 音视频播放器开发实例
- 14.1 播放器开发概述
- 14.2 SDL核心功能API介绍
- 14.2.1 初始化SDL库
- 14.2.2 图像渲染
- 14.3 SDL音频播放
- 14.3.1 SDL事件循环
- 14.3.2 SDL定时器
- 14.4 播放器解码和展示
- 14.4.1 FFmpegPlayerCtx
- 14.4.2 播放器设计
- 14.4.3 事件循环线程
- 14.4.4 demux线程
- 14.4.5 视频解码线程
- 14.4.6 音视频同步
- 14.4.7 音视频扩展
- 14.5 小结
- 第15章 FFmpeg在RTC中的实例解析
- 15.1 RTC的特点
- 15.1.1 什么是RTC
- 15.1.2 RTC媒体传输
- 15.2 FFmpeg在Chromium中的应用
- 15.2.1 FFmpeg在Chromium WebRTC中的应用
- 15.2.2 FFmpeg在Chromium中的其他应用
- 15.3 FFmpeg在FreeSWITCH中的应用
- 15.3.1 FreeSWITCH简介
- 15.3.2 FreeSWITCH的FFmpeg模块开发环境准备
- 15.3.3 FFmpeg初始化和加载
- 15.3.4 avcodec实例
- 15.3.5 avformat实例
- 15.3.6 其他
- 15.4 FFmpeg在BareSIP中的应用
- 15.4.1 AVCodec
- 15.4.2 AVFormat
- 15.4.3 AVFilter
- 15.5 小结
- 第16章 定制FFmpeg模块
- 16.1 添加AVFormat模块
- 16.1.1 book文件格式
- 16.1.2 添加文件
- 16.1.3 添加文件封装格式
- 16.1.4 添加文件解封装格式
- 16.2 添加AVCodec模块
- 16.2.1 book编解码算法定义
- 16.2.2 实现book编码
- 16.2.3 实现book解码
- 16.2.4 将编解码器注册到FFmpeg并加入编译工程
- 16.2.5 运行测试
- 16.3 添加AVFilter模块
- 16.3.1 添加基础滤镜
- 16.3.2 支持多线程图像处理
- 16.3.3 支持图像动态化的表达式
- 16.3.4 支持process_command
- 16.4 添加Protocol模块
- 16.4.1 添加新协议的消息结构
- 16.4.2 回调函数
- 16.4.3 编译
- 16.4.4 测试
- 16.5 小结
- 第17章 FFmpeg调试与测试
- 17.1 自身的调试选项
- 17.1.1 debug选项
- 17.1.2 DTS/PTS问题的排查
- 17.2 loglevel与report
- 17.2.1 使用loglevel
- 17.2.2 使用report
- 17.3 在调用库时的调试
- 17.3.1 基于日志
- 17.3.2 基于带调试信息库
- 17.4 给社区汇报Bug及提交补丁
- 17.4.1 代码风格
- 17.4.2 给FFmpeg贡献代码
- 17.5 小结
展开全部
出版方
人民邮电出版社
人民邮电出版社是工业和信息化部主管的大型专业出版社,成立于1953年10月1日。人民邮电出版社坚持“立足信息产业、面向现代社会、传播科学知识、服务科教兴国”,致力于通信、计算机、电子技术、教材、少儿、经管、摄影、集邮、旅游、心理学等领域的专业图书出版。