樣例簡介
本Demo是基于Hi3518開發板,使用開源OpenHarmony開發的RTSP協議流媒體應用。達到將Hi3518開發板中攝像頭獲取的數據通過RTSP協議傳輸到手機并顯示 。
rtsp實現可參考文檔:openharmony_1.0.1實現RTSPServer
運行效果
樣例原理
如上圖所示,手機播放3518攝像頭采集的視頻數據。
工程版本
快速上手
準備硬件環境
- 預裝windows系統的PC機
- Hi3518EV300 IoT Camera開發板套件
準備開發環境
鴻蒙開發指導文檔:gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md
點擊或者復制轉到。
安裝必備軟件
開發基礎環境由windows 工作臺和Linux編譯服務器組成。windows 工作臺可以通過samba 服務或ssh 方式訪問Linux編譯服務器。其中windows 工作臺用來燒錄和代碼編輯,Linux編譯服務器用來編譯OpenHarmony代碼,為了簡化步驟,Linux編譯服務器推薦安裝Ubuntu20.04。
HarmonyOS與OpenHarmony鴻蒙文檔籽料:mau123789是v直接拿
安裝和配置Python
- 打開Linux終端。
- 輸入如下命令,查看python版本號,需要使用python3.7以上版本
python3 --version
- 安裝并升級Python包管理工具(pip3)。
sudo apt-get install python3-setuptools python3-pip -y sudo pip3 install --upgrade pip
安裝hb
運行如下命令安裝hb
python3 -m pip install --user ohos-build
將hb加入系統環境變量
vim ~/.bashrc
將以下命令拷貝到.bashrc文件的最后一行,保存并退出。
export PATH=~/.local/bin:$PATH
執行如下命令更新環境變量。
source ~/.bashrc
測試hb安裝結果 執行"hb -h",有打印以下信息即表示安裝成功.
usage: hb OHOS build system positional arguments: {build,set,env,clean} build Build source code set OHOS build settings env Show OHOS build env clean Clean output optional arguments: -h, --help show this help message and exit
hb版本替換
本樣例hb版本為0.2.0,如果當前hb版本不是0.2.0,需要替換hb版本,步驟如下(該步驟必須在openharmony的工程根目錄下執行):pip3 uninstall ohos_build pip3 install build/lite
安裝交叉編譯環境
在Linux編譯服務器上搭建好基礎開發環境后,需要安裝OpenHarmony 編譯Hi3518平臺特有的開發環境。
將Linux shell改為bash
查看shell是否為bash,在終端運行如下命令
ls -l /bin/sh
如果顯示為“/bin/sh -> bash”則為正常,否則請按以下方式修改:
sudo rm -rf /bin/sh
sudo ln -s /bin/bash /bin/sh
安裝編譯依賴基礎軟件
sudo apt-get install build-essential && sudo apt-get install gcc && sudo apt-get install g++ && sudo apt-get install make && sudo apt-get install zlib* && sudo apt-get install libffi-dev
安裝文件打包工具
- 安裝dosfstools
sudo apt-get install dosfstools
- 安裝mtools
sudo apt-get install mtools
- 安裝mtd-utils
sudo apt-get install mtd-utils
安裝hc-gen
下載hc-gen工具。
解壓hc-gen安裝包到Linux服務器~/hc-gen路徑下。
tar -xvf hc-gen-0.65-linux.tar -C ~/
設置環境變量。
vim ~/.bashrc
將以下命令拷貝到.bashrc文件的最后一行,保存并退出。
export PATH=~/hc-gen:$PATH
使環境變量生效。
source ~/.bashrc
安裝LLVM
下載指定的LLVM工具。
解壓LLVM安裝包至~/llvm路徑下。
tar -zxvf llvm.tar -C ~/
設置環境變量。
vim ~/.bashrc
將以下命令拷貝到.bashrc文件的最后一行,保存并退出。
export PATH=~/llvm/bin:$PATH
使環境變量生效。
source ~/.bashrc
準備工程
本用例采用repo的方式從碼云官倉下載系統系統源碼以及開發板適配代碼,使用git從gitee的sig倉庫拉取設備應用代碼。
配置git
- 提前注冊準備碼云gitee賬號。
- git工具下載安裝
sudo apt install git
sudo apt install git-lfs
- 生成/添加SSH密鑰:生成密鑰 使用gitee賬號綁定的郵箱生成密鑰對
ssh-keygen -t ed25519 -C "xxxxx@xxxxx.com"
- 查看生成的密鑰
cat ~/.ssh/id_ed25519.pub
- 復制生成后的 ssh key,返回gitee個人主頁,通過主頁 「個人設置」->「安全設置」->「SSH 公鑰」 ,將生成的“SSH密鑰”添加到倉庫中。
- 配置git用戶信息
git config --global user.name "yourname"
git config --global user.email "your-email-address"
git config --global credential.helper store
準備repo
curl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 > /usr/local/bin/repo ## 如果沒有權限可以,可先將repo下載到當前目錄在拷貝
chmod a+x /usr/local/bin/repo
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple requests
準備系統源碼
特別注意:請下載OpenHarmony 1.0.1 版本,后續會更新支持OpenHarmony其他版本
mkdir ~/OpenHarmony1.01
cd ~/OpenHarmony1.01
repo init -u git@gitee.com:openharmony/manifest.git -b OpenHarmony_1.0.1_release --no-repo-verify
repo sync -c
repo forall -c 'git lfs pull'
準備開發板適配代碼
本樣例的代碼在本版本系統下還未上主干,需要clone本倉庫并將一些補丁文件拷貝到openharmony中。
git clone https://gitee.com/openharmony-sig/knowledge_demo_smart_home.git --depth=1
cp -raf ~/knowledge_demo_smart_home/dev/team_x/smart_door_viewer_3518/openHarmony1.0.1 ~/OpenHarmony1.01
準備設備側應用代碼
設備側應用代碼需要拷貝本倉庫的dev/team_x/smart_door_viewer_3518目錄到系統的vendor/team_x目錄下面,如果系統的vendor下沒有team_x目錄,需要新建一個。
mkdir ~/OpenHarmony1.01/vendor/team_x ## 如果OpenHarmony1.01/vendor下沒有team_x的目錄才需要執行
cp -rfa ~/knowledge_demo_smart_home/dev/team_x/smart_door_viewer_3518 ~/OpenHarmony1.01/vendor/team_x/
代碼拷貝
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/openHarmony1.0.1目錄下中的文件替換到openHarmony1.0.1源碼下對應的文件:
工程效果
編譯
進入到OpenHarmony系統源碼根目錄下,輸入hb set命令即可看到我們的應用,選擇并確認即可。
hb set // 如果是第一次編譯,Input code path 命令行中鍵入"./" 指定OpenHarmony工程編譯根目錄后 回車。
然后輸入hb build -f命令做全量編譯
hb build -f
編譯成功會生成對應整個系統固件(u-boot-hi3518ev300.bin,OHOS_Image.bin, rootfs_jffs2.img, userfs_jffs2.img.img)以及我們應用對應的bin文件。
其中u-boot-hi3518ev300.bin在device/hisilicon/hispark_aries/sdk_liteos/uboot/out/boot/:
OHOS_Image.bin, rootfs_jffs2.img以及userfs_jffs2.img在out目錄下:
應用對應的bin文件在out目錄下的bin/下面:
以下表格為所有生成的固件及對應的位置:
生產固件及應用文件的名稱 | 對應文件路徑 | 文件說明 |
---|---|---|
u-boot-hi3518ev300.bin | device/hisilicon/hispark_aries/sdk_liteos/uboot/out/boot/ | 系統啟動引導程序 |
OHOS_Image.bin | out/hispark_aries/smart_door_viewer_3518/ | 系統內核固件 |
rootfs_jffs2.img | out/hispark_aries/smart_door_viewer_3518/ | 文件系統 |
userfs_jffs2.img | out/hispark_aries/smart_door_viewer_3518/ | 用戶數據 |
rtsp_server | out/hispark_aries/smart_door_viewer_3518/bin | 應用bin文件 |
燒錄/安裝
燒錄工具選擇
固件編譯完后,是需要燒錄到單板的。這里我們用的是HiTool工具燒錄的。
燒錄步驟
打開HiTool工具,如下圖:
燒寫步驟按照圖中標注即可。點擊擦除后再拔出USB口再接入。
擦除成功如下所示。
然后按如下圖選擇,再點擊燒寫。
燒錄成功后,會彈出如下提示,單板也會自行啟動。
設備啟動
如果是第一次燒錄程序的話,單板在啟動的時候需要設置bootargs,否則不能正常啟動。單板第一次啟動會停在hisilicon界面:
輸入以下啟動參數:
setenv bootcmd "sf probe 0;sf read 0x40000000 0x100000 0x600000;go 0x40000000";
setenv bootargs "console=ttyAMA0,115200n8 root=flash fstype=jffs2 rw rootaddr=7M rootsize=8M";
save;
reset
操作體驗
開啟熱點
準備一部手機開啟熱點設置
ssid為"SMedia",
password為”12345678“。
設備連接熱點
準備一張SD卡插入到插槽內。
進入3518的shell輸入如下命令連接熱點:
./bin/wpa_supplicant -iwlan0 -c/etc/wpa_supplicant.conf
在3518中輸入ifconfig查看連接狀態:
運行應用
在串口下輸入
./bin/rtsp_server
打印如下表示設備應用已準備完畢
在手機應用市場中搜索”完美播放器“并下載安裝。
打開菜單選擇網址播放。
輸入rtsp播放地址,其中ip地址192.168.43.118為3518板子中的地址。。
效果動圖
-
開發板
+關注
關注
25文章
4943瀏覽量
97188 -
Hi3518
+關注
關注
0文章
8瀏覽量
5337 -
鴻蒙
+關注
關注
57文章
2307瀏覽量
42737 -
OpenHarmony
+關注
關注
25文章
3658瀏覽量
16144
發布評論請先 登錄
相關推薦
評論