1. 程式人生 > >手機Android音視訊採集與直播推送,實現單兵、移動監控類應用

手機Android音視訊採集與直播推送,實現單兵、移動監控類應用

      最新手機採集推送直播監控以及EasyDarwin開源流媒體平臺的版本及程式碼:

恰逢2014 Google I/O大會,不難看出安卓在Google的推進以及本身的開放性作用下,已經快延生到生活的各個方面了,從安卓智慧手機、平板,到可穿戴的Android Ware、眼鏡、手錶、再到Android汽車、智慧家居、電視,甚至最近看新聞,日本出的幾款機器人都是Android系統的,再把目光放回監控行業,傳統監控中的移動終端裝置,例如:單兵裝置、手持裝置、車載終端裝置,包括家庭監控中用到的智慧裝置,都可以用Android系統替代了,不僅開發容易,而且易擴充套件,裝置也更加智慧了。


圖 - Android在手持裝置中的應用

      一步一步來,我們先實現Android手機的音視訊採集與上傳的實時監控功能。Google Code上有一個開源專案:,spydroid能在Android手機中建立一個精簡的HTTP Server和RTSP Server,功能類似於一般的IpCamera,既能夠通過網頁訪問攝像機並修改監控配置,還能通過http或者rtsp協議,獲取監控的實時音視訊,而且從其程式碼結構中,可以看出,spydroid已經實現了RTSPServer、RTSPClient、RTP、RTCP、H264、AAC...等等功能,總之,咱們需要的Utility都已經具備了,只要將這些功能組合到一塊就能實現咱們要的直播需求了。


圖 - Android實現IPCamera的功能

      在之前的部落格“基於Darwin實現的分散式流媒體直播伺服器系統”中,我們用Windows的攝像頭和麥克風分別採集音視訊資料,編碼成H264和AAC,再用RTP打包,推送到Darwin流媒體伺服器,實現直播。同樣,我們參考EasyIpCamera的設計方法,App啟動後,連線並保活至中心管理伺服器,接收來自CMS的控制命令。採集安卓攝像頭視訊和mic聲音,進行H264和AAC編碼(這裡我們只參考spydroid實現了硬編碼,軟編碼在後續中將會更新進來,不過經過嘗試,目前大部分Android音視訊採集都支援硬編碼),再通過RTSP和RTP,將實時音視訊資料推送到流媒體伺服器,並由流媒體伺服器進行轉發和分發,實現直播。


圖 - Android接入EasyDSS

      這裡主要就是RTSP/RTP的推送過程,這個在之前的部落格“基於DSS的先偵聽後推送式流媒體轉發”中詳細描述了這個過程,具體的推送程式碼也可以參考live555的DarwinInjector類實現,咱們這裡直接修改spydroid中的RTSPClient就可以實現ANNOUNCE/SETUP/PLAY/RTP過程了,具體流程原始碼及協議流程也可以參考“用Darwin和live555實現的直播框架”中的描述。

      使用方法與部落格“基於Darwin實現的分散式流媒體直播伺服器系統”中EasyIpCamera的方法一致,只需要配置EasyDSS伺服器CMS的地址和埠號,就可以接入到EasyDSS,後續所有流程與EasyIpCamera類似,只有當有客戶端請求實時視訊的時候才會推送音視訊流,其他情況只與CMS連線保活,流媒體處於Idle狀態。


圖 - Android採集端配置介面

      實時效果:經過測試對吧,延時性與網路和手機的相關性很大,不同網路條件,不同手機硬體,可能對比出的延時效果不一樣,用三星Glaxy3手機,在網路情況比較好的情況下,實時音視訊的延時大概在1.3s(公網傳輸)左右:


圖 - 連續測試2'52',延時1.35s


圖 - 連續測試9'17'',延時1.58s

      未來還會繼續擴充套件和優化Android實時音視訊採集程式,包括加入錄影、抓圖、軟編碼、對講、抖動控制、錄影上傳等等方面,歡迎大家共同交流和進步!

