1. 程式人生 > >webrtc 視訊編碼格式及引數配置

webrtc 視訊編碼格式及引數配置

一、視訊編碼格式初始配置

webrtc\media\engine\internalencoderfactory.cc

按照Push順序,優先選取第一個編解碼格式。

二、視訊解析度初始配置

webrtc\pc\videocapturertracksource.cc

選取的原則是,在kVideoFormats裡面找引數與kDefaultFormat預設值最接近的一組引數,作為本端的編碼能力。

三、視訊位元速率預設值

webrtc\media\engine\webrtcvideoengine.cc

EncoderStreamFactory::CreateEncoderStreams

四、預設QP、幀率最大值配置

webrtc\media\engine\webrtcvideoengine.cc

static const int kDefaultQpMax = 56;

const int kDefaultVideoMaxFramerate = 60;

五、使能SRTP

webrtc\src\webrtc\api\peerconnectioninterface.h

disable_encryption = true 取消SRTP

disable_encryption = false 開啟SRTP

配置金鑰:

bool Conductor::CreatePeerConnection(bool dtls)配置是否生成金鑰。

六、生效新的幀率位元速率流程

在webrtc裡面函式實現如下:
->VideoStreamEncoder::EncodeVideoFrame
->VideoSender::AddVideoFrame----在這個函式中讀取全域性變數encoder_params_,判斷是否需要調整視訊引數。
->VideoSender::SetEncoderParameters

->VCMGenericEncoder::SetEncoderParameters

->H264EncoderImpl::SetRateAllocation---傳遞新的幀率位元速率到編碼器。

七、H264打包模式

codec.cc  VideoCodec::SetDefaultParameters

相關推薦

webrtc 視訊編碼格式引數配置

一、視訊編碼格式初始配置 webrtc\media\engine\internalencoderfactory.cc 按照Push順序,優先選取第一個編解碼格式。 二、視訊解析度初始配置 webrtc\pc\videocapturertracksource.c

視訊檔案格式--視訊封裝格式--視訊編碼格式區分

前言 什麼是影片?其實就是一組(很多張)圖片,時間間隔很小的連續展示出來,人們就覺得畫面中的人物在動,這就是影片。 那電影的實質就是N多張圖片的集合。那每張圖片和幀又有什麼關係呢? 事實上,如果一部影片裡面的圖片,我們原封不動的全部存起來,空間會很大很大很大,但是如果

視訊編碼格式全面解析

下文轉載自:http://www.jianshu.com/p/4def60dd594f   我們在詳解各種主流的視訊格式之前,先拋開各種視訊格式的定義,來討論這樣一件事情:你覺得目前的視訊格式編碼混亂嗎?相信這個問題問出來,許多、、不同知識層次的人有不同的思考,但是答案卻都有一個共同點

Hadoop 學習研究(四):MapReduce shuffle過程剖詳解引數配置調優

MapReduce簡介    在Hadoop  MapReduce中,框架會確保reduce收到的輸入資料是根據key排序過的。資料從Mapper輸出到Reducer接收,是一個很複雜的過程,框架

webrtc 視訊編碼之 h264 自動調節解析度一

webrtc 內部支援 vp8,vp9,h264 視訊編碼,由於業務需要和出於通用性考慮,我選擇了 h264 編碼,webrtc集成了openh264,ffmpeg用於h264的編解碼。當然在移動平臺也集成了硬體編解碼,但是測試發現在ios上硬體編碼還算可以,android上

簡單明瞭,常見視訊編碼格式

常見的AVI、RMVB、MKV、ASF、WMV、MP4、3GP、FLV等檔案其實只能算是一種封裝標準。 一個完整的視訊檔案是由音訊和視訊2 部分組成的。H264、Xvid等就是視訊編碼格式,MP3、AAC等就是音訊編碼格式。例如:將一個Xvid視訊編碼檔案和一個MP3

CNN卷積神經網路結構引數配置

來源:機器學習演算法與自然語言處理作者:白雪峰轉載於:https://blog.csdn.net/np4rHI455vg29y2/article/details/789581211、CNN例子Yann LeCun提出的最基本和開始的CNN結構圖2、什麼是CNN2.1、什麼是卷

ElasticSearch 各模組介紹引數配置詳解

      ElasticSearch包含模組由叢集管理Cluster、分片管理Shards、副本管理Replicas、恢復管理Recovery、資料來源管理River、持久化儲存管理Gateway、節點自動發現管理Discovery.zen、互動模組Trans

