九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
android視頻錄制、另一部手機實時觀看方案

          最近調(diào)研android視頻錄制、另一部手機實時觀看,大致有以下幾種思路。

 

1. android手機充當服務(wù)器,使用NanoHTTPD充當服務(wù)器,另一部手機或者pc通過輸入http://手機的ip:8080網(wǎng)址觀看。

這種方案可以參考 ipcamera-for-android開源項目,網(wǎng)址  http://code.google.com/p/ipcamera-for-android/source/checkout

 

可以運行的源代碼可以在這下載            http://download.csdn.net/detail/xiaoliouc/4933558

 

缺點:android手機必須支持MP4+ARM_BN格式,有些手機不兼容,延時有點厲害,前面調(diào)研在googlecode看到的代碼,現(xiàn)在看來方案不可取

 

2. android手機采用juv-rtmp-client.jar包,網(wǎng)上有收費的包,但可以搜索破解包,通過rtmp協(xié)議發(fā)布服務(wù)到red5服務(wù)器。服務(wù)器當然是red5了,可以用red5自帶的的OFLA Demo做測試??蛻舳舜a可以參考ivideochat,下載地址              http://download.csdn.net/detail/xiaoliouc/4933594

使用支持rtmp協(xié)議的播放器播放,如ffplay

 

缺點:demo延遲很厲害,僅供參考。rtmp協(xié)議半公開,難度比較大

 

3.android手機通過camera類拍攝視頻。把一幀一幀的圖像壓縮通過socket發(fā)送到服務(wù)器,服務(wù)器可以直接觀看。而要想讓另一臺手機也能觀看,可以讓服務(wù)器轉(zhuǎn)發(fā)來實現(xiàn)。

例子網(wǎng)上有很多,        http://download.csdn.net/detail/xiaoliouc/4933610

缺點:通過一幀一幀的發(fā)送數(shù)據(jù),傳輸過程耗費大量流量。玩玩可以,但實際項目中不可取。

 

4.android手機通過camera類拍攝視頻,把拍攝的視頻通過h264編碼,可以采用軟編碼(使用x264庫或者opencore軟件庫),java類通過jni調(diào)用編譯后的so文件來實現(xiàn)。然后通過基于udp的rtp協(xié)議傳輸?shù)椒?wù)器。為什么不使用tcp協(xié)議呢,因為tcp的重傳機制會產(chǎn)生延時和抖動,而單獨使用udp傳輸協(xié)議本身是面向無連接的,不能提供質(zhì)量保證,需要在udp協(xié)議只上采用rtp或者rtcp提供流量控制和擁塞控制服務(wù)。服務(wù)器通過ffmpeg對接收的h264解碼并播放。播放可以使用VLC media player。如果對c++比較熟悉,可以看看live555這個開源項目。

缺點:需要懂得的知識很多,jni啊,h264編碼解碼 ,rtp協(xié)議等。使用軟編碼,效率比較低,且視頻質(zhì)量較差。

 

5.android手機通過mediaRecorder類拍攝視頻,其中當然包括音頻了。把拍攝的視頻通過h264編碼,可以采用硬編碼(面向手機的硬件直接操作),只能針對3gp,mp4視頻格式。方法參考  http://blog.csdn.net/zblue78/article/details/6078040

這篇博客,里面講的很詳細,提取h264的sps,pps,可以參考      http://blog.csdn.net/peijiangping1989/article/details/6934317     

winHex是一款好用的16進制查看工具,下載地址           http://download.csdn.net/detail/xiaoliouc/4928773

 

代碼網(wǎng)上有很多,個人理解是:mediaRecorder錄制視頻(3gp,MP4),可以通過mMediaRecorder.setPreviewDisplay(mSurfaceHolder.getSurface());預(yù)覽視頻,通過localsocket發(fā)送到本地的localserversocket的h264實時視頻流。

這個過程涉及到硬編碼,硬編碼個人理解是,在預(yù)覽過程或者提前確定視頻的sps,pps,head(一般為0x00000001),不同的手機硬件不一樣。把得到的這些參數(shù)寫入h264,得到正確的h264視頻流,然后把流推送到流媒體服務(wù)器,使用支持rtsp協(xié)議的播放器播放,比如vlc。

 

6、采用HLS協(xié)議,服務(wù)器采用nginx,ffmpeg解碼。nginx服務(wù)器搭建過程,ffmpeg安裝過程  見我前幾篇文章。   

然后用ffmpeg對解碼后的mp4文件進行ts切片,生成帶有索引的m3u8文件,然后客戶端就可以通過瀏覽器http://ip :port/ *.m3u8訪問。

 

過程貌似是這樣的,但自己由于剛接觸不到一個周,還不太理解。

 

 6.相對容易、且效果不錯的方法,android手機上搭建rtsp服務(wù)器,另一臺手機使用VLC播放器輸入rtsp://ip:port/播放視頻。具體原理是,通過android手機對mediaRecorder錄制視頻,把localsocket傳輸?shù)奖镜氐牧鹘?jīng)過硬編碼,添加rtp頭,分離NALU包,根據(jù)rtsp協(xié)議交互過程把數(shù)據(jù)發(fā)送到對方。

 

代碼可以參考spydroid了,源代碼可以通過svncheckout,能夠正常運行,且效果不錯。

 

        http://code.google.com/p/spydroid-ipcamera/source/checkout     。網(wǎng)上還沒有分析spydroid源碼的文章,等自己空了有機會分析下源代碼。

 

7.前面講的都是單向視頻,如果是雙向視頻,其實就是視頻會議了,可以參考sipdroid開源源代碼了,網(wǎng)址           http://code.google.com/p/sipdroid/source/checkout

 

由于沒有時間,就不研究這個了。

 

 

 

 

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
??礡TSP流轉(zhuǎn)RTMP并推送至Web端展示
音視頻開發(fā)——通信直播協(xié)議和視頻推流丨RTMP-RTSP
Babosa的專欄
[FFmpeg]FFmpeg實現(xiàn)監(jiān)控攝像頭的RTSP協(xié)議轉(zhuǎn)RTMP協(xié)議直播
Android視頻直播核心技術(shù)(架構(gòu))詳解
一起玩樹莓派3 + 重磅:H.264硬編碼推流實現(xiàn)完整直播功能
更多類似文章 >>
生活服務(wù)
熱點新聞
分享 收藏 導長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服