樣例簡(jiǎn)介
本Demo是基于Hi3518開(kāi)發(fā)板,使用開(kāi)源OpenHarmony開(kāi)發(fā)的RTSP協(xié)議流媒體應(yīng)用。達(dá)到將Hi3518開(kāi)發(fā)板中攝像頭獲取的數(shù)據(jù)通過(guò)RTSP協(xié)議傳輸?shù)?a href="http://hljzzgx.com/v/tag/107/" target="_blank">手機(jī)并顯示 。
rtsp實(shí)現(xiàn)可參考文檔:openharmony_1.0.1實(shí)現(xiàn)RTSPServer
運(yùn)行效果
樣例原理
如上圖所示,手機(jī)播放3518攝像頭采集的視頻數(shù)據(jù)。
工程版本
快速上手
準(zhǔn)備硬件環(huán)境
- 預(yù)裝windows系統(tǒng)的PC機(jī)
- Hi3518EV300 IoT Camera開(kāi)發(fā)板套件
準(zhǔn)備開(kāi)發(fā)環(huán)境
鴻蒙開(kāi)發(fā)指導(dǎo)文檔:gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md
點(diǎn)擊或者復(fù)制轉(zhuǎn)到。
安裝必備軟件
開(kāi)發(fā)基礎(chǔ)環(huán)境由windows 工作臺(tái)和Linux編譯服務(wù)器組成。windows 工作臺(tái)可以通過(guò)samba 服務(wù)或ssh 方式訪問(wèn)Linux編譯服務(wù)器。其中windows 工作臺(tái)用來(lái)燒錄和代碼編輯,Linux編譯服務(wù)器用來(lái)編譯OpenHarmony代碼,為了簡(jiǎn)化步驟,Linux編譯服務(wù)器推薦安裝Ubuntu20.04。
HarmonyOS與OpenHarmony鴻蒙文檔籽料:mau123789是v直接拿
安裝和配置Python
- 打開(kāi)Linux終端。
- 輸入如下命令,查看python版本號(hào),需要使用python3.7以上版本
python3 --version
- 安裝并升級(jí)Python包管理工具(pip3)。
sudo apt-get install python3-setuptools python3-pip -y sudo pip3 install --upgrade pip
安裝hb
運(yùn)行如下命令安裝hb
python3 -m pip install --user ohos-build
將hb加入系統(tǒng)環(huán)境變量
vim ~/.bashrc
將以下命令拷貝到.bashrc文件的最后一行,保存并退出。
export PATH=~/.local/bin:$PATH
執(zhí)行如下命令更新環(huán)境變量。
source ~/.bashrc
測(cè)試hb安裝結(jié)果 執(zhí)行"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,如果當(dāng)前hb版本不是0.2.0,需要替換hb版本,步驟如下(該步驟必須在openharmony的工程根目錄下執(zhí)行):pip3 uninstall ohos_build pip3 install build/lite
安裝交叉編譯環(huán)境
在Linux編譯服務(wù)器上搭建好基礎(chǔ)開(kāi)發(fā)環(huán)境后,需要安裝OpenHarmony 編譯Hi3518平臺(tái)特有的開(kāi)發(fā)環(huán)境。
將Linux shell改為bash
查看shell是否為bash,在終端運(yùn)行如下命令
ls -l /bin/sh
如果顯示為“/bin/sh -> bash”則為正常,否則請(qǐng)按以下方式修改:
sudo rm -rf /bin/sh
sudo ln -s /bin/bash /bin/sh
安裝編譯依賴基礎(chǔ)軟件
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服務(wù)器~/hc-gen路徑下。
tar -xvf hc-gen-0.65-linux.tar -C ~/
設(shè)置環(huán)境變量。
vim ~/.bashrc
將以下命令拷貝到.bashrc文件的最后一行,保存并退出。
export PATH=~/hc-gen:$PATH
使環(huán)境變量生效。
source ~/.bashrc
安裝LLVM
下載指定的LLVM工具。
解壓LLVM安裝包至~/llvm路徑下。
tar -zxvf llvm.tar -C ~/
設(shè)置環(huán)境變量。
vim ~/.bashrc
將以下命令拷貝到.bashrc文件的最后一行,保存并退出。
export PATH=~/llvm/bin:$PATH
使環(huán)境變量生效。
source ~/.bashrc
準(zhǔn)備工程
本用例采用repo的方式從碼云官倉(cāng)下載系統(tǒng)系統(tǒng)源碼以及開(kāi)發(fā)板適配代碼,使用git從gitee的sig倉(cāng)庫(kù)拉取設(shè)備應(yīng)用代碼。
配置git
- 提前注冊(cè)準(zhǔn)備碼云gitee賬號(hào)。
- git工具下載安裝
sudo apt install git
sudo apt install git-lfs
- 生成/添加SSH密鑰:生成密鑰 使用gitee賬號(hào)綁定的郵箱生成密鑰對(duì)
ssh-keygen -t ed25519 -C "xxxxx@xxxxx.com"
- 查看生成的密鑰
cat ~/.ssh/id_ed25519.pub
- 復(fù)制生成后的 ssh key,返回gitee個(gè)人主頁(yè),通過(guò)主頁(yè) 「?jìng)€(gè)人設(shè)置」->「安全設(shè)置」->「SSH 公鑰」 ,將生成的“SSH密鑰”添加到倉(cāng)庫(kù)中。
- 配置git用戶信息
git config --global user.name "yourname"
git config --global user.email "your-email-address"
git config --global credential.helper store
準(zhǔn)備repo
curl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 > /usr/local/bin/repo ## 如果沒(méi)有權(quán)限可以,可先將repo下載到當(dāng)前目錄在拷貝
chmod a+x /usr/local/bin/repo
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple requests
準(zhǔn)備系統(tǒng)源碼
特別注意:請(qǐng)下載OpenHarmony 1.0.1 版本,后續(xù)會(huì)更新支持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'
準(zhǔn)備開(kāi)發(fā)板適配代碼
本樣例的代碼在本版本系統(tǒng)下還未上主干,需要clone本倉(cāng)庫(kù)并將一些補(bǔ)丁文件拷貝到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
準(zhǔn)備設(shè)備側(cè)應(yīng)用代碼
設(shè)備側(cè)應(yīng)用代碼需要拷貝本倉(cāng)庫(kù)的dev/team_x/smart_door_viewer_3518目錄到系統(tǒng)的vendor/team_x目錄下面,如果系統(tǒng)的vendor下沒(méi)有team_x目錄,需要新建一個(gè)。
mkdir ~/OpenHarmony1.01/vendor/team_x ## 如果OpenHarmony1.01/vendor下沒(méi)有team_x的目錄才需要執(zhí)行
cp -rfa ~/knowledge_demo_smart_home/dev/team_x/smart_door_viewer_3518 ~/OpenHarmony1.01/vendor/team_x/
代碼拷貝
1.在OpenHarmony的vendor目錄下新建一個(gè)team_x的目錄:
mkdir vendor/team_x
2.將下載的智能油煙機(jī)代碼的代碼拷貝到新建的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源碼下對(duì)應(yīng)的文件:
工程效果
編譯
進(jìn)入到OpenHarmony系統(tǒng)源碼根目錄下,輸入hb set命令即可看到我們的應(yīng)用,選擇并確認(rèn)即可。
hb set // 如果是第一次編譯,Input code path 命令行中鍵入"./" 指定OpenHarmony工程編譯根目錄后 回車(chē)。
然后輸入hb build -f命令做全量編譯
hb build -f
編譯成功會(huì)生成對(duì)應(yīng)整個(gè)系統(tǒng)固件(u-boot-hi3518ev300.bin,OHOS_Image.bin, rootfs_jffs2.img, userfs_jffs2.img.img)以及我們應(yīng)用對(duì)應(yīng)的bin文件。
其中u-boot-hi3518ev300.bin在device/hisilicon/hispark_aries/sdk_liteos/uboot/out/boot/:
OHOS_Image.bin, rootfs_jffs2.img以及userfs_jffs2.img在out目錄下:
應(yīng)用對(duì)應(yīng)的bin文件在out目錄下的bin/下面:
以下表格為所有生成的固件及對(duì)應(yīng)的位置:
生產(chǎn)固件及應(yīng)用文件的名稱(chēng) | 對(duì)應(yīng)文件路徑 | 文件說(shuō)明 |
---|---|---|
u-boot-hi3518ev300.bin | device/hisilicon/hispark_aries/sdk_liteos/uboot/out/boot/ | 系統(tǒng)啟動(dòng)引導(dǎo)程序 |
OHOS_Image.bin | out/hispark_aries/smart_door_viewer_3518/ | 系統(tǒng)內(nèi)核固件 |
rootfs_jffs2.img | out/hispark_aries/smart_door_viewer_3518/ | 文件系統(tǒng) |
userfs_jffs2.img | out/hispark_aries/smart_door_viewer_3518/ | 用戶數(shù)據(jù) |
rtsp_server | out/hispark_aries/smart_door_viewer_3518/bin | 應(yīng)用bin文件 |
燒錄/安裝
燒錄工具選擇
固件編譯完后,是需要燒錄到單板的。這里我們用的是HiTool工具燒錄的。
燒錄步驟
打開(kāi)HiTool工具,如下圖:
燒寫(xiě)步驟按照?qǐng)D中標(biāo)注即可。點(diǎn)擊擦除后再拔出USB口再接入。
擦除成功如下所示。
然后按如下圖選擇,再點(diǎn)擊燒寫(xiě)。
燒錄成功后,會(huì)彈出如下提示,單板也會(huì)自行啟動(dòng)。
設(shè)備啟動(dòng)
如果是第一次燒錄程序的話,單板在啟動(dòng)的時(shí)候需要設(shè)置bootargs,否則不能正常啟動(dòng)。單板第一次啟動(dòng)會(huì)停在hisilicon界面:
輸入以下啟動(dòng)參數(shù):
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
操作體驗(yàn)
開(kāi)啟熱點(diǎn)
準(zhǔn)備一部手機(jī)開(kāi)啟熱點(diǎn)設(shè)置
ssid為"SMedia",
password為”12345678“。
設(shè)備連接熱點(diǎn)
準(zhǔn)備一張SD卡插入到插槽內(nèi)。
進(jìn)入3518的shell輸入如下命令連接熱點(diǎn):
./bin/wpa_supplicant -iwlan0 -c/etc/wpa_supplicant.conf
在3518中輸入ifconfig查看連接狀態(tài):
運(yùn)行應(yīng)用
在串口下輸入
./bin/rtsp_server
打印如下表示設(shè)備應(yīng)用已準(zhǔn)備完畢
在手機(jī)應(yīng)用市場(chǎng)中搜索”完美播放器“并下載安裝。
打開(kāi)菜單選擇網(wǎng)址播放。
輸入rtsp播放地址,其中ip地址192.168.43.118為3518板子中的地址。。
效果動(dòng)圖
-
開(kāi)發(fā)板
+關(guān)注
關(guān)注
25文章
5032瀏覽量
97371 -
Hi3518
+關(guān)注
關(guān)注
0文章
8瀏覽量
5351 -
鴻蒙
+關(guān)注
關(guān)注
57文章
2339瀏覽量
42805 -
OpenHarmony
+關(guān)注
關(guān)注
25文章
3713瀏覽量
16254
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論