------------------------------------------------------------

本文轉自www.easydarwin.org,更多開源流媒體解決方案,請關注我們的微信:EasyDarwin 

相關推薦

手機Android視訊採集直播實現單兵移動監控應用

      最新手機採集推送直播監控以及EasyDarwin開源流媒體平臺的版本及程式碼:恰逢2014 Google I/O大會,不難看出安卓在Google的推進以及本身的開放性作用下,已經快延生到生活

手機Android視訊採集直播

恰逢2014 Google I/O大會,不難看出安卓在Google的推進以及本身的開放性作用下,已經快延生到生活的  各個方面了,從安卓智慧手機、平板,到可穿戴的Android Ware、眼鏡、手錶、再到Android汽車、智慧家  居、電視,甚至最近看新聞,日本出的幾

Android 視訊採集軟編碼總結

前言 本文總結了筆者在 Android 音視訊採集與軟編碼中的一些經驗與技巧,包括移植 FFmpeg、YUV 視訊幀處理、最新的 JNI 編寫技巧、 ndk 開發技巧等,為了不扯太遠本文不會對音視訊編碼的一些原理性東西進行剖析,也不會大量貼原始碼,更注重使用方法與

iOS 視訊採集編碼

學習過音視訊的都知道,不常用的話就會容易忘記。因此,記下以前學些的點滴。(這不是入門貼) 主要分為以下主題做學習記錄: 視訊採集與編碼音訊採集與編碼video.png 視訊採集與編碼 視訊採集 獲取輸入裝置NSError *deviceError; AVCaptureDeviceInput *in

視訊開發著作《Android視訊開發》終於發售了先來一波簽名書福利!

經歷了兩年多,我的著作終於和大家見面了,寫書是一件很磨練人耐力的事情,從打算寫一本書開始後,心裡無時不刻有一塊大石頭壓在頭頂。一來要保證專業性,二來要保證質量,同時還要兼具備怎麼表達,才能讓別人明白所說的意思。所以看起來沒有那麼簡單。近年來,直播,短視訊行業相關

EasyPusher進行Android UVC外接攝像頭直播實現方法

最近EasyPusher針對UVC攝像頭做了適配.我們結合了UVCCamera與EasyPusher,支援將UVC攝像頭的視訊推送到RTSP伺服器上.在此特別感謝UVCCamera這個牛逼的專案! 來看看是怎麼操作UVC攝像頭的吧.我們實現了一個專門檢測UVC

伺服器端接入有盟實現android 和 ios的功能

       在伺服器端要做可以主動推送給客戶端一些提示資訊,比如會員到期,有人讚了你的評論,有人關注你這樣的提示資訊,        作為新手,暫時還不能自己寫一些restful的東西,藉助有盟現成的推送api,做一下記錄,方便以後使用。        有盟開發文件 ht

點擊極光實現跳轉

定義 ctf 每次 con 消息 center 不同的 tno handler   說實話,極光推送接觸過好幾遍了,但是每次開發都是實現簡單的展示功能,最近接手的一款app要求只在後臺展示,還要實現點擊通知欄跳轉到相應的詳情界面,於是便以為很簡單的開始了,而且還很嗨的那種,

Android 視訊深入 十六 FFmpeg 手機攝像頭實現直播 (附原始碼下載)

原始碼地址https://github.com/979451341/RtmpCamera/tree/master配置RMTP伺服器,雖然之前說了,這裡就直接貼上過來吧1.配置RTMP伺服器這個我不多說貼兩個部落格分別是在mac和windows環境上的,大家跟著弄MAC搭建RT

視訊採集封裝到直播流原理

