FFmpeg学习博客汇总from: cnblogs - 山上有风景
Posted 贺二公子
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了FFmpeg学习博客汇总from: cnblogs - 山上有风景相关的知识,希望对你有一定的参考价值。
文章目录
- FFmpeg学习(一)FFmpeg安装与测试
- FFmpeg学习(二)FFmpeg命令学习
- FFmpeg学习(三)音频基础
- FFmpeg学习(四)视频基础
- FFmpeg学习(五)H264结构
- FFmpeg学习(六)H264流媒体协议解析
- FFmpeg学习(七)流媒体服务器搭建
- FFmpeg学习(八)RTMP与FLV协议
FFmpeg学习(一)FFmpeg安装与测试
一:FFmpeg的下载
(一)git命令下载源码(太慢)
(二)官网下载源码:http://www.ffmpeg.org/download.html
(三)文件解压
(四)目录分析
二:FFmpeg配置与安装
(一)安装依赖库yasm、libx264、libx265(后面会用到)
(二)配置命令及安装(尽可能多配置,比如libfdk-aac后面会用于音频编解码)
(三)配置环境变量
(四)测试命令
(五)配置环境变量(使得直接使用ffmpeg命令)
FFmpeg学习(二)FFmpeg命令学习
一:FFmpeg音视频处理流程
二:FFmpeg命令基本分类
(一)基本信息查询命令
(二) 录制命令
(三)分解与复用
(四)处理原始数据命令
补充:音视频开发基础概述 - PCM、YUV、H264、常用软件介绍
(五)滤镜命令
(六)音视频裁剪
(七)图片/视频互转命令
(八)直播相关命令
(一)常见问题—推流失败
(二)常见问题—清晰度不高(推流)
FFmpeg学习(三)音频基础
一:音频入门
(一)声音三要素
(二)模数转换
(三)音频原始数据
(四)音频帧大小的计算(采样率和时间间隔的区别)
(五)PCM存储格式
(六)WAV header
二:音频处理流程
(一)直播客户端的处理流程
(二)音频数据的流转(格式的转换)
三:音频采集
(一)各平台音频采集方式
(二)FFMpeg采集音频方式(集成上面所有平台)
(三)FFmpeg编程采集音频
四:音频压缩
(一)音频有损压缩技术(消除冗余信息)
(二)音频无损压缩技术
(三)音频编码过程
(四)常见的音频编码器
五:AAC编码
(一)AAC编码器介绍
补充:音频一帧数据计算—假设音频采样率 = 8000,采样通道 = 2,位深度 = 8,采样间隔 = 20ms
(二)ADTS格式
六:音频重采样
(一)什么是音频重采样
(二)编程实现音频重采样
七:创建AAC编码器
(一)FFmpeg编码过程
(二)FFmpeg代码实现(重采样+编码为AAC)
FFmpeg学习(四)视频基础
一:视频入门
(一)视频定义(什么是视频)
(二)图像
(三)屏幕显示器
(四)码流的计算
(五)图像的显示(图像和显示器分辨率不一致情况)
二:YUV了解
(一)什么是YUV(有了RGB图像之后,为什么还需要YUV?)
(二)YUV4:2:0存储格式
(三)YUV命令行采集数据
(四)FFmpeg编程采集
补充:使用摄像头(借到了)
三:H264编码
(一)H264压缩码率
(二)GOP(Group of Pictures)
(三)I/P/B帧
补充:IDR帧和I帧的区别和联系
补充:帧与分组的关系(默认H264下)
补充:SPS与PPS
(四)H264压缩技术(一系列压缩技术集合)
(五)宏块—最基础知识点
四:I/P/B帧和音视频同步
(一)I/P/B帧
(二)PTS/DTS
(三)时间基
(四)ffmpeg内部时间基
(五)不同时间基的换算
五:H264压缩技术
(一)帧内压缩
(二)帧间压缩技术
(三)无损压缩
(四)H264编解码流程
FFmpeg学习(五)H264结构
一:H264码流结构
(一)H264码流分层
(二)码流基本概念:详细见https://www.cnblogs.com/ssyfj/p/14624498.html
二:Profile与Level (SPS参数)
(一)Profile(压缩特性)
(一)Level(支持的视频特性)
三:SPS其他重要参数:
(一)分辨率相关
(二)帧相关
四:PPS与slice header
(一)PPS参数
(二)slice header
五:H264分析工具
六:视频编码器(同FFmpeg学习(三)音频基础)
补充:编解码信息
(一)原数据转yuv420p格式(libx264只支持这个格式)
(二)yuv420p进行H264编码
七:X264参数(libx264库)
(一)预设值(X264本身按照不同目标为用户预设了一些值)
(二) 帧相关参数(参考帧、B帧数量…)
(三)码流的控制
(四)编码分析(宏块、编码相关分析)
(五)输出
(六)使用案例
FFmpeg学习(六)H264流媒体协议解析
一:H264了解(可跳过)
(一)H.264的主要目标
(二)名词解释(和下面没关系,可以忽略)
二:H264的格式
(一)AnnexB格式—用于实时播放
(二)AVCC—用于存储
三:RTP格式—用于网络发送
(一)RTP包头
(二)回顾NALU类型
(三)打包模式 : 拆包(1种) or 不拆包(2种)
参考文章:
FFmpeg学习(七)流媒体服务器搭建
一:音视频直播架构介绍
(一)直播产品种类
(二)泛娱乐化直播架构
(三)实时互动直播架构
(四)直播客户架构
(五)流媒体服务搭建介绍
二:本机搭建nginx RTMP服务
(一)下载资源
(二)RTMP环境搭建
(三)配置环境
(四)启动服务
(五)推/拉流测试
三:SRS流媒体服务
(一)SRS介绍
(二)单机部署SRS服务器
(三)RTMP中的URL与VHOST
(四)SRS集群部署
四:CDN了解
(一)CDN
(二)阿里云架构
FFmpeg学习(八)RTMP与FLV协议
一:RTMP协议
(一)RTMP创建流的基本流程
(二)RTMP协议的握手:https://blog.csdn.net/m0_37599645/article/details/116033040(字段含义)
(三)建立RTMP连接
(四)RTMP流中的创建
(五)推RTMP流
(六)拉RTMP流
(七)RTMP消息格式
(八)RTMP消息类型
二:FLV协议
(一)FLV header
(二)FLV file body
(三)FLV tags
(四)Audio tags
(五)Vedio tags
三:实战RTMP推流FLV
(一)安装rtmp库
(二)编程思路
(三)代码实现
(四)FFmpeg学习(七)流媒体服务器搭建
(五)测试
以上是关于FFmpeg学习博客汇总from: cnblogs - 山上有风景的主要内容,如果未能解决你的问题,请参考以下文章