vs2019快捷命令键

vs2019快捷命令键ffmpeg 简介FFmpeg 是一款免费的、开源的跨平台音视频处理工具,旨在提供高质量、高速度的多媒体处理功能,FFmpeg 设计以流式处理音视频。FFmpeg 目前已成为业界公认的最强大、最全面的音视频处理工具之一,得到了广泛的应用。绝大多数的音视频相关应用和工

ffmpeg 简介

FFmpeg 是一款免费的、开源的跨平台音视频处理工具,旨在提供高质量、高速度的多媒体处理功能,FFmpeg 设计以流式处理音视频。

FFmpeg 目前已成为业界公认的最强大、最全面的音视频处理工具之一,得到了广泛的应用。绝大多数的音视频相关应用和工具库,都直接或间接地引用了 FFmpeg。

FFmpeg 的开发始于2000年,最初由法国程序员 Fabrice Bellard 发起,后来有越来越多的开源贡献者参与。目前 FFmpeg 由一支由多名开发者组成的团队维护和开发。

音视频开发要掌握图像,视频,音频的基础知识,并学会如何对他们进行采集,渲染,处理,传输等一系列开发和应用。

采集解决了数据从哪里来的问题,渲染解决的是数据怎么崭新的问题,处理解决的是数据怎么加工的问题,传输解决的是数据怎么共享的问题。这里的每一个门类都可以深挖,衍生出一 个个充满技术挑战的话题。

C++音视频学习资料免费获取方法:关注音视频开发T哥,点击「链接」即可免费获取2023年最新C++音视频开发进阶独家免费学习大礼包!

1、音视频基础

1.1 音频基础知识

  1. 如何采集声音-模数转换原理
  1. 为什么高品质音频采样率>=44.1Khz
  1. 什么是PCM
  1. 一个采样点用多少位表示
  1. 采样值用整数还是浮点数表示
  1. 音量大小和采样值大关系
  1. 多少个采样点作为一帧数据
  1. 左右通道的采样数据如何排列
  1. 什么是PCM(脉冲编码调制)
  1. 音频编码原理

1.2 视频基础知识

  1. RGB彩色原理
  1. 为什么需要YUV格式
  1. 什么是像素
  1. 分辨率、帧率、码率
  1. YUV数据存储格式区别
  1. YUV内存对齐问题
  1. 为什么画面显示绿屏
  1. H264编码原理
  1. H264 I P B帧的关系

1.3 解复用基础知识

  1. 什么是解复用,比如MP4格式
  1. 为什么需要不同的复用格式MP4/FLV/TS
  1. 常见的复用格式MP4/FLV/TS

1.4 FFmpeg6.0开发环境搭建

  1. Windows、Ubuntu、MAC三大平台
  1. QT安装
  1. FFmpeg命令行环境
  1. FFmpeg API环境
  1. FFmpeg编译
  1. vs2019安装(win平台)

1.5 音视频开发常用工具

  1. MediaInfo,分析视频文件
  1. VLC播放器,播放测试
  1. EasyICE,分析TS流
  1. flvAnalyser,分析FLV
  1. mp4box,分析mp4
  1. audacity,分析音频PCM
  1. Elecard_streamEye,分析H264
  1. 海康YUVPlayer,分析YUV

2、FFmpeg6.0基石

2.1 FFmpeg命令

  1. 音频PCM/AAC文件提取
  1. 视频YUV/H264文件提取
  1. 解复用、复用
  1. 音视频录制
  1. 视频裁剪和合并
  1. 图片/视频转换
  1. 直播推流和拉流
  1. 水印/画中画/九宫格滤镜

注:掌握FFmpeg的目的: 1.快速掌握FFmpeg能做什么; 2.加深对音视频的理解。

2.2 SDL跨平台多媒体开发库实战

  1. SDL环境搭建
  1. SDL事件处理
  1. SDL线程处理
  1. 视频YUV画面渲染
  1. 音频PCM声音输出

注:SDL兼容Win、Ubuntu、Mac三大平台, 主要用于后续项目的画面显示和声音输出

2.3 FFmpeg基石精讲

  1. FFmpeg框架
  1. FFmpeg内存引用计数模型
  1. 解复用相关AVFormat XXX等
  1. 编解码相关AVCodec XXX等
  1. 压缩数据AVPacket
  1. 未压缩数据AVFrame
  1. FFmpeg面向对象思想
  1. Packet/Frame数据零拷贝

注:目的熟悉FFmpeg常用结构体和函数接口

