HEXA娛樂開發(fā)日志技術(shù)點(diǎn)007——放棄標(biāo)準(zhǔn)姿勢

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)綠了。

技術(shù)需求與技術(shù)點(diǎn)

標(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ù)的部署步驟:

  1. 把demo_not_skill/gstreamer復(fù)制到機(jī)器人里;
  2. 在這個(gè)目錄中make,生成simple_server執(zhí)行程序,如果要交叉編譯,需要對Makefile里的CC進(jìn)行配置;
  3. 將simple_serverd放到/etc/init.d,把simple_server放到/usr/local/sbin;
  4. 為了能夠開機(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)腦筋吧。


下一篇 HEXA娛樂開發(fā)日志技術(shù)點(diǎn)007——完結(jié)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一次 和朋友A聊天中,他說朋友B談戀愛了,我說不知道啊,我們最近有段時(shí)間沒有聯(lián)系了,我打趣了說了句B找我一般就...
    自信堅(jiān)持閱讀 69評論 1 0
  • 《開學(xué)第一課》這個(gè)節(jié)目我有著深刻的感受,跟以往不同,這次節(jié)目成龍大哥也來了! 當(dāng)我聽到他的事跡后,...
    俊杰A閱讀 266評論 0 0

友情鏈接更多精彩內(nèi)容