嵌入式AI音视频课程-基于全志MPP系统 :音视频编解码 文件封装 RTSP推流

课程简述

第一期:视频模块及推流实战
从视频基础概念开始逐步了解视频处理模块所需的知识,做好基础概念的储备。
1.根据全志芯片特性,完成硬件各个部件的复位、基本初始化工作。
2.视频输入模块VI学习,接收并解析MIPI摄像头传输过来的图像,调色或者码流处理输出。
3.视频输出模块VO学习,处理与视频输出显示相关的功能,在MIPI显示屏显示图像或者视频流。

4.视频编码解码模块学习,读取图像文件向编码模块/解码模块发送数据,采集的摄像头图像进行H264/H265编码。

第二期:音频模块及文件封装
从音频基础概念开始逐步了解音频处理模块所需的知识,做好基础概念的储备。
1.音频输入输出框架底层对接为alsa和codc,学习如何使用全志MPP框架使用拾音MIC采集音频PCM数据和使用喇叭进行lineout输出播放。

2.音频编解码组件可以压缩/解压缩音频pcm数据,学习编码拾音MIC采集的音频数据或解码音频数据使用喇叭进行播放。

3.文件模块学习,对视频流和音频进行封装,封装为MP4文件进行本地存储或者对文件进行解封装播放。

第三期:AI模型学习及端侧部署AI算法
从AI基础概念开始逐步了解嵌入式AI模型部署所需的知识,做好基础概念的储备。
1.学习传统机器学习算法,逐步入门至深度学习,了解目前热门的目标检测算法-卷积神经网络,了解其如何处理图像并提取特征信息。学习嵌入式AI中模型部署流程。
2.OpenCV学习,使用OpenCV处理图像,从0开始搭建环境并使用,后续用于对AI算法提取到的图像特征进行处理。
3.学习全志AI网络级套件,对人脸检测/人形检测/目标检测等常用的AI算法进行模型部署,在开发板端进行数据处理。

配套硬件

开发板购买链接:DshanPI-AICT开发板购买链接

资料获取

百度网盘:https://pan.baidu.com/s/14Hh9_qIMA_mbZfPAZV20Eg?pwd=8j32 提取码: 8j32

gitee: git clone https://gitee.com/weidongshan/V85x-eLinuxAIMPPDevCourse.git

试看课程

