学习笔记 | 音视频 | 推流项目框架及细节

推流项目:
跑起来项目,再调,创造问题,注意项目跑起来包括哪些步骤

前期准备:环境的配置
依赖库要交叉编译,编译还需注意依赖的库对应的头文件(注意是绝对路径还是相对路径)
Rv1126_lib、arm_libx264、arm_libx265、arm_libsrt、arm32_ffmpeg_srt、arm_openssl
Ubuntu搭建SRT服务器、Windows搭建推流服务器

1、项目介绍
此项目是利用瑞芯微Rv1126的SoC 上 VI 模块和 AI 模块分别采集摄像头和麦克风上的数据,并通过 SoC 上的硬件 VENC 模块和硬件 AENC 模块通过视频 h264 音频 AAC 硬件编码,并存放到视频、音频编码队列里面,ffmpeg 再从编码队列模块上获得视频和音频数据进行音视频同步后复合成 ts 流,最后推送到 SRT 流媒体服务器

2、项目核心点描述

(1)项目中使用的 SDK 是什么?请介绍一下该 SDK 的主要功能和提供的 API。
请介绍一下 RV1126 SoC,以及其中的 VI 模块、AI 模块、硬件 VENC 模块和硬件 AENC 模块的作用是什么?

项目中使用的SDK是RKmedia的一种媒体处理方案,该SDK支持应用软件的快速开发,该平台主要支持以下功能:

音视频输入输出和编解码、RGA视频处理(包括旋转、缩放、裁剪)、移动侦测、遮挡侦测、视频合成、视频封装

VI(输入视频捕获)、VENC(H.265/H.264/JPEG/MJPEG 编码)、VDEC(H.265/H.264/JPEG、MJPEG 解码)、VO(视频输出显示)、RGA视频处理(包括旋转、缩 放、裁剪)、AI(音频采集)、AO(音频输出)、AENC(音频编码)、ADEC(音频解码)、MD(移 动侦测)、OD(遮挡侦测)、VMIX(视频合成)、MUXER(视频封装)。

(2)请说明视频编码队列和音频编码队列的作用,以及如何利用 SDK 的 API 对摄像头和麦克风数据进行采集和编码,并将其存放到相应的队列中。

许多线程之间需要进行数据的传递,所以此时我们就需要通过队列作为一条桥梁把数据从一个线程送到另外一个线程里面,然后队列有先进先出的特性,保证最先采集到的音视频数据最先处理,不会出现乱序的情况;也起到数据缓冲的压

你可能感兴趣的:(笔记,25.音视频编解码,学习,笔记,音视频)