0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于i.MX27硬件平臺(tái)實(shí)現(xiàn)網(wǎng)絡(luò)視傳機(jī)的設(shè)計(jì)

牽手一起夢(mèng) ? 來源:電子產(chǎn)品世界 ? 作者:缐曉林,游向東,潘 ? 2021-03-16 13:45 ? 次閱讀

作者:缐曉林 游向東 潘力

前言

隨著因特網(wǎng)的發(fā)展成熟、用戶需求的增長以及宏觀環(huán)境變暖等條件的刺激,基于網(wǎng)絡(luò)的音視頻通信行業(yè)迅速發(fā)展起來。本文介紹基于Freescale公司i.MX27硬件平臺(tái),基于SIP(初始會(huì)話協(xié)議)協(xié)議的網(wǎng)絡(luò)視傳機(jī)的設(shè)計(jì)與實(shí)現(xiàn)。

視傳機(jī)的軟硬件技術(shù)基礎(chǔ)

i.MX27

視頻編解碼功能嵌入到多媒體應(yīng)用處理器中已經(jīng)成為一個(gè)趨勢(shì)。Freescale DragonBall家族最新成員i.MX27多媒體應(yīng)用處理器,片內(nèi)集成H.264/MPEG4全雙工硬件編解碼視頻處理單元,是嵌入式多媒體應(yīng)用處理器的一顆新星,可廣泛應(yīng)用于多種產(chǎn)品中。i.MX27處理器內(nèi)部的硬件編解碼模塊性能強(qiáng)勁,可以達(dá)到H.264/MPEG4編解碼D1分辨率:720×576@25fps;720×480@30fps;全雙工編解碼同時(shí)進(jìn)行可以達(dá)到VGA分辨率:640×480@30fps。

SIP協(xié)議

SIP是由IETF(國際互聯(lián)網(wǎng)標(biāo)準(zhǔn)制定組織)制定的面向 Internet 會(huì)議和電話的信令協(xié)議。SIP是一個(gè)應(yīng)用層的協(xié)議,可以建立,修改或者中止多媒體會(huì)話或者呼叫。它是一個(gè)基于ASCII的端到端的協(xié)議,它實(shí)際上是在因特網(wǎng)上提供“約會(huì)”服務(wù)。用來實(shí)現(xiàn)VoIP的開放協(xié)議,最常用的有三種,SIP、MGCP(Media Gateway Control Protocol)和H.323。

SIP協(xié)議是專門為IP 電話,尤其是結(jié)合Internet設(shè)計(jì)的協(xié)議,同傳統(tǒng)的H.323協(xié)議相比,SIP 擁有明顯的優(yōu)越性:優(yōu)異的可擴(kuò)展性,大大提高了系統(tǒng)的處理能力;與 Internet 緊密結(jié)合,使通訊更加輕松便捷的;卓越的開放性,不僅能夠?qū)?a target="_blank">手機(jī)、 PDA 等移動(dòng)設(shè)備提供良好的支持,對(duì)于在線即時(shí)交流、語音和視頻數(shù)據(jù)傳輸?shù)榷嗝襟w應(yīng)用也能夠很好地完成。

SIP協(xié)議支持5方面的能力:用戶定位、用戶可用性、用戶能力、會(huì)話建立、會(huì)話管理。SIP協(xié)議本身不提供業(yè)務(wù),但是它提供業(yè)務(wù)支持的基礎(chǔ)。SIP協(xié)議本身也不提供會(huì)議控制,但是SIP協(xié)議可以與任何一個(gè)會(huì)議控制的協(xié)議綁定。

Linphone

Linphone是基于WEB的IP電話工具,運(yùn)行于Linux和Windows Xp下。通過Linphone可以在互聯(lián)網(wǎng)上和其他人自由地進(jìn)行聲音、視頻通信,也可以進(jìn)行及時(shí)文本信息傳送。Linphone是遵從SIP協(xié)議開發(fā)的,它需要和支持SIP協(xié)議的電話或者代理服務(wù)器進(jìn)行相互操作。如果把基于Linphone開發(fā)的VoIP設(shè)備通過PSTN帳號(hào)注冊(cè)到電信服務(wù)器上,就可以通過它和普通電話進(jìn)行通話了。但是這些通話不是免費(fèi)的,因?yàn)镻STN是收費(fèi)服務(wù)。Linphone是開源免費(fèi)軟件,可以自由下載和重新發(fā)布。