上次好早之前也寫過一篇,隨著工作的深入對這塊知識又鞏固了一遍,算是一個重寫和擴充套件版 舊的總結跳轉,那麼有啥不同呢? 1. 介紹協議的優缺點以及怎麼選擇 2. 會介紹壓縮編碼的原理 3. 測試關注的質量指標 那麼基本框架其實是

視訊採集封裝到直播流的簡單原理

那麼今天要分享的主要是兩個內容,第一個是對硬體採集的資源怎麼做一個打包封裝,另一個是處理完成的資源如何直播,作為在日常業務測試線的一個業務邏輯擴充套件,純粹個人理解,所以不會有一些深入的講解,畢竟網上的文章夠多了。 直接用visio花了一張圖:

Android視訊學習第4章:視訊直播實現視訊

H.264標準學習 1.H264編碼框架 H264碼流檔案分為兩層: (1) VCL(Video Coding Layer)視訊編碼層: 負責高效的視訊內容表示,VCL 資料即編碼處理的輸出,它表示被壓縮編碼後的視訊資料序列。 (2)

Android視訊開發初探之AudioRecordAudioTrack完成音訊採集播放

有陣子沒出文章,接下來爭取每週一更,將沉澱的東西記錄下來,廢話不多說 剛接觸了音視訊方面,趁熱乎記錄一下,歡迎大家指正 接下來會分為一下幾點來介紹: 基礎知識準備 Android MediaRecorder和AudioRecord 與 M

Android-視訊(5):用 Camera API 採集視訊資料並用SurfaceView顯示

0.許可權設定 之前的文章都忘記說明了許可權的設定,一起需要的許可權如下: <uses-permission android:name="android.permission.RECORD_AUDIO" /> <uses-permission andro

android進階4step2:Android視訊處理——視訊錄製播放

錄音 MediaRecoder Android有一個內建的麥克風,通過它可以捕獲音訊和儲存,或在手機進行播放。 有很多方法可以做到這一點,但最常見的方法是通 過MediaRecorder類。 MediaRecoder常用方法 方法名 描述

C#FFmpeg視訊採集RTMP伺服器程式碼思路整理

C#視訊採集與推送RTMP伺服器程式碼思路整理:在看過FFmpeg後是否認為寫C#的視訊流採集和推送還是一頭霧水啊?深有此感。領導是C#的高手,說可以通過C或C++的程式碼直接複製貼上到C#工程然後進行適配程式碼就可以了,因為C#使用ffmpeg的類名和變數、方法等都與C保持

iOS直播技術分享-視訊採集(一)

1、iOS直播技術的流程        直播技術的流程大致可以分為幾個步驟:資料採集、影象處理(實時濾鏡)、視訊編碼、封包、上傳、雲端(轉碼、錄製、分發)、直播播放器。 資料採集:通過攝像頭和麥克風獲得實時的音視訊資料;影象處理:將資料採集的輸入流進行實時濾鏡,得到我們美化之後的視訊幀;視訊編碼:編碼分

Android視訊(一) Camera2 API採集資料

這是Android音視訊的第一篇文章,終於回到了我的老本行上。之前好像從來沒有做過Camera相關的開發,這塊對我來說還是有點陌生,所以從頭開始學起。 Camera2 在Android API21中Google釋出了Camera2來取代原本的Camera,兩者的變動也是比較大的。 Ca

windows下ffmpeg視訊採集流【較亂懶的整理了】

【大多為蒐集的文章,都歸類為,轉載。所以沒有標明,來處。】 1.windows下ffmpeg的編譯:         如:./configure --disable-yasm --enable-static --enable-indev=dshow 如果裝了yasm,x2

監控視訊採集Web直播開發全流程分析

內容概要: 攝像頭 => FFmpeg => Nginx伺服器 => 瀏覽器 從攝像頭拉取rtsp流 轉碼成rtmp流向推流伺服器寫入 利用html5播放   1.開發流程 1.1 通過FFmpeg視訊採集和轉碼   在音視訊處理領域,FFmpeg基本