原创 HM編碼器代碼閱讀(33)——幀間預測的總結

原理 理論介紹:HEVC/H.265理論知識(4)——幀間預測 AMVP模式 HM編碼器代碼閱讀(12)——CU編碼 HM編碼器代碼閱讀(13)——幀間預測之AMVP模式(一)總體流程 HM編碼器代碼閱讀(14)——幀間預測之AMVP模

原创 webrtc(2) 數據源和數據輸出點

數據源和數據輸出點 本文分析webrtc的數據源和數據輸出點: 數據源 數據輸出點 數據源 VideoSourceInterface 表示一個數據源,即某一個模塊可以從VideoSourceInterface獲取數據 數據源可以產

原创 webrtc(4) 模塊之間的關係

模塊之間的關係 發送端 1、Transport,是最底層的發送操作,位於所有模塊的底部,用於把數據(rtp、rtcp)發送到網絡中 2、RTPSenderVideo、RTPSenderAudio,屬於RTPSender的子模塊,處理具體

原创 webrtc(10) RTP視頻數據發送模塊

RTP視頻數據發送模塊 視頻數據發送模塊:RTPSenderVideo RTPSenderVideo它包含下面的模塊: (1)UlpfecGenerator (2)FlexfecSender 入口函數:RTPSenderVideo:

原创 webrtc(1) 信號槽sigslot

信號槽sigslot       信號槽的作用     webrtc中有一個重要基礎組件——信號槽,它和qt中的信號槽類似,它以發送信號的方式分離調用者和被調用者,達到耦合的目的。另外,webrtc中的信號槽是線程安全的。 信號槽的用法 

原创 webrtc(5) 採集模塊

採集器VideoCapturer 採集器的定義 class VideoCapturer : public sigslot::has_slots<>, public rtc::VideoSourceInterface<webrtc::Vid

原创 webrtc(3) 模塊

模塊 webrtc是基於模塊的,每個模塊的工作職責分的很清楚,各個模塊之間的交互通過回調函數、信號槽、消息機制進行 模塊流水線 發送側 Created with Raphaël 2.1.2開始採集模塊編碼模塊平滑發送模塊RTP打包模塊

原创 x264動態改變參數

x264動態改變參數 1、在編碼的過程中經常會遇到需要改變編碼參數的情況,比如切換分辨率,碼率等 2、有的參數可以在運動時動態修改;有的參數則必須在open之前設定,如果需要修改就必須要先關閉編碼器然後重新打開 3、下面我們來看一下哪

原创 x264幀內預測

x264幀內預測 理論     1、宏塊大小是 16x16,每個宏塊包含一個 16x16 大小的亮度塊和兩個 8x8 的色度塊 2、亮度分量     對於亮度分量而言,幀內預測只針對 16x16 的塊或者 4x4 的小塊,換句話說,對於

原创 x264比較重要的參數

x264核心參數 x264有若干參數對編碼速度和編碼質量影響很大,對x264的優化有重要參考意義。 核心參數1 這類參數通過preset的相關設置來解讀 這些參數主要影響編碼速度和比特率以及視頻質量,涉及的參數有: /* 參考幀數

原创 x264的preset和tune

x264的preset和tune preset preset是x264中最重要的選項,它影響編碼性能和編碼速度,它由不是一個單一的參數,而是由一組參數構成。preset分爲下面幾種類型: static const char * cons

原创 webrtc(7) 編碼數據發送模塊

編碼數據發送模塊 VideoSendStream把VideoStreamEncoder和VideoSendStreamImpl作爲子模塊,就可以很好的處理編碼和發送之間的關係了 前面說到編碼之後的數據通過VideoSendStreamI

原创 ffmpeg 的時間

ffmpeg 的時間 名詞解釋 PTS:播放時間戳 DTS:解碼時間戳 注意:如果沒有 B 幀,那麼 PTS 和 PTS 是一樣的 音視頻流中有一些信息表明了,音視頻以多快的速度播放,音頻是採樣率,視頻則是幀率 ffmpeg 中的時間

原创 webrtc(8) RTP模塊——RtpRtcp、ModuleRtpRtcpImpl

RTP模塊 RTP相關的模塊主要是RtpRtcp(ModuleRtpRtcpImpl),恕我直言,webrtc裏面rtp模塊調用關係很複雜,繞來饒去,看的很頭疼,可能是爲了所謂的接口簡潔吧 RtpRtcp是一個純虛類,具體實現的實現是M