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:- 开始推音频流。
- 开启视频编码通道,并将视频输入绑定到视频编码。
 
3.程序执行
3.1 rtsp推音视频流
3.1.1 参数说明
| 参数名 | 描述 | 参数范围 | 默认值 | 
|---|---|---|---|
| help | 打印命令行参数信息 | - | - | 
| n | session个数 | [1, 3] | 1 | 
| t | 编码类型 | h264、h265、mjpeg | h264 | 
| w | 视频编码宽度 | [128, 1920] | 1280 | 
| h | 视频编码高度 | [64, 1080] | 720 | 
| s | sensor类型。 | 0: ov9732;1: ov9286 ir;2: ov9286 speckle;3: imx335 2LANE 1920Wx1080H;4: imx335 2LANE 2592Wx1944H;5: imx335 4LANE 2592Wx1944H;6: imx335 2LANE MCLK 7425 1920Wx1080H;7: imx335 2LANE MCLK 7425 2592Wx1944H;8: imx335 4LANE MCLK 7425 2592Wx1944H | 7 |