开发环境:
开发系统:Ubuntu 20.04
开发板:HiSpark IPCCamera(Hi3518)
Openharmony版本:v1.1.4
RTSP,Real TimeStreaming Protocol,RFC2326,实时流传输协议,是TCP/IP协议体系中的一个应用层协议!协议主要规定定了一对多应用程序如何有效地通过IP网络传送多媒体数据。RTSP体系结位于RTP和RTCP之上(RTCP用于控制传输,RTP用于数据传输),使用TCP或UDP完成数据传输!
openharmony中已经实现了RTSPServer播放视频,这里只需要简单移植下就可以了。
6.1 RTSPServer移植6.1.1下载源码首先到openharmony-sig仓库中下载smart_door_viewer_3518。
这里通过git命令下载:
6.1.2代码拷贝1.在OpenHarmony的vendor目录下新建一个team_x的目录:
$ mkdir vendor/team_x
2.将下载的智能油烟机代码的代码拷贝到新建的team_x下面:
$ cp -rf../knowledge_demo_smart_home/dev/team_x/smart_door_viewer_3518/ vendor/team_x/
3.将
knowledge_demo_smart_home/dev/team_x/smart_door_viewer_3518/openHarmony
目录下中的文件替换到openHarmony源码下对应的文件
代码目录结构
- ├── smart_door_viewer_3518
- │ ├── BUILD.gn //编译脚本
- │ ├── include
- │ │ ├── camera_sample.h //摄像头定义头文件
- │ │ ├── rtp.h // rtp协议传输头文件
- │ │ ├── rtsp_log.h // 打印调试头文件
- │ │ └── rtsp_server.h // rtsp_server头文件
- │ └── src
- │ ├── camera_sample.cpp // 摄像头实现
- │ ├── main.cpp // 主函数
- │ ├── rtp.cpp // rtp协议实现
- │ └── rtsp_server.cpp // rtsp协议实现
- ├── foundation
- │ └── multimedia
- │ └── media_lite
- │ ├── frameworks
- │ │ └── recorder_lite
- │ │ ├── recorder.cpp //增加获取h.265数据存放至环形缓冲区接口实现
- │ │ ├── recorder_impl.cpp //增加向应用层提供环形缓冲区接口实现
- │ │ └── recorder_impl.h //增加向应用层提供环形缓冲区接口定义
- │ └── interfaces
- │ └── kits
- │ └── recorder_lite
- │ └── recorder.h //增加获取h.265数据存放至环形缓冲区
复制代码接口定义
6.1.3编译编译设置。
$ hb set
开始全量编译。
$ hb build -f
最后生成的固件对应如下:
6.2 RTSP应用使用6.2.1开启rtsp_server应用1.将路由器或者手机设置账号和密码如下:
ssid为"media",
password为”12345678“。
当然,也可自行修改相应的密码,对应的文件是wpa_supplicant.conf。
2.准备一张SD卡插入到插槽内,
3.进入3518的shell输入如下命令连接热点:
./bin/wpa_supplicant -iwlan0 -c/etc/wpa_supplicant.conf
4.在3518中输入ifconfig查看连接状态:
接下就可以运行rtsp_server应用了。
5.在串口下输入
./bin/rtsp_server
打印如下表示设备应用已准备完毕
6.2.2播放视频流1.在手机应用市场中搜索“完美播放器”并下载安装。
2.打开菜单选择网址播放,输入rtsp播放地址,其中ip地址192.168.24.192为3518板子中的地址。
即可看到视频流。
赶紧去玩起来吧!
关于RTSPServer的实现和讲解请查看openharmony-sig文档。
https://gitee.com/openharmony-sig/knowledge_demo_smart_home/blob/master/docs/RTSPServer/RTSPServer.md