展开全部

主编推荐语

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日。人民邮电出版社坚持“立足信息产业、面向现代社会、传播科学知识、服务科教兴国”,致力于通信、计算机、电子技术、教材、少儿、经管、摄影、集邮、旅游、心理学等领域的专业图书出版。