MiniGUI

MiniGUI是面向?qū)崟r(shí)嵌入式系統(tǒng)的輕量級(jí)圖形用戶界面支持系統(tǒng)。目前,MiniGUI已成為跨操作系統(tǒng)的圖形用戶界面支持系統(tǒng),可在Linux/uClinux、eCos、uC/OS-II、VxWorks等操作系統(tǒng)上運(yùn)行。

MiniGUI為實(shí)時(shí)嵌入式操作系統(tǒng)提供了完善的圖形及圖形用戶界面支持??梢浦残栽O(shè)計(jì)使得它不論在哪個(gè)硬件平臺(tái)、哪種操作系統(tǒng)上運(yùn)行,均能為上層應(yīng)用程序提供一致的應(yīng)用程序編程接口(API)。MiniGUI的技術(shù)優(yōu)勢(shì):輕型、占用資源少,高性能、高可靠性,可配置,可伸縮性強(qiáng),跨操作系統(tǒng)支持等。

視傳機(jī)的實(shí)現(xiàn)

視傳機(jī)的最主要功能包括:通過IP或者向服務(wù)器注冊(cè)的ID號(hào)呼叫另一臺(tái)接在網(wǎng)絡(luò)上的設(shè)備,進(jìn)行視頻流實(shí)時(shí)雙向收發(fā)(1幀-25幀/s),最高分辨率可達(dá)640×480(廣播級(jí)圖像質(zhì)量/D1),可設(shè)置音頻流格式,G.711/GSM/SPEEX,此功能適用于高網(wǎng)絡(luò)帶寬的應(yīng)用環(huán)境。另外視傳機(jī)還可以實(shí)現(xiàn)電影播放,音視頻單向傳輸(遠(yuǎn)程監(jiān)控),音視頻錄制播放,圖片單雙向收發(fā),音視頻郵件收發(fā)等功能。

視傳機(jī)實(shí)現(xiàn)這些功能基本原理就是用MiniGUI制作圖形界面進(jìn)行人機(jī)交互,用戶通過鍵盤或者遙控器進(jìn)行指令輸入,MiniGUI接收用戶指令,并傳給操作系統(tǒng)(這里我們使用Linux 2.6.19),操作系統(tǒng)根據(jù)指令的不同進(jìn)行不同的操作,例如若用戶想進(jìn)行視頻呼叫,操作系統(tǒng)就將指令發(fā)給Linphone,Linphone就在SIP協(xié)議的基礎(chǔ)上發(fā)起視頻呼叫,根據(jù)對(duì)方不同的狀態(tài)給出不同的響應(yīng),對(duì)方不在線、對(duì)方忙、對(duì)方正常應(yīng)答等,在正常應(yīng)答的情況下雙方協(xié)商音頻視頻通信編解碼方式,建立呼叫,進(jìn)行音視頻通信,然后任意一方掛機(jī),退出,完成一次通信,期間還可以進(jìn)行音視頻錄制等操作。再如若用戶想進(jìn)行電影播放,則操作系統(tǒng)會(huì)調(diào)出播放程序,播放用戶指定的電影文件。

視頻流的流程如下:由攝像頭(支持自帶插針式和TV輸出兩種)采集圖像數(shù)據(jù),交給操作系統(tǒng),操作系統(tǒng)根據(jù)用戶需要,將視頻數(shù)據(jù)進(jìn)行本地顯示、編碼錄制或者發(fā)送到對(duì)端,對(duì)端收到視頻數(shù)據(jù)送入VPU單元進(jìn)行解碼,然后顯示或者錄制等。通話過程中音頻流的流程為:通過mic采集音頻數(shù)據(jù),交給操作系統(tǒng),操作系統(tǒng)將數(shù)據(jù)送給Linphone,Linphone進(jìn)行一定格式的編碼,然后發(fā)送到對(duì)端,對(duì)端再進(jìn)行相應(yīng)的解碼,再將數(shù)據(jù)輸出到音箱或者耳機(jī)。

視傳機(jī)主要軟件Linphone的移植

Linphone有很多個(gè)版本,可以通過www.linphone.org免費(fèi)下載。我們這里使用帶視頻功能的linphone1.6.0版本,要將這個(gè)Linphone使用在開發(fā)板上,需要做3個(gè)方面的工作:添加H264硬件視頻編解碼器(使用i.MX27的VPU單元進(jìn)行視頻編解碼),修改程序使之與操作系統(tǒng)和其他應(yīng)用程序進(jìn)行通信,最后交叉編譯Linphone至開發(fā)板。

