K230 编码实战 - rtsp sever搭建和推流
1. 环境准备
1.1 硬件环境
- K230-USIP-LP3-EVB-V1.0/K230-UNSIP-LP3-EVB-V1.1
- Ubuntu PC 20.04
- Typec USB线 * 2。
- 一根连接到UART0/3,用于串口收发,UART0对应小核,UART3对应大核。
- 一根连接到DC:5V接口,用于供电。
- USB TypeC转以太网,连接到USB0。
- 网线一根
- SD卡(如果使用SD卡启动,或软件需要访问SD卡)
- 摄像头子板(IMX335,用于rtsp推音视频流)
- 耳机(用于语音对讲)
- 杜邦线一根,按下图连接USB0_OTG_EN和高电平
注意:音频对讲需要两套设备。
1.2 软件环境
- K230 SDK
- VLC播放器
1.3 运行准备
在EVB上执行rtsp程序需要启动网络服务,并保证PC和EVB板在同一个网段。
2. 源码介绍
2.1 源码位置
在SDK中包含的rtsp相关demo位于k230_sdk/src/common/cdk/user/samples
目录下,其中
rtsp_demo
:语音推音视频流程序rtsp
:语音对讲服务器端程序backchannel_client
:语音对讲客户端程序
2.2 源码介绍
K230 SDK采用双核架构,小核运行linux系统,实现网络控制服务。大核运行RTT系统,实现对音视频硬件的控制。小核在启动过程中负责引导大核。大小核通过核间通信进行消息通信和内存共享。多媒体软件架构如下:
小核网络服务移植了live源码,路径为k230_sdk/src/common/cdk/user/thirdparty/live
音频使用G711编码。
音视频推流中,视频默认最大分辨率与配置的sensor_type相关,默认最大分辨率为1920x1080。
2.2.1 程序主要步骤
2.2.1.1 音视频推流程序
new StreamingPlayer
- 初始化核间通信。
- 配置video buffer。
InitVicap
:初始化摄像头。CreateSession
:- 创建server session。
- 创建并开启音频输入通道,音频采样率为44.1k,采样宽度16bit。
- 初始化音频编码,音频采用G711A编码。
- 创建视频编码通道,使能IDR帧。
Start
:- 开启视频编码通道并绑定到vo。
- 开启视频编码通道,并将视频输入绑定到视频编码。
- 开始音视频推流。
2.2.1.2 语音对讲程序
Init
:- 创建server session。
- 初始化核间通信。
- 配置video buffer。
- 创建并开启音频输入通道,音频采样率为8k,采样宽度为16bit。
- 创建音频编码通道,音频采用G711U编码。
- 创建音频输出通道和音频解码通道,并将音频解码绑定到音频输出。
Start
:- 开始推音频流。
- 开启视频编码通道,并将视频输入绑定到视频编码。