waterman 发表于 2024-12-4 02:56

AI挑战营(进阶):5. 板端rtsp推流

基于 https://github.com/LuckfoxTECH/luckfox_pico_rkmpi_example.git 以luckfox_pico_rtsp_opencv例程为例,进行rtsp推流。
# 编译下载
设置环境变量
```
export LUCKFOX_SDK_PATH=/home/SDK/luckfox-pico
```
注意:使用绝对地址。
获取仓库源码并设置自动编译脚本执行权限
```
chmod a+x ./build.sh
./build.sh
```
执行 ./build.sh 后选择编译的例程

编译完成后会在 install 文件夹下生成对应的部署文件夹

使用adb push,将生成的部署文件夹完整上传到 Luckfox Pico 上。
# 运行程序
在 Luckfox Pico 板端进入luckfox_pico_rtsp_opencv_demo目录,运行luckfox_pico_rtsp_opencv可执行程序
```
chmod 777 luckfox_pico_rtsp_opencv
./luckfox_pico_rtsp_opencv
```
之后使用 VLC 打开网络串流 rtsp://172.32.0.93/live/0拉取图像

注意:
1. Ubuntu下使用apt安装的VLC无法拉取rtsp视频流,需要先安装flatpak,之后再通过flatpak安装VLC,具体步骤如下:

```
sudo apt-get remove vlc
sudo apt-get install flatpak

sudo apt install gnome-software-plugin-flatpak
sudoflatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo

sudo reboot
flatpak install vlc
```

# RKRTSP 库使用
RKRTSP 是 RockChip 提供的一套仅供测试使用的 rtsp 服务器软件接口,仅作为 RKMPI 库的功能验证使用,可以通过软件接口快速实现 rtsp 推流功能。

1. 创建 rtsp 实例
```
g_rtsplive = create_rtsp_demo(port);
```
2. 创建 rtsp 接口
```
g_rtsp_session = rtsp_new_session(g_rtsplive, "/live/0");
```
3. 设置 rtsp 传输属性
```
rtsp_set_video(g_rtsp_session, RTSP_CODEC_ID_VIDEO_H264, NULL, 0);
```
4. 同步 rtsp 时间戳
```
rtsp_sync_video_ts(g_rtsp_session, rtsp_get_reltime(), rtsp_get_ntptime());
```
5. 更新视频流设置并驱动事件
```
rtsp_tx_video(g_rtsp_session, (uint8_t *)pData, PackLen, PTS);
rtsp_do_event(g_rtsplive);
```
6. 删除 rtsp 实例
```
rtsp_del_demo(g_rtsplive);
```

Jacktang 发表于 2024-12-4 07:30

<p>RKRTSP 的使用还是挺复杂的, rtsp 服务器软件接口貌似是关键点</p>
页: [1]
查看完整版本: AI挑战营(进阶):5. 板端rtsp推流