新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 開源視頻服務器軟件MJPG-streamer的研究和應用

        開源視頻服務器軟件MJPG-streamer的研究和應用

        作者: 時間:2012-06-11 來源:網絡 收藏

        2)int input_run(void)
        該函數使用pthread_create函數創建工作線程。并使用pthread_detach函數將該線程設置為分離狀態。在input_uvc組件中,input_run函數創建cam_thread線程,該線程負責抓取攝像頭采集的一幀圖像并進行格式轉換,采用的是V4L2視頻設備開發框架。具體工作流程請參考下文描述。
        3)int input_stop(void)
        該函數通過調用pthread_cancel(pthread_t tid)函數實現主線程取消cain_thread線程(抓取數據幀的工作線程),這兩個線程在同一個進程內,共享該進程的地址空間。主線程通過內核發送信號以取消工作線程。tid是要取消線程的線程ID。
        4)int input_cmd(int in_cmd_type cmd,int value)
        該函數的主要功能是對網絡攝像頭鏡頭的控制,例如對色彩、飽和度、對焦等功能的控制。in_cmd_type結構體定義了對輸入組件進行控制的命令類型,把對鏡頭的控制命令類型和參數值傳入此函數。函數內進行匹配,以完成對鏡頭的控制操作。
        input_uvc組件的私有函數如下:
        1)void help(void)
        該函數打印相關的幫助信息到stderr。
        2)void*cam_thread(void*arg)
        這個工作線程的作用是抓取一幀數據并把它復制到全局緩沖區。它的工作流程如圖4所示。

        本文引用地址:http://www.104case.com/article/148910.htm


        工作流程不斷循環,直至線程退出。退出前使用pthread_cleanup_pop函數調用cam_cleanup線程清理函數。
        3)void cam_cleanup(void*arg)
        該函數是線程清理函數,線程退出前,使用此函數釋放在工作線程中被分配的資源。
        2.2 ouput_http輸出組件
        output_http輸出組件中的http.c文件內定義了服務器對客戶端請求的響應。
        send_snapshot、send_stream、send_error、send_file分別定義了如何響應客戶端發送截圖、發送視頻流、發送錯誤信息、發送文件的請求信息。
        command函數執行客戶端指定控制命令,并發送反饋信息。
        server_thread服務線程的作用是打開一個TCP socket并等待客戶端連接。如有客戶端鏈接,則為每一個連接到服務器的客戶端創建一個client_thread專門服務于該客戶端。
        client_thread客戶線程的作用是為連接到服務器的客戶端服務。

        3 在嵌入式中的
        本文通過修改源代碼,實現的額外功能。將作為,于嵌入式開發。
        系統以S3C2440微處理器為核心,構建嵌入式視頻監控系統。Arm9將攝像頭拍攝圖像經壓縮后傳到Web客戶端,客戶端除了可以查看攝像頭拍攝圖像外,還可以控制云臺設備,從而獲得任意角度的圖像。
        采用低端云臺作為前端的控制設備,嵌入式器可提供多個前端設備接口與多個云臺連接。嵌入式器根據各客戶端的請求,將圖像或云臺控制信號傳輸給相應的前端設備。本文只實現系統的基本模型,采用一個云臺設備。可在基本模型的基礎上,擴展成多路傳輸。
        3.1 系統硬件平臺
        系統的硬件平臺采用的是天嵌的TQ-2440開發板,CPU處理器是S3C2440AL,主頻為400MHz,最高可達533MHz,配備256MB的Nand Flash、2 MB的Nor Flash以及64 MB的SDRAM,可滿足系統要求。另外使用了一個V4L2攝像頭,以及一個RS485接口的低端云臺設備。

        c語言相關文章:c語言教程


        攝像頭相關文章:攝像頭原理
        矢量控制相關文章:矢量控制原理


        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 日喀则市| 乌海市| 宣武区| 巢湖市| 兴业县| 大同县| 临桂县| 墨脱县| 营口市| 临邑县| 镇平县| 全州县| 绵阳市| 郧西县| 蕉岭县| 云梦县| 陆河县| 肇州县| 鄂托克旗| 吉木萨尔县| 阜城县| 毕节市| 凤庆县| 拉孜县| 祁门县| 新营市| 安阳县| 长阳| 上栗县| 宜兰县| 海安县| 米林县| 密山市| 石门县| 靖边县| 汽车| 南康市| 巨野县| 德庆县| 雅安市| 龙川县|