第一期资料汇总

  • 章节目录
    • 0-1_课程配套资源介绍
    • 0-2_使用Git获取资料
    • 1-1_开发板快速启动
    • 1-2_更新系统
    • 1-3_开发板配网
    • 1-4_使用ADB进行文件传输
    • 1-5_开发板功能测试
    • 2-1_虚拟机软件Vmware安装
    • 2-2_全志SDK编译
    • 2-3_编译MPP应用程序
    • 2-4_新增MPP应用程序
    • 3-1_颜色与图像
    • 3-2_图像与位深
    • 3-3_Fourcc代码
    • 3-4_相机中的数据流
    • 3-5_图像格式RAW
    • 3-6_图像格式RGB
    • 3-7_图像格式YUV
    • 3-8_颜色空间HSV和LAB
    • 4-1_视频基础概念
    • 4-2_视频的编解码
    • 4-3_视频的扫描方式
    • 4-4_视频的制式
    • 4-5_帧率和时间戳
    • 4-6_图像分辨率
    • 4-7_图像的色彩空间标准
    • 5-1-10_DirectShow多媒体框架
    • 5-1-11_AVFoundation多媒体框架
    • 5-1-1_常见的多媒体框架
    • 5-1-2_FFmpeg多媒体框架
    • 5-1-3_FFmpeg使用命令行实现音视频任务
    • 5-1-4_FFmpeg使用代码实现视频格式转换
    • 5-1-5_GStreamer多媒体框架
    • 5-1-6_安装GStreamer多媒体框架
    • 5-1-7_GStreamer使用命令行实现音视频任务
    • 5-1-8_第一个GStreamer应用程序
    • 5-1-9_如何创建并连接管道实现音视频任务
    • 5-2_OpenMAX媒体库
    • 5-3_全志MPP平台基础
    • 5-4_编译和运行系统控制程序
    • 5-5_全志MPP系统控制
    • 5-6_图像缓冲区-跨度对齐
    • 5-7-1_Google日志系统
    • 5-7-2_使用原始的glog库
    • 5-7-3_使用封装的glog库
    • 5-8_课后作业-实现一个简单MPP程序
    • 6-1-1_视频输入基础
    • 6-1-2_V853_MIPI驱动程序的层次
    • 6-2-1_视频输入组件的使用-运行程序
    • 6-2-2_VI组件启动程序流程分析
    • 6-2-3_获取参数代码分析
    • 6-2-4_启动VI组件代码解析
    • 6-2-5_VI组件的销毁与流程总结
    • 6-3-1_链表学习指南
    • 6-3-2_普通的链表操作
    • 6-3-2_普通链表的创建和添加操作
    • 6-3-3_普通链表的删除操作
    • 6-3-3_普通链表的排序
    • 6-3-4_普通链表的改进操作
    • 6-3-5_通用链表
    • 6-3-6_双向链表
    • 6-4-1_获取摄像头数据示例运行
    • 6-4-2_获取摄像头数据程序主函数讲解
    • 6-4-3_缓冲区管理器初始化讲解
    • 6-4-4_保存图像线程和获取图像线程讲解
    • 6-4-5_拷贝图像帧函数讲解
    • 6-5_音视频同步原理-媒体时钟
    • 6-6-1_单片机_Linux下不同接口的LCD硬件操作原理
    • 6-6-2_全志视频输出基础
    • 6-7-1_视频输出组件示例运行
    • 6-7-2_视频输出组件使用主函数 (下)'
    • 6-7-2_视频输出组件使用主函数(上)'
    • 6-7-3_初始化视频输出帧管理器函数
    • 6-7-4_VO通道回调函数
    • 6-8-1_绑定模式实现摄像头实时预览示例运行
    • 6-8-2_摄像头实时预览主函数讲解
    • 6-8-3_创建VI和VO绑定链接函数讲解
    • 6-9_G2D图形加速器介绍
    • 6-10-10_使用G2D实现图像旋转缩放主函数讲解
    • 6-10-11_使用G2D实现图像旋转功能函数讲解
    • 6-10-12_使用G2D实现图像缩放功能函数讲解
    • 6-10-13_使用G2D实现图像格式转换功能函数讲解
    • 6-10-14_使用G2D实现透明叠加功能函数讲解
    • 6-10-1_使用G2D实现图像旋转缩放示例编译
    • 6-10-2_实现图像旋转示例运行
    • 6-10-3_实现图像镜像翻转示例运行
    • 6-10-4_实现图像截取特定区域示例运行
    • 6-10-5实现图像缩放示例运行
    • 6-10-6_实现图像格式转换示例运行
    • 6-10-7_实现图像叠加示例运行
    • 6-10-8_实现批量生成缩放图像示例运行
    • 6-10-9_G2D模块的开发思路
    • 6-11-1_实时预览中加入旋转缩放功能示例演示
    • 6-11-2_实时预览中加入旋转缩放功能主函数讲解
    • 6-11-3_获取图像和G2D处理线程函数讲解
    • 6-11-4_显示图像处理函数讲解
    • 7-1-1_视频编码基础
    • 7-1-2_H264和H265编码器工作原理
    • 7-2_H264原始码流格式分析
    • 7-3_全志视频编码基础
    • 7-4-1_演示编码原始YUV视频文件示例程序
    • 7-4-2_编码原始YUV视频文件主函数讲解
    • 7-4-3_创建编码通道函数讲解
    • 7-4-4_读取视频帧线程函数讲解
    • 7-4-5_保存编码后视频帧线程函数讲解
    • 7-4-6_编码YUV文件的两个核心线程工作讲解
    • 7-5_量化与码率问题-呼吸效应和拖影
    • 7-6-1_演示编码摄像头视频流数据
    • 7-6-2_编码摄像头数据程序讲解
    • 7-7-1_高级编码参数-跳帧机制
    • 7-7-2_高级编码参数-SVC分层视频编码
    • 7-7-3_高级编码参数-噪声抑制
    • 7-7-4_高级编码参数-ROI感兴趣区域
    • 7-7-5_高级编码参数-帧内刷新
    • 7-7-6_高级编码参数-VUI参数集
    • 7-7-7_高级编码参数-超级帧
    • 7-7-8_高级编码参数-比特率裁剪
    • 7-7-9_高级编码参数-自适应增强
    • 7-7-10_高级编码参数-比特率控制
    • 7-7-11_高级编码参数-IDR帧
    • 7-7-12_高级编码参数-LBC低比特率编码
    • 7-7-13_高级编码参数-H264编码约束标志
    • 7-7-14_高级编码参数-色度量化
    • 7-7-15_高级编码参数-ve到isp的D2D限制
    • 7-7-16_其他编码参数
    • 7-7-17_高级编码参数的代码学习
    • 7-8-1_码流控制-QPMAP概念与演示 '
    • 7-8-2_码流控制-QPMAP核心代码讲解
    • 7-9-1_动态配置帧率和码率演示
    • 7-9-2_动态配置帧率和码率核心代码讲解
    • 7-10-1_GDC数字变焦功能概念与演示
    • 7-10-2_GDC数字变焦功能核心代码讲解
    • 8-1_实时流媒体传输-RTSP协议基础
    • 8-2_VLC媒体播放器基础
    • 8-3-1_RTSP协议详解-WIRESHARK网络抓包软件
    • 8-3-2_RTSP协议详解-创建音视频服务器
    • 8-3-3_RTSP协议详解-服务器与客户端工作原理
    • 8-3-4_RTSP协议详解-补充
    • 8-4_RTP协议与RTCP协议
    • 8-5-1_简单RTSP协议-效果演示
    • 8-5-2_编写简单RTSP协议-主流程
    • 8-5-3_编写简单RTSP协议-处理客户端请求
    • 8-5-4_编写简单RTSP协议-处理Play响应与发送RTP数据包
    • 8-6-1_基于嵌入式Linux平台实现RTSP协议-程序演示
    • 8-6-2_基于嵌入式Linux平台实现RTSP协议-核心代码讲解
    • 8-7-1_使用Live555实现RTSP服务器
    • 8-7-2_Live555实现RTSP服务器-主函数解解
    • 8-7-3_Live555实现RTSP服务器-RTSP响应解析
    • 8-8-1_MPP平台下使用RTSP实现摄像头数据推流源码解析
    • 8-8-2_基于Live555封装的RTSP源码解析
    • 9-1_视频解码基础
    • 9-2_使用ffmpeg解码H264文件
    • 9-3-1_使用MPP平台解码H264文件
    • 9-3-2_解码H264文件代码解析
    • 10-1_叠加模块基础
    • 10-2_使用ffmpeg实现叠加
    • 10-3-1_叠加模块示例演示
    • 10-3-2_叠加模块示例源码解析
    • 10-4_实现位图数据的叠加