Linphone功能結(jié)構(gòu)

Linphone1.6.0版本的功能結(jié)構(gòu)如圖1。

console包括了整個(gè)終端界面部分,將界面操作和命令行輸入交由下層處理。

coreapi包含Linphone大部分核心接口函數(shù),如讀配置文件進(jìn)行程序初始化、呼叫的建立和結(jié)束、對(duì)SDP消息的處理等。

osip2是一個(gè)短小簡(jiǎn)潔的sip協(xié)議棧,專注于sip底層解析。

exosip是osip2的一個(gè)擴(kuò)展協(xié)議集,它部分封裝了osip2協(xié)議棧,使得它更容易被使用。

mediastreamer模塊負(fù)責(zé)語音及鈴音等的處理及傳輸,視頻的編解碼(調(diào)用ffmpeg的庫)、聲卡的選擇等。

ortp將音視頻打包為rtp包發(fā)送至指定端口

speex是一種音頻解碼庫。

添加H264硬件視頻編解碼器

Linphone1.6.0 本身具有視頻編解碼功能,默認(rèn)具有H263 、mpeg4、mjpeg等編解碼器,我們要仿照這些編解碼器的源碼結(jié)構(gòu)添加H264解碼器,重要的是將編解碼器的軟件編解碼部分替換成i.MX27的 VPU(視頻處理單元)來進(jìn)行硬件編解碼,因?yàn)閕.MX27的CPU處理速度有限,遠(yuǎn)及不上PC的CPU,而i.MX27的VPU則是專門進(jìn)行視頻編解碼處理的協(xié)處理器,在處理視頻數(shù)據(jù)的時(shí)候是不需要CPU參與。

代碼的添加過程如下:在向Linphone注冊(cè)編解碼器的地方添加H264編解碼器,使得Linphone具備H264編解碼器的功能選項(xiàng),注冊(cè)的內(nèi)容包括:編解碼器id,一些名稱文本等標(biāo)識(shí)符,編解碼器初始化,視頻數(shù)據(jù)預(yù)處理、處理、后處理,編解碼器銷毀(釋放系統(tǒng)資源)等函數(shù)鏈接,編解碼器方法(進(jìn)行基本視頻編解碼處理之外的操作)等。注冊(cè)好編解碼器后,就是如何真正實(shí)現(xiàn)編解碼器對(duì)視頻流的編解碼處理了,也就是編解碼器的初始化,視頻數(shù)據(jù)預(yù)處理、處理、后處理,編解碼器銷毀等函數(shù)的實(shí)現(xiàn)。視頻處理的軟件部分主要包括內(nèi)核空間的驅(qū)動(dòng)和編解碼庫以及用戶空間的應(yīng)用程序。內(nèi)核驅(qū)動(dòng)負(fù)責(zé)系統(tǒng)控制和系統(tǒng)資源的申請(qǐng)和釋放,提供一些IOCTRL接口給用戶空間的應(yīng)用程序使用調(diào)配系統(tǒng)硬件資源;用戶空間的應(yīng)用程序調(diào)用適當(dāng)?shù)腎OCTRL和編解碼庫函數(shù)來實(shí)現(xiàn)復(fù)雜的編解碼系統(tǒng)。

VPU的內(nèi)核驅(qū)動(dòng)主要包括以下功能:模塊初始化、器件初始化、中斷服務(wù)策略、文件操作策略、器件關(guān)閉、編解碼庫、系統(tǒng)IO操作等。

視頻編解碼的計(jì)算和絕大部分視頻流的壓縮/解壓縮都是由i.MX27的硬件VPU單元來完成的,這樣軟件就不需要過多的控制或者時(shí)間消耗等來實(shí)現(xiàn)一個(gè)復(fù)雜的編解碼系統(tǒng)。VPU的硬件數(shù)據(jù)流可以用一個(gè)mpeg4格式數(shù)據(jù)的解碼實(shí)現(xiàn)過程展示(見圖2)。

硬件編解碼速度快、效率高、功耗和熱功耗低,節(jié)省了CPU的資源,實(shí)現(xiàn)了良好畫質(zhì)的傳輸,這一點(diǎn)充分體現(xiàn)了i.MX27芯片在視頻處理方面的優(yōu)勢(shì)。

