原创 H264視頻傳輸、編解碼----RTP/RTCP協議

RTSP對流媒體提供了控制方法,使得實時流數據變得可控。但是它並不負責實時流數據的傳輸。實時流數據的傳輸和傳輸過程的同步、優化由RTP/RTCP來負責。 實時傳輸協議RTP( Real-time Transport Protocol)和實

原创 基於RTMP協議的音視頻傳輸----RTMP協議消息分類

消息Message分類 RTMP消息Message的格式如下: 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 +-+-+-+-+-

原创 H264視頻傳輸、編解碼----FFmpeg軟解碼

記錄一下之前項目的實際使用過程。 將按照Java層------>JNI接口------>JNI代碼中使用FFmpeg解碼。 首先Java層: public class CodecWrapper { //加載FFmpeg的動態so庫

原创 基於RTMP協議的音視頻傳輸----RTMP協議之握手

RTMP協議是Real Time Message Protocol(實時信息傳輸協議)的縮寫,它是由Adobe公司提出的一種應用層的協議。 RTMP協議基於TCP協議,依靠TCP協議提供可靠的數據傳輸,因此數據在網絡上傳輸不會出

原创 H264視頻傳輸、編解碼----RTP協議對H264數據幀拆包、打包、解包過程

H264幀需要通過RTP協議進行傳輸,這其中就涉及到H264數據幀的封包、拆包和解包等過程。 RTP協議格式 下面是 RFC 3550 中規定的 RTP 頭的結構: 0 1

原创 H264視頻傳輸、編解碼----RTP/RTCP/RTSP協議數據傳輸基於UDP or TCP

用一句簡單的話總結:RTSP發起/終結控制流媒體、RTP傳輸流媒體數據 、RTCP對RTP數據進行控制,同步。 一般情況下,RTSP協議採用TCP協議傳輸控制流媒體的指令,RTP/RTCP協議採用UDP方式傳輸控制指令。但是有時候RTSP

原创 Android USB設備通信--連接設備

Android設備檢測到USB設備插入,用戶授予連接權限後,即可進行設備的連接流程。 /** * 連接設備 */ private void connectDevice(UsbDevice usbDevice){ //And

原创 H264視頻傳輸、編解碼----MediaCodec硬解碼

public class RtspDecoder { private static final String TAG = RtspDecoder.class.getSimpleName(); //處理音視頻的編解碼的類

原创 基於RTMP協議的音視頻傳輸----FLV格式

基於RTMP協議傳輸Video 或者Audio,需要將音視頻數據轉成FLV格式,看一下FLV格式。 FLV格式 總體上,FLV格式由Flv header和Flv Body組成。 FLV Header Flv Header包含了F

原创 Android JNI開發--基本內容

前些天項目中有JNI開發的需求,突然發現竟然最基本的JNI的開發又忘了,只記得一些大概,還得搜半天。所以抽空再記錄一下相關的內容,以及一些開發時候的想法(想法這東西像靈感一樣,只有開發的時候才能想起來,時間長了就忘了,不記下來就浪

原创 H265數據結構與碼流分析

H265應該是在H264的基礎上,又做了優化改進。如果瞭解H264的數據結構,再去看H265的數據結構,就非常簡單了。 具體的H264的數據結構,可以看我的另一篇 H264數據結構 圖像幀序列 H264的圖像幀序列:00 00

原创 OkHttp3源碼解析--攔截器BridgeInterceptor

橋攔截器的作用有: 負責把用戶構造的請求轉換爲發送給服務器的請求,把服務器返回的響應轉換爲對用戶友好的響應; 轉換的過程就是添加一些服務端需要的header信息; 在Request階段配置用戶信息,並添加一些請求頭。在

原创 OkHttp3源碼解析--攔截器CacheInterceptor

CacheInterceptor顧名思義,它是和緩存的管理和獲取相關的: 從緩存中匹配Request的請求響應結果,根據緩存策略,如果能找到可用的緩存,直接返回; 將服務器返回的請求結果,寫入到緩存中; 更新現有緩存;

原创 Android JNI開發--集成第三方SO

我們的應用需要調用第三方so中的方法,然後,第三方可以提供相應的SO文件和相應的頭文件。 SO文件:libFunction.so; 頭文件:function.h,如下: extern "C" { ...... int ge

原创 H264視頻傳輸、編解碼----RTSP認證

  Rtsp認證主要分爲兩種:   基本認證(basic authentication)和摘要認證( digest authentication )。   基本認證是http 1.0提出的認證方案,其消息傳輸不經過加密轉換因此存在嚴重的安