Spark學習——spark中的幾個概念的理解引數配置

首先是一張spark的部署圖:  節點型別有: 1. master 節點: 常駐master程序,負責管理全部worker節點。 2. worker 節點: 常駐worker程序,負責管理execu

視訊編碼格式和封裝格式的關係和區別是什麼?

每一種格式都與當時的時代背景相關。 以下介紹都是按照時間順序進行: 1:mpeg應該是比較老的格式。這種格式是當時用於vcd。裡面的視訊壓縮用的是mpegv,音訊編碼是mpega。編碼效能低下,目前已經基本淘汰,僅在ktv行業還在大規模使用。 2:mp4是之後比較流行的格式,這個其實與蘋果公司主推的mov格式

YUY2和MJPG視訊編碼格式區別

現在絕大多數攝像頭所採用的是免驅攝像頭,一般有兩種傳輸格式,YUY2和MJPG,前者是無壓縮影象格式的視訊,系統資源佔用少(因為不用解碼),不需要解碼器,缺點是幀率稍慢(受限於USB分配的頻寬),後者是相當於JPEG影象壓縮格式,優點是幀率高(視訊開啟快,曝光快

H.264-AVC視訊編碼原理實現

1.1視訊 時間連續的影象序列稱為視訊。 1.2相關性 影象本身具有的自己特性,影象與影象之間具有一定的關聯性。 時間相關性:一幅影象中的大部分元素都同樣存在於其相鄰的影象(前後)之中。 空間相關性:一幅影象中相鄰畫素之間具有相關性。 統計相關性:影象在儲存

oracle檢視編碼格式修改

一、檢視編碼 1、檢視oracle資料庫編碼 命令:select * from nls_database_parameters where parameter =’NLS_CHARACTERSET’; 執行結果: 查詢的資料來源props$,這個

Hive命令列引數配置

1 . Hive  命令列    輸入$HIVE_HOME/bin/hive –H 或者 –help 可以顯示幫助選項:    說明:      1、 -i 初始化 HQL 檔案。      2、 -e 從命令列執行指定的 HQL      3、 -f 執行 HQL 指令碼 

OpenCV調整顯示視訊格式位置

參考:http://www.bubuko.com/infodetail-506338.html 參考:http://blog.csdn.net/expection1985/article/details/6709041 利用OpenCV讀取多個相機後,預設顯示多個視窗,會重

linux下如何檢視檔案編碼格式轉換檔案編碼

常常在Linux中操作windows下的檔案時,會遇到亂碼的情形。常見的比如在Visual Studio 中寫的C\C++程式需要放到Linux主機上編譯,而程式的中文註釋則顯示為亂碼,比較嚴重的是由於編碼原因,linux上的編譯器報錯。 這是由於Windows中預設的檔案

解決html中video標籤因為視訊編碼格式不能開啟視訊檔案的問題

需要做一個目標檢測演算法的輸入視訊和輸出視訊的直觀對比展示頁面,在html5中採用了video標籤: 但是顯示無效源,應該是視訊本身的問題,查看了html5的video文件: 決定去檢視一下in.avi檔案的視訊和音訊編碼: 在PotPlayer 64 bit

u-boot與Linux核心視訊顯示介面引數配置傳遞方案

http://blog.chinaunix.net/uid-20543672-id-3244213.html 分類: LINUX2012-06-15 11:48:54 一、一般視訊顯示介面初始化所需要的引數 眾所周知,顯示器顯示的是二維的,處理器將視訊資料通過顯示介面行、地傳送到顯示器,每行

FFmpeg,H.264,Directshow,和opencv視訊編碼與封裝格式

http://www.voidcn.com/blog/yhhyhhyhhyhh/article/p-5769736.html     最近做專案,參考網上的資料,梳理了一下視訊採集,編碼,傳輸,顯示相關知識及常用的視訊處理框架和開源庫(本文有誤的地方請見諒,好多概念

mac終端下修改MySQL的編碼格式--找不到my-default.cnfmy.cnf

methods slaver depend win pla doc ets -i 空白  首先請確認正確安裝好MySQL.   1- 先配置環境變量path     1.1 打開終端,輸入: cd ~       會進入~文件夾,     1.2 然後輸入:touch .b