<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 消費電子 > 設計應用 > 基于S3C6410的視頻監控系統的設計與實(shí)現

基于S3C6410的視頻監控系統的設計與實(shí)現

作者: 時(shí)間:2012-02-08 來(lái)源:網(wǎng)絡(luò ) 收藏

下面列出編碼部分的關(guān)鍵代碼。
hOpen=open(MFC_DEV_NAME,O_RDWR | O_NDELAY);
上一行代碼打開(kāi)MFC設備。由預定義的宏MFC_DEV_NAME指定MFC設備文件路徑。
模塊的初始化部分需要指定編碼幀的長(cháng)寬,編碼幀的速率等參數。初始化的這些信息并沒(méi)有直接應用于設備,而是存儲于一個(gè)編碼參數的結構體類(lèi)型參數pCTX中,然后用下面的代碼進(jìn)行參數設置,也即將參數應用于實(shí)際的設備。
ioctl(pCTX->hOpen,cmd_init,&mfc_args);
編碼部分用下一行代碼。
ioetl(pCTX->hOpen,cmd_exe,&mfc_args);
在編碼完成后,可以通過(guò)函數獲取編碼后幀的內存地址。函數原型為:
void*SsbSipMPEG4EncodeGetOutBuf(vold*openHandle,long*size)。
最后關(guān)閉設備文件。
close(pCTX->hOpen);
同樣,對于一些流程控制部分的代碼,限于篇幅,沒(méi)有進(jìn)行詳細的描述。
3.3 網(wǎng)絡(luò )傳輸程序
網(wǎng)絡(luò )部分采用RTP實(shí)時(shí)傳輸協(xié)議進(jìn)行數據的傳輸。RTP(Real-time Transport Protocol)是用于網(wǎng)絡(luò )多媒體數據流的一種傳輸協(xié)議。為了使系統的更簡(jiǎn)單和穩定,采用已有的RTP庫進(jìn)行程序的開(kāi)發(fā)。本系統選用開(kāi)源的C語(yǔ)言庫oRTP進(jìn)行開(kāi)發(fā)。
oRTP庫是對RTP協(xié)議的一種,完全采用C語(yǔ)言編寫(xiě)。oRTP庫使用簡(jiǎn)單易用的接口,實(shí)現了RTP協(xié)議,可以工作于Linux,Windows等多個(gè)
平臺。
系統網(wǎng)絡(luò )傳輸模塊的流程比較簡(jiǎn)單。模塊首先初始化oRTP庫,然后傳輸數據,在傳輸完成后釋放oRTP庫資源。由于模塊流程較簡(jiǎn)單,在此就不列出系統的流程圖,僅針對具體的實(shí)現進(jìn)行說(shuō)明。下面列出網(wǎng)絡(luò )傳輸模塊的關(guān)鍵代碼。在傳輸數據之前,要對oRTP庫進(jìn)行一些基本的初始化操作。首先對時(shí)間戳進(jìn)行初始化,采用下面的一行代碼實(shí)現。
m_nUser-Timestamp=0;
然后,調用oRTP庫提供的初始化接口函數:
ortp_init();
ortp_scheduler_init();
在完成基本的初始化后,創(chuàng )建一個(gè)新的rtp會(huì )話(huà)對象,并且設置會(huì )話(huà)對象的一些參數和屬性。
session=rtp_session_new(RTP_SESSION_SENDONLY);
上面的代碼創(chuàng )建了一個(gè)新的rtp會(huì )話(huà)對象,接下來(lái)用下面的函數對session進(jìn)行參數和屬性的設置。
rtp_session_set_scheduling_mode(); rtp_session_set_blocking_mode(); rtp_session_set_remote_addr();rtp_session_set _payload_type();
上面的函數依次對rtp會(huì )話(huà)對象的調度管理、阻塞模式、發(fā)送目的地址和負載類(lèi)型進(jìn)行設置。限于篇幅,略去了調用參數。
發(fā)送數據調用庫函數:
rtp_session_send_wlth_ts();
在發(fā)送數據完成后,銷(xiāo)毀rtp會(huì )話(huà)對象,然后釋放oRTP庫的資源。
rtp_session_destroy(session);
ortp_exit();
在網(wǎng)絡(luò )傳輸模塊中需要注意的是,由于RTP協(xié)議對數據包的大小是有限制的,所以如果傳輸的視頻幀過(guò)大,需要進(jìn)行分包傳輸處理。

4 結語(yǔ)
本文在微處理器的開(kāi)發(fā)平臺上,實(shí)現了一種MPEG-4編碼的視頻。利用內部集成的MFC模塊進(jìn)行視頻編碼,實(shí)現了很高的編碼效率。最后,通過(guò)RTP協(xié)議進(jìn)行網(wǎng)絡(luò )數據傳輸。采用模塊化的之后,使得系統的網(wǎng)絡(luò )數據傳輸部分與具體的有線(xiàn)或者無(wú)線(xiàn)傳輸方式無(wú)關(guān)。文章在描述各部分實(shí)現流程的基礎上,詳細地說(shuō)明了關(guān)鍵部分的代碼實(shí)現。實(shí)驗測試中,數據編碼效率很高。采用了
MPEG-4編碼方式,在正常網(wǎng)絡(luò )情況下,傳輸視頻質(zhì)量較好,系統運行穩定。實(shí)驗證實(shí)了系統的可行性較高。

本文引用地址:http://dyxdggzs.com/article/165899.htm

上一頁(yè) 1 2 3 4 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>