书籍详情

FFmpeg入门详解:命令行与音视频特效原理及应用

FFmpeg入门详解:命令行与音视频特效原理及应用

作者:梅会东

出版社:清华大学出版社

出版时间:2023-06-01

ISBN:9787302617778

定价:¥89.00

购买这本书可以去
内容简介
  本书系统讲解了FFmpeg命令行及音视频特效的基础理论及应用,包括详细的FFmpeg命令行参数选项,包括音视频转封装、转码、水印、字幕等,包括各种音视频特效(倍速、倒放、旋转、模糊、画中画、九宫格、浮雕和字幕效果等),包括流媒体方方面面(RTSP、RTMP、HLS)等直播功能,包括音视频采集,以及各种开发语言(C、Java、Python)调用FFmepg命令行等。本书为FFmpeg音视频流媒体系列的第三部。 全书共分为12章:系统讲解了FFmpeg命令行的基础知识、转封装与转码、图片水印与文字跑马灯、各种音视频特效、流媒体直播功能、音视频采集功能,以及各种开发语言调用FFmepg命令行等。 书中包含大量的示例,图文并茂,争取让一个音视频流媒体领域的读者真正入门,从此开启流媒体直播编程的大门。本书知识体系比较完整,侧重FFmpeg命令行及音视频特效的原理讲解及应用。建议读者先学习FFmpeg音视频流媒体系列的本《FFmpeg入门详解——音视频原理及应用》和第二本《FFmpeg入门详解——流媒体直播原理及应用》,然后来学习本书。本书的讲解过程由浅入深,让读者在不知不觉中学会了FFmpeg命令行的基础知识,并能动手实现各种转码功能、音视频特效处理、并能实现流媒体直播功能。 本书可作为FFmpeg命令行应用及音视频特效处理方向的入门书籍,也可作为高年级本科生和研究生的学习参考书籍。
作者简介
  梅会东, 一个在音视频领域摸爬滚打二十多年的老程序员、培训师、作者,精通多种IT技术。参与设计和开发了多个音视频项目,包括播放器、视频服务器、全套直播系统等。精通多个音视频开源库项目,包括FFmpeg、Live555、SRS、Darwin、Nginx、WebRTC、ZLMediaKit等。 目前专注于音视频流媒体的教育传播事业,为多家大型国企单位培训音视频专业知识。