結(jié)語

本文基于linphone、ffmpeg、speex、minigui、linux等開源軟件實(shí)現(xiàn)了嵌入式可視終端軟件系統(tǒng)——視傳機(jī)樣機(jī),如圖3所示。樣機(jī)充分使用已有的開源軟件成果進(jìn)行開發(fā),實(shí)現(xiàn)語音通話,視頻通話,視頻監(jiān)控,媒體文件播放等基本的功能。

責(zé)任編輯:gt

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 人機(jī)交互
    +關(guān)注

    關(guān)注

    12

    文章

    1195

    瀏覽量

    55243
  • 接口
    +關(guān)注

    關(guān)注

    33

    文章

    8358

    瀏覽量

    150517
  • 遙控器
    +關(guān)注

    關(guān)注

    18

    文章

    828

    瀏覽量

    65776
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    [推薦]imx27開發(fā)平臺(tái),H.264硬件編解碼,高清視頻首選

    i.mx27開發(fā)板開發(fā)有針對(duì)性的產(chǎn)品,體驗(yàn)到真正的設(shè)計(jì)自由。在多媒體處理能力方面,i.MX27芯片內(nèi)部集成了一個(gè)增強(qiáng)型低功耗多媒體的H.264硬件編解碼模塊。設(shè)計(jì)工程師可以利用H.264硬件
    發(fā)表于 04-07 14:02

    [推薦]imx27開發(fā)平臺(tái),H.264硬件編解碼,高清視頻首選

    i.mx27開發(fā)板開發(fā)有針對(duì)性的產(chǎn)品,體驗(yàn)到真正的設(shè)計(jì)自由。在多媒體處理能力方面,i.MX27芯片內(nèi)部集成了一個(gè)增強(qiáng)型低功耗多媒體的H.264硬件編解碼模塊。設(shè)計(jì)工程師可以利用H.264硬件
    發(fā)表于 04-07 14:11

    圖文詳解基于ARM9的MX27嵌入式視頻傳輸開發(fā)系統(tǒng)

    ,可視電話,可視門禁對(duì)講,網(wǎng)絡(luò)廣告機(jī)等行業(yè)和方向。辰漢電子發(fā)布了i.MX27 MDK1的嵌入式開發(fā)板!i.MX27 核心特色如下:(400Mhz主頻,DDR SDSAM 128Mb,N
    發(fā)表于 04-22 17:54

    MX27 MDK1開發(fā)板介紹

    ,智能公交系統(tǒng),可視電話,可視門禁對(duì)講,網(wǎng)絡(luò)廣告機(jī)等行業(yè)和方向。辰漢電子發(fā)布了i.MX27 MDK1的嵌入式開發(fā)板!i.MX27 核心特色如下:(400Mhz主頻,DDR SDSAM
    發(fā)表于 06-22 13:15

    h.264硬件編解碼的嵌入式開發(fā)板 MX27 MDK1

    。作為嵌入式系統(tǒng)的優(yōu)秀芯片i.MX27已經(jīng)被廣泛應(yīng)用在視頻監(jiān)控,IP Camera,智能公交系統(tǒng),可視電話,可視門禁對(duì)講,網(wǎng)絡(luò)廣告機(jī)等行業(yè)和方向。辰漢電子發(fā)布了i.MX27 MDK1的
    發(fā)表于 06-30 16:35

    MX27 MDK1開發(fā)板介紹

    的優(yōu)秀芯片i.MX27已經(jīng)被廣泛應(yīng)用在視頻監(jiān)控,IP Camera,智能公交系統(tǒng),可視電話,可視門禁對(duì)講,網(wǎng)絡(luò)廣告機(jī)等行業(yè)和方向。辰漢電子發(fā)布了i.MX27 MDK1的嵌入式開發(fā)板!
    發(fā)表于 07-10 14:13

    視頻傳輸安防監(jiān)控領(lǐng)域最佳開發(fā)平臺(tái)ARM9飛思卡爾i.MX27

    。作為嵌入式系統(tǒng)的優(yōu)秀芯片i.MX27已經(jīng)被廣泛應(yīng)用在視頻監(jiān)控,IP Camera,智能公交系統(tǒng),可視電話,可視門禁對(duì)講,網(wǎng)絡(luò)廣告機(jī)等行業(yè)和方向。辰漢電子發(fā)布了i.MX27 MDK1的
    發(fā)表于 07-30 16:11

    MX27 MDK1開發(fā)板介紹

    ,智能公交系統(tǒng),可視電話,可視門禁對(duì)講,網(wǎng)絡(luò)廣告機(jī)等行業(yè)和方向。辰漢電子發(fā)布了i.MX27 MDK1的嵌入式開發(fā)板!i.MX27 核心特色如下:(400Mhz主頻,DDR SDSAM
    發(fā)表于 08-03 14:43

    [原創(chuàng)]MX27 MDK1產(chǎn)品介紹

    ,智能公交系統(tǒng),可視電話,可視門禁對(duì)講,網(wǎng)絡(luò)廣告機(jī)等行業(yè)和方向。辰漢電子發(fā)布了i.MX27 MDK1的嵌入式開發(fā)板!i.MX27 核心特色如下:(400Mhz主頻,DDR SDSAM
    發(fā)表于 11-12 09:31

    飛思卡爾i.mx27i.mx31開發(fā)板中文資料

    飛思卡爾i.mx27、i.mx31開發(fā)板的詳細(xì)中文資料 i.MX27 是飛思卡爾推出的基于ARM926核心IP的多媒體微處理器,是i.MX21的升級(jí)版。作為嵌入式系統(tǒng)的優(yōu)秀芯
    發(fā)表于 02-10 11:42 ?2434次閱讀
    飛思卡爾<b class='flag-5'>i.mx27</b>、<b class='flag-5'>i.mx</b>31開發(fā)板中文資料

    圖文詳解飛思卡爾ARM9之i.mx27視頻傳輸多媒體領(lǐng)域開發(fā)

    圖文詳解飛思卡爾ARM9之i.mx27視頻傳輸多媒體領(lǐng)域開發(fā) i.MX27 是飛思卡爾推出的基于ARM926核心IP的多媒體微處理器,是i.MX21的升級(jí)版。作為嵌入式系統(tǒng)
    發(fā)表于 02-10 11:55 ?1602次閱讀
    圖文詳解飛思卡爾ARM9之<b class='flag-5'>i.mx27</b>視頻傳輸多媒體領(lǐng)域開發(fā)

    i.MX27移動(dòng)視頻監(jiān)控終端方案

    設(shè)計(jì)了一種基于i.MX27的移動(dòng)視頻監(jiān)控終端,應(yīng)用于公交視頻監(jiān)控系統(tǒng)中。該系統(tǒng)已經(jīng)取得了良好的使用效果。
    發(fā)表于 01-06 14:46 ?1815次閱讀
    <b class='flag-5'>i.MX27</b>移動(dòng)視頻監(jiān)控終端方案

    i.MX27i.mx27l數(shù)據(jù)表多媒體應(yīng)用處理器

    The i.MX27 and i.MX27L (MCIMX27/MX27L) multimedia applications processors represents the nex
    發(fā)表于 09-19 10:04 ?7次下載
    <b class='flag-5'>i.MX27</b>和<b class='flag-5'>i.mx27</b>l數(shù)據(jù)表多媒體應(yīng)用處理器

    飛思卡爾I.MX27機(jī)器人視頻監(jiān)控系統(tǒng)設(shè)計(jì)

    基于飛思卡爾I.MX27開發(fā)的機(jī)器人視頻監(jiān)控系統(tǒng)正式基于市場(chǎng)對(duì)機(jī)器人視頻監(jiān)控系統(tǒng)的迫切需求推出的一款智能化高科技產(chǎn)品。
    發(fā)表于 07-01 09:50 ?738次閱讀

    基于i.MX27網(wǎng)絡(luò)音視頻通信的實(shí)現(xiàn)

    的刺激,基于網(wǎng)絡(luò)的音視頻通信行業(yè)迅速發(fā)展起來。本文介紹基于Freescale公司i.MX27硬件平臺(tái),基于SIP(初始會(huì)話協(xié)議)協(xié)議的網(wǎng)絡(luò)
    發(fā)表于 03-04 14:02 ?487次閱讀
    基于<b class='flag-5'>i.MX27</b>的<b class='flag-5'>網(wǎng)絡(luò)</b>音視頻通信的<b class='flag-5'>實(shí)現(xiàn)</b>