FFmpeg学习博客汇总from: cnblogs - 山上有风景

Posted 贺二公子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了FFmpeg学习博客汇总from: cnblogs - 山上有风景相关的知识,希望对你有一定的参考价值。

文章目录

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 - 山上有风景的主要内容,如果未能解决你的问题,请参考以下文章

机器学习大神博客汇总

机器学习知识点汇总

计算机视觉入门及资料汇总

音视频基础

Winform学习知识汇总

Alpha冲刺阶段博客汇总