第二期资料汇总

  • 章节目录
    • 11-1-1_音频基础概念_P.mp4
    • 11-1-2_音频数字化_P.mp4
    • 11-1-3_数字化音频相关参数_P.mp4
    • 11-2-1_数字音频压缩编码基础.md_P.mp4
    • 11-2-2_数字音频编码-G711_P.mp4
    • 11-2-3_数字音频编码-G726_P.mp4
    • 11-2-4_MPEG-1音频编码标准_P.mp4
    • 11-2-5_数字音频编码-MP1_P.mp4
    • 11-2-6_数字音频编码-MP2_P.mp4
    • 11-2-7_数字音频编码-MP3_P.mp4
    • 11-2-8_MPEG-2音频编码标准BC与AAC_P.mp4
    • 11-2-9_Opus编码与其他编码格式_P.mp4
    • 11-3-1_WAV音频文件格式规范_P.mp4
    • 11-3-2_PCM原始文件封装成WAV文件_P.mp4
    • 11-3-3_MP3音频文件封装格式_P.mp4
    • 11-3-4_PCM原始文件封装成MP3文件_P.mp4
    • 11-3-5_AAC音频文件封装格式_P.mp4
    • 11-3-6_解析AAC音频文件的头部信息_P.mp4
    • 11-3-7_OGG音频文件封装格式_P.mp4
    • 11-3-8_解析OGG音频文件的头部信息_P.mp4
    • 11-3-9_FLAC音频文件封装格式_P.mp4
    • 12-1_音频输入基础_P.mp4
    • 12-2-1_采集PCM音频实现录音演示_P.mp4
    • 12-2-2_采集PCM音频实现录音核心代码_P.mp4
    • 12-3-1_使用异步接口实现声音播放演示_P.mp4
    • 12-3-2_使用异步接口实现声音播放核心代码_P.mp4
    • 12-4-1_使用同步接口实现声音播放演示_P.mp4
    • 12-4-2_使用同步接口实现声音播放核心代码_P.mp4
    • 12-5-1_实现音频实时采集和播放演示_P.mp4
    • 12-5-2_实现音频实时采集和播放核心代码_P.mp4
    • 13-1-1_编码音频WAV文件演示_P.mp4
    • 13-1-2_编码原始PCM文件代码讲解_P.mp4
    • 13-2-1_编码录音数据演示_P.mp4
    • 13-2-2_编码录音数据代码讲解_P.mp4
    • 13-3-1_解码音频码流文件演示_P.mp4
    • 13-3-2_解码音频码流文件核心代码讲解_P.mp4
    • 13-4-1_解码音频并实时播放演示_P.mp4
    • 13-4-2_解码音频并实时播放代码讲解_P.mp4
    • 14-1-1_音视频的文件封装基础_P.mp4
    • 14-1-2_AVI文件封装格式解析_P.mp4
    • 14-1-3_MP4文件封装格式解析_P.mp4
    • 14-1-4_MKV文件封装格式解析_P.mp4
    • 14-2-1_使用ffmpeg封装音视频文件_P.mp4
    • 14-2-2_ffmpeg隐式封装文件代码讲解_P.mp4
    • 14-3_全志封装与解封装组件基础_P.mp4
    • 14-4-1_视频流封装MP4文件演示_P.mp4
    • 14-4-2_视频流封装MP4文件代码讲解_P.mp4
    • 14-5-1_音频流封装MP4文件演示_P.mp4
    • 14-5-2_音频流封装MP4文件代码讲解_P.mp4
    • 14-6-1_新增音视频流封装MP4文件_P.mp4
    • 14-6-2_音视频流封装MP4核心代码讲解_P.mp4