HEXA開發(fā)日志目錄
上一篇 HEXA娛樂開發(fā)日志技術(shù)點(diǎn)006——日拱一卒拱歪了
成果
c6a82368ade66bbec1399940dbd4a61e5634cba5成功實(shí)現(xiàn)從手機(jī)啟動(dòng)抓取攝像頭圖像推流。也就是說框全,加上之前的進(jìn)展辕万,我可以:
- 用手機(jī)控制它連接到我的直播房間抓取彈幕
- 用手機(jī)控制它把攝像頭拍到的東西直播到手機(jī)上指定的地址
更新一下下圖愿卒,看起來所有東西已經(jīng)完成了,不過準(zhǔn)確地說括堤,彈幕的轉(zhuǎn)譯和執(zhí)行還沒有完成,不過這一部分工作比較簡單,就直接標(biāo)綠了溉潭。
標(biāo)準(zhǔn)姿勢
標(biāo)準(zhǔn)姿勢——是指所有功能都要在一個(gè)skill內(nèi)完成,即能夠做一個(gè)發(fā)布的skill少欺,大家從應(yīng)用中心安裝這個(gè)skill就可以玩起來喳瓣。那么放棄標(biāo)準(zhǔn)姿勢就是說,我不得不把一部分功能從skill里面拆出來赞别,即安裝這個(gè)skill之后畏陕,還必須再做點(diǎn)別的準(zhǔn)備才能玩起來,這令我很不爽仿滔。
放棄是個(gè)無奈之舉惠毁,因?yàn)橐粋€(gè)致命問題——運(yùn)行skill的Linux用戶沒有訪問攝像頭(/dev/video0
)和編碼器(/dev/mxc_vpu
)的權(quán)限,所以skill程序沒法獨(dú)立使用攝像頭和編碼器崎页,必須要root用戶幫忙提供系統(tǒng)服務(wù)來完成攝像頭和編碼器的使用鞠绰。
沒有權(quán)限這個(gè)事費(fèi)了我不少時(shí)間,因?yàn)榭偸荂程序驗(yàn)得好好的飒焦,整合到skill里面就不工作了蜈膨,反反復(fù)復(fù)的嘗試后,才突然意識到這兩種運(yùn)行環(huán)境的用戶不同。
解決方案
解決方案就以下兩點(diǎn)
- Gstreamer功能用系統(tǒng)服務(wù)的形式實(shí)現(xiàn)
- skill通過命名管道(FIFO)的方式向系統(tǒng)服務(wù)發(fā)送命令翁巍,來控制Gstreamer服務(wù)
以上兩點(diǎn)一寫出來驴一,相對于上一篇就沒多少新鮮的了。剩下那點(diǎn)新鮮的曙咽,一個(gè)是系統(tǒng)服務(wù)的實(shí)現(xiàn)方法蛔趴,另一個(gè)是命名管道實(shí)現(xiàn)方法。這兩個(gè)東西網(wǎng)上隨便一搜就有例朱,都是經(jīng)典的linux知識孝情,預(yù)計(jì)弄一兩個(gè)番外篇專門說一下,在這里就不細(xì)講了洒嗤,都在commit里面了箫荡。
這里只補(bǔ)充一些commit里面沒體現(xiàn)的細(xì)節(jié)——系統(tǒng)服務(wù)的部署步驟:
- 把demo_not_skill/gstreamer復(fù)制到機(jī)器人里;
- 在這個(gè)目錄中make渔隶,生成simple_server執(zhí)行程序羔挡,如果要交叉編譯,需要對Makefile里的CC進(jìn)行配置间唉;
- 將simple_serverd放到
/etc/init.d
绞灼,把simple_server放到/usr/local/sbin
; - 為了能夠開機(jī)自動(dòng)啟動(dòng)服務(wù)呈野,還需要建立一個(gè)這樣的軟鏈接(這涉及到系統(tǒng)服務(wù)中低矮,運(yùn)行等級的相關(guān)知識,網(wǎng)上也有很多資料)
/etc/rc2.d/S99simple_serverd -> ../init.d/simple_serverd
總結(jié)
- 關(guān)鍵技術(shù)都完成了被冒,但是放棄了封裝成一個(gè)skill的標(biāo)準(zhǔn)姿勢
- 也許下次把彈幕命令設(shè)計(jì)一下
- 也許下次把彈幕動(dòng)作實(shí)現(xiàn)一下
再說兩句
這個(gè)機(jī)器人攝像頭的性能挺差的军掂,原本的設(shè)計(jì)應(yīng)該不是用來拍攝實(shí)時(shí)圖像的,只是用來做一些簡單的近距離識別昨悼,1280x720的分辨率下蝗锥,幀數(shù)到不了5。要想接近實(shí)時(shí)幀率率触,分辨率必須是320x240终议。當(dāng)然,默認(rèn)配置會放大到640x480葱蝗,這個(gè)由小放大是我一個(gè)玩過freescale的朋友說的痊剖。
也就是說,由于硬件限制垒玲,最初玩直播的設(shè)想基本打水漂,等這個(gè)項(xiàng)目完成找颓,后面還是多從它的運(yùn)動(dòng)機(jī)能上多動(dòng)動(dòng)腦筋吧合愈。