开发环境:
开发系统:Ubuntu 20.04
开发板:HiSpark IPC Camera(Hi3518)
Openharmony版本:v1.1.4
RTSP,Real Time Streaming 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命令下载:
$ git clone https://gitee.com/openharmony-sig/knowledge_demo_smart_home.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文档。
欢迎访问我的网站
BruceOu的哔哩哔哩
BruceOu的主页
BruceOu的博客
BruceOu的CSDN博客
BruceOu的简书
BruceOu的知乎
资源获取方式
关注公众号[嵌入式实验楼]获取更多资讯