2.4 FFmpeg音视频解复用+解码

  1. 解复用流程
  1. 音频解码流程
  1. 视频解码流程
  1. FLV封装格式分析
  1. MP4封装格式分析
  1. FLV和MP4 seek有什么区别
  1. 为什么FLV格式能用于直播
  1. 为什么MP4不能用于直播
  1. MP4能否用来做点播
  1. AAC ADTS分析
  1. H264 NALU分析
  1. AVIO内存输入模式
  1. 音频重采样实战
  1. 重采样后的数据播放时长是否一致
  1. 重采样后PTS如何表示
  1. 视频解码后YUV内存对齐问题
  1. 音频解码后PCM排列格式问题
  1. 硬件解码dxva2/nvdec/cuvid/qsv
  1. 硬件gpu数据转移到cpu
  1. H265解码

注:FFmpeg API学习:视频解复用 -> 解码 -> 编码 -> 复用合成视频

2.5 FFmpeg音视频编码+复用合成视频

  1. AAC音频编码
  1. H264视频编码
  1. PCM+YUV复用合成MP4/FLV
  1. H264编码原理
  1. IDR帧和I帧区别
  1. 动态修改编码码率
  1. GOP间隔参考值
  1. 复用合成MP4音视频不同步问题
  1. 编码、复用timebase问题
  1. MP4合成IOS不能播放问题
  1. 重采样后PTS如何表示
  1. 视频编码YUV内存对齐问题
  1. 硬件编码dxva2/nvenc/cuvid/qsv
  1. H265编码原理
  1. H264、H265编码互转

3、FFmpeg6.0进阶

3.1 FFmpeg过滤器

  1. FFmpeg过滤chain框架
  1. 音频过滤器框架
  1. 视频过滤器框架
  1. 多路音频混音amix
  1. 视频水印watermark
  1. 视频区域裁剪和翻转
  1. 视频添加logo

注: filter在视频剪辑领域应用广泛。

3.2 ffplay播放器

  1. 掌握ffplay.c的意义
  1. ffplay框架分析
  1. 解复用线程
  1. 音频解码线程
  1. 视频解码线程
  1. 声音输出回调
  1. 画面渲染时间间隔
  1. 音频重采样
  1. 画面尺寸格式变换
  1. 音频、视频、外部时钟同步区别
  1. 以视频为基准时音频重采样补偿
  1. 音量静音、调节大小的本质
  1. 音视频packet队列大小限制
  1. 音视频packet队列线程安全
  1. 音视频frame队列大小限制
  1. 音视频frame队列线程安全
  1. 暂停、播放实现机制
  1. seek播放导致的画面卡住问题
  1. seek播放数据队列、同步时钟处理
  1. 如何做到逐帧播放
  1. 播放器退出的流程要点

注: ffplay.c是ffplay命令的源码,掌握ffplay 对于我们自己开发播放器有事半功倍的效果。

4、FFmpeg6.0流媒体项目实战

4.1 FFmpeg+QT播放器

1.开源播放器分析

  1. 自研框架分析
  1. 播放器模块划分
  1. 解复用模块
  1. 音视频解码
  1. 播放器控制
  1. 音视频同步
  1. 软件解码+硬件解码
  1. 音量控制
  1. 变速播放
  1. 拖动跳转播放
  1. 画面亮度、饱和度调节
  1. 画面4:3 16:9切换
  1. 码流信息分析
  1. 画面旋转、翻转
  1. 支持截屏

项目意义:掌握播放器的开发,包括播放器框架分析、 模块设计、队列设计、音视频同步、变速、拖动播放 等核心机制。

4.2 FFmpeg RTMP录制+推流项目

  1. RTMP协议简介
  1. 录制+推流框架分析
  1. 麦克风、系统声音捕获
  1. 声音捕获延迟分析和解决
  1. 摄像头、屏幕画面捕获
  1. 画面捕获延迟分析和解决
  1. 音频重采样
  1. 视频scale
  1. AAC编码器封装
  1. H264编码器封装
  1. 音频编码参数优化
  1. 视频编码画质/CPU/码率/延迟优化
  1. 音频、视频采集时如何设置时间戳
  1. 采集-编码-推流时间戳转换
  1. 将音频、视频保存为MP4文件
  1. 采集-编码-保存mp4时间戳转换
  1. 支持推流画面预览
  1. 如何支持H265推流
  1. 如何支持麦克风和系统声音混音
  1. 实现音频采集降噪
  1. RTMP推流是否会导致延迟
  1. RTMP推流如何动态调整码率
  1. RTMP推流如何动态调整帧率
  1. Web端能否拉取RTMP推流

项目意义: 本项目推流模块采用FFmpeg API,不需要深入理解 RTMP协议仍然能实现推流直播。 掌握推流框架和视频录制框架,包括音视频采集、模块划分、 音视频同步、编码优化、推流延迟等核心技术。

