『壹』 android中做視頻監控系統,使用海康威視的攝像頭,如何獲取視頻留,如何在android端實現編碼解碼
你為什麼在手機端做編碼呢
『貳』 Android 中實時獲取戶外監控攝像頭的視頻信息怎麼做
Android中實時獲取戶外監控攝像頭的視頻信息的方法為:
1、使用FFMpeg進行視頻採集,使用Live555進行RTP傳輸,使用VideoView進行播放。
csdn提到:重載FrameSource,寫一個服務類,可以從FrameSource的派生類讀取幀數據,轉發給live555.
評價:本方案大型訪問量大的不行,少量連接比如100以內的可以。
2、用gstreamer完成採集、編碼、組播。客戶端使用VideoView進行播放。
評價:本方案優點為可以實現大訪問量。缺點是基本從底層架構,代碼量比較大。
3、使用FFmpeg進行視頻採集,使用ffserver進行視頻轉發,客戶端使用VideoView播放。
評價:優點是實現簡單、容易演示,缺點是實時性不好以及用戶量大不行。
『叄』 如何用Android手機遠程開啟電腦攝像頭實現視頻監控!
用Android手機遠程開啟電腦攝像頭實現視頻監控可以通過下載相關軟體得以實現,比較安全常用的軟體是網易移動辦公:
然後選擇需要連接的設備即可進行控制:
『肆』 Android音視頻開發-入門(三):使用 Camera API 採集NV21數據
做過Android開發的人一般都知道,有兩種方法能夠做到這一點:SufaceView、TextureView。
Android 中Google支持的Camera Preview CallBack的YUV常用格式有兩種:一種是NV21,一種是YV12,Android一般默認使用的是YCbCR_420_sp(NV21)
『伍』 Android 開發板有哪些如何選擇
這里我只是給出我選購Android開發板的思路,供大家參考:
(1) 一定要支持比較新的Android版本
這里我把Android手機也算在Android開發板裡面吧。目前,支持Android源碼版本最好的手機/開發板應該就是Google的干兒子了(Nexus系列),官方最新源碼編譯好了就可以直接在上面跑了,唯一我覺得不太方便的就是手機的介面太有限,比如沒有串口、有線網口、豐富的GPIO等等,調試和擴展起來比較受限。
如果不是購買官方源碼支持的Android設備/開發板,那麼你就需要開發板生產商提供對應的Android源碼(其實主要是patch包),因此,我舉得如果一個Android開發板只能提供Android 2.3版的源碼,建議你就不用考慮了。
(2)最好選購比較熱門的開發板
孤軍奮戰,遇到問題沒人交流是最痛苦的事兒了,因此,我會比較看重那些社區比較完善和活躍、關注度和開發者比較多的開發板,這里比較推薦一些開源硬體,如樹莓派,Beaglebone等等,國內國外都很火,不僅有很多大牛分享開發經驗,而且遇到問題也很容易在社區搜到解決方案。
(3) 其他的綜合考慮
對於我來說,上面兩個因素是我最看重的,當然,也還有其他的可以參考的因素,比如:價格,文檔資料,開發板的介面(串口、網路、USB OTG、HDMI等等),開發板的處理器廠商(TI?高通?Marvell?)開發板的性能(CPU、內存大小等)。
3. Android開發板推薦
根據上面我介紹的原則,我相信大家也很快能選中自己心儀的開發板,不過我相信肯定還是會有童鞋希望我能推薦一款,那麼這里就給大家推薦我自己購買的開發板吧。
『陸』 哪家的S5PV210開發板有視頻教程呢主要是Linux和Android部分。
目前210開發板視頻很少,基本沒有專門為某個開發板錄的,基本都是第三方的。相比而言,飛凌的OK210視頻還多一點兒,給你個目錄參考一下吧。
Android視頻
1、飛凌S5PV210開發板Android編譯環境搭建視頻教程
2、飛凌S5PV210開發板Android源碼編譯視頻教程
3、飛凌S5PV210開發板將Android燒寫到開發板視頻教程
4、飛凌S5PV210開發板將Android開發環境搭建視頻教程
5、飛凌S5PV210開發板將Android應用開發實例視頻教程
WIN
CE視頻
1、飛凌S5PV210開發板wince環境搭建與編譯視頻教程
2、飛凌S5PV210開發板初識bsp視頻教程
3、飛凌S5PV210開發板bootloader的啟動流程視頻教程
4、飛凌S5PV210開發板LED驅動與應用程序開發視頻教程
5、飛凌S5PV210開發板串口驅動與應用程序開發視頻教程
6、飛凌S5PV210開發板攝像頭驅動與應用程序開發視頻教程
Linux視頻
1、飛凌S5PV210開發板Windows7
安裝Ubuntu12.04(32位)
虛擬機視頻教程
2、飛凌S5PV210開發板配置虛擬機環境視頻教程
3、飛凌S5PV210開發板Linux內核代碼的下載視頻教程
4、飛凌S5PV210開發板移植新的Linux內核代碼到開發板視頻教程
5、飛凌S5PV210開發板在新的Linux內核代碼中增加網路驅動視頻教程
6、飛凌S5PV210開發板在新的Linux內核代碼中增加LED驅動視頻教程
7、飛凌S5PV210開發板在新的Linux內核代碼中增加串口驅動視頻教程
8、飛凌S5PV210開發板在新的Linux內核代碼中增加LCD顯示功能視頻教程
9、飛凌S5PV210開發板在新的Linux內核代碼中增加電阻觸摸功能視頻教程
10、飛凌S5PV210開發板編寫Led應用程序視頻教程
11、飛凌S5PV210開發板編寫串口測試應用程序視頻教程
QT視頻
1、飛凌S5PV210開發板QT
creator
集成開發環境介紹視頻教程
2、
飛凌S5PV210開發板hello
world視頻教程
3、飛凌S5PV210開發板ubuntu環境搭建視頻教程
4、飛凌S5PV210開發板如何在開發板上運行qt4.7程序視頻教程
5、飛凌S5PV210開發板應用開發實例視頻教程
裸機視頻
1、飛凌S5PV210開發板下載bin文件到開發板視頻教程
2、飛凌S5PV210開發板裸機開發環境搭建視頻教程
3、飛凌S5PV210開發板實例1:蜂鳴器實驗視頻教程
4、飛凌S5PV210開發板實例2:LED流水燈實驗視頻教程
5、飛凌S5PV210開發板實例3:按鍵實驗視頻教程
6、飛凌S5PV210開發板實例4:串口操實驗視頻教程
7、飛凌S5PV210開發板實例5:IIC實驗視頻教程
8、飛凌S5PV210開發板實例6:PWM實驗視頻教程
硬體設計視頻
1、飛凌S5PV210開發板AD10的安裝視頻教程
2、飛凌S5PV210開發板AD10的介紹視頻教程
3、飛凌S5PV210開發板AD10元件庫的製作方法視頻教程
4、飛凌S5PV210開發板AD10封裝庫的製作方法視頻教程
5、飛凌S5PV210開發板OK210最小系統可行性分析視頻教程
6、飛凌S5PV210開發板設計原理圖視頻教程
7、飛凌S5PV210開發板生成PCB視頻教程
8、飛凌S5PV210開發板制板流程講解視頻教程
『柒』 Android 實時視頻採集—Camera預覽採集與顯示(平台系統camera功能理解分享)
本文之所以有必要編寫並作記錄,主要原因是因為在工作中開發出一個萬能的自定義camera預覽控制項之後,本是一個提高效率以及提供一個強大能力的控制項,但是產品並不能理解這個萬能控制項存在的意義,產品無法與技術設計相結合的理解使用;並且發現我們的智能業務部Camera自定義預覽技術雖然是使用多年,但是我們並沒有真正的形成規范,由於產品在不能夠理解系統平台(Android/iOS)給產品和研發帶來了什麼,導致產品可能會出現在不理解系統平台以及系統知識的情況下,臆想產品所謂的形態;當產品設計脫離了系統平台所支持的技術點以及設計的初衷,就會導致回歸問題的時候,出現不必要的討論,其根結就是一點:「信息不同步,知識不同步」。
所以,為了提高效率,就採用記錄和分享的方式,嘗試性推動產品、測試、研發三者對工程與架構的同步理解,更深的懂得程序架構設計意義,嘗試性通過信息同步的方式,在一個統一的知識儲備的平台下,共同完成一個更高效,和高品質的工程產品。(為了能夠讓非技術:產品設計,以及測試都能夠理解,所以,使用了更多的白話解釋)
附:強大靈活的FsCameraTextureView(第一版,自適應截取)( 第二版本版本:自適應展示)
首先,拋出幾個問題,
1)什麼是攝像頭支持的previewSize?
2)什麼是視頻或者圖片的pictureSize?
3) 如何獲取和查看攝像頭支持的PreViewSize 和PictureSize ?
4)手機預覽所見的區域SurfaceView(TextureView)與camera 的previewSize的關系是什麼?
5)為什麼會設計了兩種預覽方式view,兩種預覽方式都會有什麼樣子的效果呢?
一,概述
通過Android Camera拍攝預覽中設置setPreviewCallback實現onPreviewFrame介面,實時截取每一幀視頻流數據(簡單說來,就是通過設置一個介面,接收系統回調通知我們的每一幀數據)
二,知識點
1, camera支持的格式:
2,拍照流程
3,camera許可權
三,Android Camera中PreviewSize、 PictureSize、 SurfaceView(TextureView)之間的關系
1,PreviewSize:
相機預覽時候的能支持的尺寸,簡單的說一下,就是預覽的大小,也就是拍照前能夠看到的圖片大小。(通過Android手機相機可以試一下,這個參數設置不同,同樣的焦距下,拍攝桌子上一個固定距離的東西,看到的視野會不同)
相機的預覽尺寸,不能隨意的設置值,只能通過camera的parameters的getSupportedPreviewSizes方法,獲取支持的預覽尺寸列表,並從列表中選擇一個設置在parameters中。(通俗簡單的說就是,獲取camera中能夠支持的預覽大小合集,如果你想要查看某個預覽對應的尺寸,就把該尺寸設置到camera的屬性中即可,則camera會返回相對應尺寸的預覽數據流提供顯示)。
2,PictureSize :
指的是拍照之後,最終拍攝到的圖片大小,也就是圖片的質量。圖片尺寸同樣也只能從支持的列表中選取一個設置。 調用camera的takePicture方法(拍照)後,獲得拍照的圖像數據,注意picturesize和previewsize的寬高比也要保證一致,否則獲取的圖片會將preview時的圖像裁剪成picturesize的比例。 previewsize的解析度,只會影響預覽時的解析度,不會影響獲取圖片的解析度,所以preview只是確定了圖像的取景最大范圍。最終圖片的解析度是由picturesize來決定。 所以,最好的設置方法,例如:previewsize為1280*720,picturesize為2560*1440。(由於我們沒有拍照業務,目前這個知識,不做深究)
3,SurfaceView(TextureView)
用於展示camera預覽圖像的view,就是將preview獲得的數據,放在這個view上。所以如果preview的寬高比和SurfaceView的寬高比不一樣,就會導致看到的圖像拉伸變形。圖像拉伸變形解決的辦法:
(1)就是在確定preview的解析度後,重新設置SurfaceView寬高;
(2)如果SurfaceView寬高定死,則需要獲取一個比例適合SurfaceView尺寸的PreviewSize 的preview,盡量小的裁剪,然後填充在SurfaceView中。
4,利用圖片的顯示方式,理解Preview與SurfaceView(TextureView)顯示關系
ImageView (UI上面設計的一個控制項)與圖片bitmap 的關系,比如限定死一個ImageView的大小,但是圖片與ImageView尺寸不一致,就會有幾種方案,首先選取一張長方形1920*1080的圖片,ImageView就是紫色部分,無論長寬比都比ImageView要大。
圖片適配例1:拉伸填充ScaleType.FIT_XY :雖然被全部填充,但是整個圖片為了適配圖片已經扭曲,失真,圖片縮放到控制項大小,完全填充控制項大小展示。
圖片適配例2:等比例裁剪填充ScaleType.CENTER_CROP ,因為在該模式下,圖片會被等比縮放直到完全填充整個ImageView,並居中顯示。該模式也是最常用的模式了。如圖可以看到,圖片的高度是能完全展示出來的,但是左右部分被進行了裁剪,並沒有完全顯示。
圖片適配例3 : ScaleType.CENTER_INSIDE,此模式,用以完全展示圖片內容為目的。圖片將被等比縮放到能夠完整展示在ImageView中並居中,如果圖片大小,小於控制項尺寸,那麼就直接居中展示該圖片
圖片適配ImageView方式還有很多,就不一一列舉,這三種已經足夠重要,為什麼講解camera預覽,卻穿插了圖片的適配,其實可以這么理解,camera的preview就是由多張圖片組成,不斷的像幀動畫一樣變化,而SurfaceView就是一個載體,相當於ImageView,業務中定死了SurfaceView的大小之後,被動的承載你選擇的previewSize,來展示camera的Preview,你可以選擇類似於前面三種例子來理解preview的填充,以下會舉例說明preview的填充策略選擇有哪幾種方式,我們會採用哪種方式:
1)拉伸填充,自適應view,不可取,比如:手機的SurfaceView是整個手機的屏幕尺寸(全屏填充),或者任意尺寸比例的surfaceView,使用這種方式,就如同(圖片適配例1)的方式,導致視頻扭曲,拉伸。
2)等比例裁剪填充,目前我們項目中,採用的就是這種方式,並且提供給很多三方使用,已經成為一種獨立,並且穩定的技術實現自定義view,簡單說一下視頻的適配策略方式,SurfaceView隨便由業務方,自定義寬度大小,比如業務方選擇了1900*1000的SurfaceView, 我們的適配過程是:(1)從PreviewSize列表中選取最接近SurfaceView尺寸的PreviewSize(假設該攝像頭,只支持1920*1080,和320*640),1920*1080最接近,所以被獲取;(此處展示一下蹩腳的英文Try to find an size match aspect ratio and size,嘗試找到縱橫比與view大小比適中的一個尺寸)(2)等比例裁剪填充到SurfaceView,首先我們設計的邏輯是,先選取一個縮放比例,假設等比例1920的圖片按照SurfaceView的寬度等比例縮小到1900,而為了不讓Preview失真,則高度1080等比例縮小的值是1068.75(等比例方程式,這里就不重復初中的知識,請自行計算),所以圖片被壓縮成為1900*1068這個尺寸,依舊保證圖片完整,並且不失真。(3)將等比例縮減的圖片,1900*1068進行顯示在1900*1000的SurfaceView中,就會有一種效果類似(圖片適配例2),寬度全部展示,高度被裁剪。(如同 圖片適配例2中左右部分裁剪一樣的道理)
3)完全展示camera內容的縮放填充(類似圖片適配例3),我們打開任意一部手機的camera,預覽圖像都沒有全屏幕展示,類似拍照功能,所見即所得,PreviewSize是多少,就顯示什麼樣子的比例尺寸,以及最後生產的照片比例就是多少,我們的自定義view,也可以隨意設置大小,此模式下,用以完全展示camera內容為目的。Preview將被等比縮放到能夠完整展示在SurfaceView中並居中,但是可能會有部分位置無法填充(類似圖片適配例3顯示效果)。
(該方式只是進行了技術儲備,由於沒有業務場景設計,所以沒有使用,目前只是儲備了這樣的自定義控制項)
四,靈活的自定義TextureView預覽控制項
FsCameraTextureView(第一版,自適應截取):等比例裁剪填充,方式(適配方式2),採用前面說的適配方式2,而產出的一種自定義view,2019年5月產出至今,在金融APP,以及商城的app中使用,經過逐步優化,和多版本檢驗,目前該控制項,擁有以下特點: 1)穩定:目前各個使用場景,均無邏輯崩潰,內存泄漏,線程等任意問題; 2)靈活:隨意設置預覽view的尺寸大小,自適應任意業務設計;不僅僅滿足刷臉業務,並且滿足任意相機預覽業務方使用; 3)提高效率,減輕工作量:使用簡單,操作步驟簡潔,接入只需要兩步;減輕接入端,或者想要使用相機預覽的業務的工作量,不需要重復造車,並且安全穩定。
輸出的業務方有(經不完全統計):(目前業務為保密進行公網保密處理)1)**創新科技業務部-區塊鏈部門 2)泰國人臉識別業務SDK3)S D**Bank 人臉業務4)核驗身份證業務5)HT**Bank 人臉業務 6)**雲,商業平台部門
FsAllPreviewCameraTextureView(技術儲備版,全預覽模式顯示):完全展示camera內容的縮放填充,採用前面說的(適配方式3)適合拍照相關的業務使用,優點同樣是,外部業務隨意改變view大小,可以自適應view,由於目前沒有業務方使用,暫時做儲備,不深入講解。
如果可以控制項開源成功,後期,我將開源這兩個控制項,讓更多的使用方使用,我們也希望共同技術進步,提高工程產出的使用能力。
預計下一次分享內容是(臨時命名)
1)人臉核驗內存和線程爆表到泄漏為零
2)分享七年前參於的Scrum(如何提高崗位間效率所定製的敏捷開發過程)
本文參考:
https://www.jianshu.com/p/32e335d5b842
https://www.cnblogs.com/skyseraph/archive/2012/03/26/2418665.html