目录
第1章FFmpeg入门简介
1.1FFmpeg简介
1.1.1FFmpeg官网介绍
1.1.2FFmpeg耻辱柱
1.1.3Libav政变
1.1.4开源许可协议简介
1.2FFmpeg安装
1.2.1在Windows上安装FFmpeg
1.2.2在Linux上安装FFmpeg
1.2.3在macOS上安装FFmpeg
1.3FFmpeg项目组成
1.3.1工具
1.3.2SDK
1.3.3源码
1.4FFmpeg常用功能
1.5FFmpeg框架与处理流程
1.5.1FFmpeg的处理流程
1.5.2FFmpeg的关键结构体
第2章FFmpeg命令行初体验
2.1FFmpeg命令行简介
2.2音视频格式转换
2.3视频缩略图
2.4图片拼接成视频
2.5ffplay视频播放
2.6ffprobe获取视频信息
2.7Y4M视频文件格式
2.7.1Y4M格式简介
2.7.2Y4M格式规范
2.8PAL与NTSC
2.8.1制式
2.8.2PAL制式
2.8.3NTSC制式
第3章FFmpeg三大常用工具及应用选项详解
3.1ffmpeg工具简介
3.2ffplay工具简介
3.2.1ffplay常用参数
3.2.2ffplay高级参数
3.2.3ffplay的数据可视化分析应用
3.2.4VLC作为RTSP流媒体服务器
3.3ffprobe工具简介
3.3.1show_packets
3.3.2show_format
3.3.3show_frames
3.3.4show_streams
3.3.5print_format
3.3.6select_streams
3.4通用选项
3.5视频选项
3.6音频选项
3.7字幕选项
3.8高级选项
3.9map详解
3.10ffmpeg h详解
3.11FFmpeg其他选项
3.11.1formats: 支持的文件格式
3.11.2muxers: 支持的封装器格式
3.11.3demuxers: 支持的解封装器格式
3.11.4devices: 支持的设备
3.11.5encoders: 支持的编码器格式
3.11.6decoders: 支持的解码器格式
3.11.7protocols: 支持的协议格式
3.11.8hwaccels: 支持的硬件加速格式
3.11.9layouts: 支持的声道模式
3.11.10sample_fmts: 支持的采样格式
3.11.11colors: 支持的颜色名称
3.11.12pix_fmts: 支持的像素格式
第4章FFmpeg命令行实现音视频转封装
4.1视频容器及封装与解封装简介
4.2音视频流的分离与合成
4.2.1从MP4文件中提取音频流和视频流
4.2.2h264_mp4toannexb
4.2.3根据音频流和视频流合成MP4文件
4.2.4将多个MP4文件合并成一个MP4文件
4.3封装格式之间的互转
4.3.1MP4转换为FLV
4.3.2MP4转换为AVI
4.3.3其他格式转换
4.3.4AVI/FLV/TS格式简介
4.4MP4格式的faststart快速播放模式
4.4.1MP4格式简介
4.4.2faststart参数介绍
第5章FFmpeg命令行实现音视频转码
5.1音视频编解码及转码简介
5.1.1视频编解码简介
5.1.2音频编解码简介
5.1.3音视频转码简介
5.2提取音视频的YUV/PCM
5.2.1利用FFmpeg提取视频的YUV像素数据
5.2.2YUV444/YUV422/YUV420
5.2.3利用FFmpeg提取视频的RGB像素数据
5.2.4RGB16/RGB24/RGB32
5.2.5利用FFmpeg提取音频的PCM
5.2.6PCM数据与WAV格式
5.3音频编解码简介及命令行案例
5.3.1PCM编码为AAC
5.3.2AAC转码为MP3
5.3.3AAC转码为AC3
5.4视频编解码简介及命令行案例
5.4.1YUV编码为H.264
5.4.2MP4格式转码为FLV格式
5.4.3MP4格式转码为AVI格式
5.4.4MP4格式转码为TS格式
5.4.5其他格式之间互转
5.5控制音频的声道数、采样率及采样格式
5.5.1单声道与立体声互转
5.5.2采样率转换
5.5.3采样格式转换及音频重采样
5.6控制视频的帧率、码率及分辨率
5.6.1控制视频的帧率
5.6.2控制视频的码率及分辨率
5.6.3控制视频的GOP
5.6.4视频GOP简介
5.7libx264的常用编码选项及应用案例
5.7.1FFmpeg中libx264的选项
5.7.2x264.exe中的选项名与选项值
5.8libx265的常用编码选项及应用案例
5.9FFmpeg的GPU硬件加速原理及应用案例
第6章FFmpeg命令行实现图片水印及文字跑马灯
6.1FFmpeg的滤镜技术 
6.2图片水印及位置控制 
6.2.1vf的movie滤镜
6.2.2vf的movie中的路径
6.2.3vf的delogo去掉水印
6.3文字水印及位置控制
6.3.1vf的drawtext添加固定文字水印
6.3.2vf的drawtext控制文字颜色及大小
6.3.3查看drawtext的参数
6.3.4drawtext的文字内容来源
6.3.5drawtext的主要参数
6.3.6vf的drawtext添加系统时间水印
6.4文字跑马灯案例实战
6.5FFmpeg的overlay技术简介 
6.5.1overlay技术简介
6.5.2filter_complex overlay添加水印
6.6控制文字的大小和颜色并解决中文乱码问题
6.6.1vf的drawtext添加中文水印
6.6.2vf的drawtext解决中文乱码问题
6.6.3vf的drawtext中使用路径
第7章FFmpeg命令行实现音视频特效及复杂滤镜应用
7.1复杂滤镜filter_complex简介
7.1.1简单滤镜和复杂滤镜案例入门
7.1.2滤镜图、滤镜链、滤镜的关系
7.1.3简单滤镜和复杂滤镜的区别
7.1.4流和滤镜的结合使用
7.2视频缩放及scale参数详解
7.2.1使用scale实现缩放
7.2.2使用scale保持宽高比缩放
7.2.3使用FFmpeg的内置变量进行缩放
7.2.4使用min或max函数进行缩放
7.2.5使用force_original_aspect_ratio进行缩放
7.2.6使用pad选项填充黑边
7.2.7使用scale的指定算法进行缩放
7.2.8scale参数说明
7.3音视频倍速
7.3.1视频倍速
7.3.2音频倍速
7.3.3音视频同时倍速
7.3.4使用ffplay倍速播放
7.4视频裁剪及crop参数详解
7.4.1使用crop实现裁剪
7.4.2crop参数说明
7.4.3复杂滤镜nullsrc、crop、overlay结合使用
7.4.4nullsrc参数说明
7.4.5使用nullsrc生成一段空屏视频
7.4.6使用color滤镜生成黑色背景的视频
7.5视频倒放
7.6视频翻转与旋转
7.7视频填充pad滤镜
7.8视频倒影及镜面水面特效
7.9画中画
7.9.1画中画技术简介
7.9.2使用overlay实现画中画
7.9.3使用overlay与scale的结合实现画中画
7.9.4画中画的灵活位置
7.10九宫格
7.10.1九宫格简介
7.10.2使用FFmpeg实现“四宫格”
7.10.3实现“四宫格”的任意顺序
7.10.4使用FFmpeg实现“九宫格”
7.10.5实现的视频“四宫格”
7.11淡入淡出效果
7.11.1fade滤镜的参数说明
7.11.2fade滤镜的用法
7.11.3fade滤镜的案例
7.12黑白效果
7.13模糊处理
7.14视频颤抖
7.15浮雕效果
7.15.1geq滤镜参数简介
7.15.2geq滤镜的官网介绍
7.16静音音频和黑幕视频
7.16.1生成静音音频
7.16.2生成纯色视频
7.17软字幕和硬字幕
7.17.1字幕简介
7.17.2字幕处理
第8章FFmpeg命令行实现流媒体功能及直播应用
8.1RTSP简介及直播流
8.1.1RTSP简介
8.1.2VLC作为RTSP流媒体服务器
8.1.3FFmpeg实现RTSP直播拉流
8.1.4RTSP交互流程分析
8.1.5VLC使用摄像头模拟RTSP直播流
8.2RTP简介及直播流
8.2.1RTP简介
8.2.2VLC作为RTP流媒体服务器
8.2.3FFmpeg实现RTP直播拉流
8.3HTTP简介及直播流
8.3.1HTTP简介
8.3.2HTTP流媒体
8.3.3VLC作为HTTP流媒体服务器
8.3.4FFmpeg实现HTTP直播拉流
8.4UDP简介及直播流
8.4.1UDP简介
8.4.2VLC作为UDP流媒体服务器
8.4.3FFmpeg实现UDP直播拉流
8.5流媒体服务器的搭建
8.6RTMP直播推流与拉流
8.6.1RTMP简介
8.6.2直播推流与拉流
8.6.3使用FFmpeg实现RTMP直播推流
8.6.4使用ffplay播放RTMP直播流
8.7HLS与M3U8直播功能
8.7.1NginxHTTPFLV生成HLS切片
8.7.2M3U8简介
8.7.3使用ffplay播放HLS直播流
第9章FFmpeg命令行实现音视频设备采集
9.1FFmpeg枚举设备
9.2FFmpeg采集本地话筒与摄像头数据
9.3FFmpeg采集网络摄像头获取的数据并录制
9.4FFmpeg采集摄像头与话筒获取的数据并直播
9.5Linux系统中FFmpeg采集摄像头获取的数据
9.5.1VMware中的Ubuntu连接USB摄像头
9.5.2FFmpeg采集USB摄像头获取的数据
9.6FFmpeg录制计算机屏幕
9.6.1Windows系统中FFmpeg录屏
9.6.2Linux系统中FFmpeg录屏
第10章FFmpeg命令行在Linux系统中的应用
10.1使用FFmpeg实现音视频转码
10.2使用ffplay和ffprobe
10.3使用FFmpeg实现文字水印及跑马灯
10.4使用FFmpeg实现音视频特效
10.5使用FFmpeg实现流媒体及直播功能
第11章体验FFmpeg 5.0
11.1安装FFmpeg 5.0
11.1.1FFmpeg 5.0的官网简介
11.1.2FFmpeg 5.0的安装
11.2使用FFmpeg 5.0实现音视频转码
11.3使用FFmpeg 5.0实现文字跑马灯
11.4使用FFmpeg 5.0实现音视频特效
11.5使用FFmpeg 5.0实现流媒体及直播功能
第12章各种开发语言调用FFmpeg命令行
12.1C 调用FFmpeg命令行
12.1.1C 调用FFmpeg命令行的跨平台通用代码
12.1.2Visual Studio调用FFmpeg命令行
12.1.3Qt调用FFmpeg命令行
12.1.4MinGW调用FFmpeg命令行
12.1.5Linux系统下C 调用FFmpeg命令行
12.1.6popen与pclose
12.2Java调用FFmpeg命令行
12.3Python调用FFmpeg命令行
 
猜您喜欢

读书导航