4.3 FFmpeg RTMP拉流+录像项目

  1. RTMP协议简介
  1. 拉流+录像框架分析
  1. 拉流模块封装
  1. AAC解码模块封装
  1. H264解码模块封装
  1. 包队列设计
  1. 帧队列设计
  1. 实现音视频同步
  1. 能否不做音视频同步分析
  1. 没有MetaData能否播放
  1. RTMP拉流是否会导致延迟
  1. 如何检测RTMP拉流延迟
  1. 如何解决RTMP播放延迟
  1. 添加支持变速播放
  1. 变速播放策略分析和设置
  1. 秒开功能原理分析与实现
  1. ffplay、vlc能否用来测试播放延迟
  1. 实现拉流、保存视频为MP4
  1. 拉流、保存MP4时间戳转换

注: 掌握RTMP直播拉流+录像框架,包括拉流、队列设计、音视频同步、低延迟、保存为MP4文件等核心技术。

4.4 RTSP推流+录制项目

  1. RTSP协议简介
  1. 基于RTMP推流项目实现RTSP推流+录制

项目意义: 本项目推流模块采用FFmpeg API,不需要深入理解 RTSP协议仍然能实现推流直播。 掌握推流框架和视频录制框架,包括音视频采集、模块划分、 音视频同步、编码优化、推流延迟等核心技术。

4.5 RTSP拉流+录像项目

  1. RTSP协议简介
  1. 基于RTMP拉流项目实现RTSP拉流+录像

注: 掌握RTSP拉流+录像框架,包括拉流、队列设计、音视频同步、低延迟、保存为MP4文件等核心技术。

5、项目实践

5.1自研项目和源码分析

  1. SDL音频播放
  1. SDL视频播放
  1. FFmpeg内存引用计数
  1. MP4/FLV/TS解复用
  1. 提取H264
  1. 提取AAC
  1. H264/H265解码
  1. AAC/MP3解码
  1. AVIO内存输入模式
  1. 音频重采样
  1. 视频尺寸格式变换
  1. DXVA2解码
  1. NVDEC解码
  1. CUVID解码
  1. QSV解码
  1. AAC编码优化
  1. H264编码优化
  1. H265编码优化
  1. AAC转MP3
  1. H264转H265
  1. DXVA2编码
  1. NVENC编码
  1. CUVID编码
  1. QSV编码
  1. MP4合成
  1. FLV合成
  1. 多路音频混音
  1. 视频添加水印
  1. 视频区域裁剪
  1. 视频翻转
  1. 视频添加logo
  1. ffplay播放器
  1. 自研 QT播放器
  1. RTMP推流
  1. RTMP拉流
  1. RTSP推流
  1. RTSP推流
  1. HLS拉流

6、学习方法

  1. 先看文档再看视频
  1. 先把课程代码运行调试,然后修改调试,最后自己尝试重写
  1. 每节课的知识点总结成技术博客(每月有博客大赛,有奖金支持)
  1. 课程与工作相结合,重新思考需求功能
  1. 不理解的技术点 跟老师沟通
  1. 偏音视频客户端方向:服务器相关的内容以了解为主,比如SRS流媒体服务器,主要是理解推拉流框架、协议转换逻辑,不需要投入太多的时间阅读源码。
  1. 偏流媒体服务器方向:涉及到UI界面的设计以了解为主,比如播放器项目只需要专注于音视频相关的内容。

FFmpeg 学习书籍

《FFmpeg从入门到精通》是一本介绍FFmpeg的实战技术指南,全书共10章,分为两个部分。部分(第1~7章)为FFmpeg的命令行使用篇,介绍了FFmpeg的基础组成部分、FFmpeg工具使用、FFmpeg的封装操作、FFmpeg的转码操作、FFmpeg的流媒体操作、FFmpeg的滤镜操作、FFmpeg的设备操作。

第二部分(第8~10章)为FFmpeg的API使用篇,介绍了FFmpeg封装部分的API使用操作、FFmpeg编解码部分的API使用操作,FFmpeg滤镜部分的API使用操作,相关操作均以实例方式进行说明,包括新API及旧API的操作。

本书适合从事多媒体服务器端开发的工程师,嵌入式视频处理工程师。本书也适合作为计算机专业本科生和研究生,尤其是多媒体研究方向作为参考用书。

vs2019快捷命令键

还有一本网上流传的 <<ffmpeg源码解析>>pdf版本,然后目前我就没看到其他关于ffmpeg的书籍了;这里多说一句,不同版本的ffmpeg,api可能不太一样,具体细节,各位可以去ffmpeg官网查看手册说明即可!

2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/15459.html

(0)
上一篇 2024年 5月 18日
下一篇 2024年 5月 18日

相关推荐

关注微信