当前位置:首页 » 网络资讯 » 待编码数据怎样生成比特模式

待编码数据怎样生成比特模式

发布时间: 2024-06-15 08:10:39

㈠ 姣旂壒鐜囨槸浠涔堟傚康锛屽湪瑙嗛戝拰阔抽戣浆鎹㈣繃绋嬩腑锛屽备綍璁惧畾锻

姣旂壒鐜囱繖涓璇嶆湁澶氱岖炕璇戯纴姣斿傜爜鐜囩瓑锛岃〃绀虹粡杩囩紪镰(铡嬬缉)钖庣殑阔抽戞暟鎹姣忕挜挓闇瑕佺敤澶氩皯涓姣旂壒𨱒ヨ〃绀猴纴钥屾瘆鐗瑰氨鏄浜岃繘鍒堕噷闱㈡渶灏戠殑鍗曚綅锛岃佷箞鏄0锛岃佷箞鏄1銆傛瘆鐗圭巼涓庨煶棰戝帇缂╃殑鍏崇郴绠鍗旷殑璇村氨鏄姣旂壒鐜囱秺楂橀煶璐ㄥ氨瓒婂ソ锛屼絾缂栫爜钖庣殑鏂囦欢灏辫秺澶;濡傛灉姣旂壒鐜囱秺灏戝垯𨱍呭喌鍒氩ソ缈昏浆銆
VBR(Variable
Bitrate)锷ㄦ佹瘆鐗圭巼
涔熷氨鏄娌℃湁锲哄畾镄勬瘆鐗圭巼锛屽帇缂╄蒋浠跺湪铡嬬缉镞舵牴鎹阔抽戞暟鎹鍗虫椂纭瀹氢娇鐢ㄤ粈涔堟瘆鐗圭巼锛岃繖鏄浠ヨ川閲忎负鍓嶆彁鍏奸【鏂囦欢澶у皬镄勬柟寮忥纴鎺ㄨ崘缂栫爜妯″纺;
ABR(Average
Bitrate)骞冲潎姣旂壒鐜
鏄疺BR镄勪竴绉嶆彃鍊煎弬鏁般侺AME阍埚笴BR涓崭匠镄勬枃浠朵綋绉姣斿拰VBR鐢熸垚鏂囦欢澶у皬涓嶅畾镄勭壒镣圭嫭鍒涗简杩欑岖紪镰佹ā寮忋侫BR鍦ㄦ寚瀹氱殑鏂囦欢澶у皬鍐咃纴浠ユ疮50甯(30甯х害1绉)涓轰竴娈碉纴浣庨戝拰涓嶆晱镒熼戠巼浣跨敤鐩稿逛绠镄勬祦閲忥纴楂橀戝拰澶у姩镐佽〃鐜版椂浣跨敤楂樻祦閲忥纴鍙浠ュ仛涓笃BR鍜孋BR镄勪竴绉嶆姌琛烽夋嫨銆
CBR(Constant
Bitrate)锛屽父鏁版瘆鐗圭巼
鎸囨枃浠朵粠澶村埌灏鹃兘鏄涓绉崭綅阃熺巼銆傜浉瀵逛簬VBR鍜孉BR𨱒ヨ诧纴瀹冨帇缂╁嚭𨱒ョ殑鏂囦欢浣撶Н寰埚ぇ锛岃屼笖阔宠川鐩稿逛簬VBR鍜孉BR涓崭细链夋槑鏄剧殑鎻愰珮

㈡ NVENC缂栫爜

灏哊VENC lib涓镄勬帴鍙e煎嚭锛屼緵钖庣画缂栫爜娴佺▼浣跨敤銆

缂栫爜浼氲瘽闇瑕佷紶鍏D3D璁惧囷纴鍦ㄦや箣鍓嶉渶瑕佸垱寤哄ソD3D璁惧囥傛帴鍙h緭鍑虹殑 void* m_encoder; 灏嗕细鐢ㄤ簬钖庣画缂栫爜鎺ュ彛镄勭涓涓鍙傛暟涓銆

鍙浠ヤ娇鐢 nvEncInitializeEncoder 浼犲叆 NV_ENC_INITIALIZE_PARAMS 绫诲瀷镄勫疄渚嬶纴瀵圭紪镰佸櫒杩涜屽埯濮嫔寲銆傚叾涓 encodeGUID 銆 encodeWidth 銆 encodeHeight 涓夐”鏄蹇呭~阃夐”锛 encodeGUID 琛ㄧず浣跨敤H264缂栫爜( NV_ENC_CODEC_H264_GUID )杩樻槸H265( NV_ENC_CODEC_HEVC_GUID )缂栫爜銆傚彟澶栵纴杩桦彲浠ュ湪姝よ剧疆浣跨敤钖屾ョ紪镰佽缮鏄寮傛ョ紪镰佹ā寮忋
nvEncGetEncodePresetConfig 鍙浠ヨ幏鍙栭勭疆鍙傛暟 NV_ENC_PRESET_CONFIG 銆傚彲浠ヨ剧疆镰佺巼鎺у埗妯″纺銆佸钩鍧囩爜鐜囩瓑鏁版嵁銆

灏呜緭鍏ョ殑绾圭悊鎸囬拡娉ㄥ唽鎴愯緭鍏ヨ祫婧愶纴鍗 m_registerResource.resourceToRegister = m_inputTexture;

灏嗘敞鍐岀殑杈揿叆璧勬簮鏄犲皠鍒扮紪镰佸櫒銆 m_inputMapResource.registeredResource = m_registerResource.registeredResource;

鍒涘缓鎺ユ敹缂栫爜鍑虹殑姣旂壒娴佺紦鍐层

鍦ㄧ紪镰佸墠闇瑕佹洿鏂拌緭鍏ョ汗鐞嗘暟鎹锛屽嵆鍓嶉溃宸茬粡娉ㄥ唽镄勭汗鐞嗘寚阍 m_inputTexture 锛屾洿鏂板悗锛屽~鍏 NV_ENC_PIC_PARAMS 缁撴瀯锛屽皢 NV_ENC_PIC_PARAMS.inputBuffer 璧嫔间负鍓嶉溃鏄犲皠镄勮祫婧愶纴鍗 m_inputMapResource.mappedResource 锛屽啀灏 NV_ENC_PIC_PARAMS.outputBitstream 璧嫔间负鍓嶉溃鍒涘缓镄勮緭鍑烘瘆鐗规祦缂揿啿锛屽嵆 m_outputBuffer.bitstreamBuffer 锛岀劧钖庤皟鐢 nvEncEncodePicture 瀵规暟鎹杩涜岀紪镰併

浣跨敤 nvEncLockBitstream 灏嗘暟鎹浠庣紪镰佸櫒涓鍙栧嚭锛屽嵆GPU鍒癈PU銆