日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

WebRTC框架中的硬件加速

發布時間:2023/11/28 生活经验 58 豆豆
生活随笔 收集整理的這篇文章主要介紹了 WebRTC框架中的硬件加速 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

WebRTC框架中的硬件加速

典型緩沖流量
應用程序和單元測試設置
重要方法調用
WebRTC軟件包
局限性
WebRTC是一個免費的開源項目,可為瀏覽器和移動應用程序提供實時通信功能。

WebRTC的主要功能是能夠發送和接收交互式高清視頻。快速處理此類視頻需要硬件加速的視頻編碼。
當前,開源WebRTC項目框架支持各種軟件編碼器類型:VP8,VP9和H264。NVIDIA將硬件加速的H.264編碼集成到WebRTC編碼框架中。本文檔使用名稱NvEncoder表示此功能。
典型緩沖液流量
下圖顯示了硬件加速的WebRTC編碼框架中的典型緩沖區流。

發送YUV幀,該幀將YUV幀轉換為I420格式并在編碼器的輸出平面上排隊。使用專有的NVIDIA低級編碼庫將輸出平面緩沖區發送到NvEncoder。NvEncoder在其捕獲平面上返回已填充的已編碼緩沖區。
根據應用程序的要求,發送編碼后的緩沖區以進行進一步處理。
應用程序和單元測試設置
WebRTC_r32.2.0_aarch64.tbz2程序包中的readme文件包含有關應用程序使用和安裝的其它信息。
設置和測試NvEncoder示例應用程序
1。Video Loopback應用程序:要運行該應用程序,請輸入以下命令:
$ ./video_loopback-編解碼器H264-寬度1280-高度720 --capture_device_index 0
其中:
?–codec指定編碼格式。硬件編碼當前僅支持H.264。
?–width指定框架寬度。
?–height指定框架高度。
?–capture_device_index指定/ dev / video 的索引。
如果WebRTC框架正常工作,應用程序將顯示具有所需寬度和高度的攝像機視頻流。如果WebRTC檢測到幀丟失,則按比例縮放。
2. 對等連接客戶端/服務器應用程序:
相機設置:將USB相機連接到Jetson設備。
服務器設置:要在Jetson平臺上啟動peerconnection_client應用程序,請輸入以下命令:
$ ./peerconnection_server
此命令使用默認配置在端口8888上啟動服務器。
客戶端設置:要在Jetson平臺上啟動peerconnection_client應用程序的兩個實例,請輸入以下命令:
$ ./peerconnection_client --autoconnect --server < Server.IP >
$ ./peerconnection_client --server <Server.IP> --autoconnect --autocall
每個命令都會啟動一個實例,該實例會自動將客戶端連接到服務器。第二個命令使用-autocall選項來調用服務器上第一個可用的其它客戶端,而無需用戶干預。
3. ?為NvEncoder 0.264單元測試:輸入命令:
$ ./modules_tests --gtest_filter =“ TestNvH264Impl。*” --gtest_repeat = <迭代次數>
如果Jetson設備上的軟件顯示pulseaudio錯誤:
輸入此命令安裝pulseaudio:
$ sudo apt安裝pulseaudio
輸入以下命令以啟動pulseaudio守護程序:
$ pulseaudio –開始
重要方法調用
NvEncoder基于NvVideoEncoderFactory類,該類在頭文件中定義:
webrtc_headers / modules / video_coding / codecs / nvidia / NvVideoEncoderFactory.h
該頭文件位于軟件包WebRTC_r32.2.0_aarch64.tbz2中。
本節總結了對NvEncoder的重要調用。
創建支持硬件的視頻編碼器
?執行方法調用:
std :: unique_ptr CreateVideoEncoder(const webrtc :: SdpVideoFormat&format)
參數為:
?format:指定所需的編碼格式。當前僅支持SdpVideoFormat(H.264)。
該方法創建并返回指定格式的NvVideoEncoder對象。
查詢視頻編碼器
?執行函數調用:
CodecInfo QueryVideoEncoder(const SdpVideoFormat&format)
參數為:
?format:指定所需的編碼格式。
該函數查詢視頻編碼器并返回其編解碼器信息。
獲取受支持的視頻格式
?執行方法調用:
std :: vector GetSupportedFormats()
該方法返回編碼器支持的所有格式的SdpVideoFormat對象的向量。
WebRTC軟件包
文件WebRTC_r32.2.0_aarch64.tbz2包含以下文件:
?libwebrtc.a:WebRTC庫文件
?頭文件:所有WebRTC頭文件及其各自的路徑名
?video_loopback:用于測試基本視頻功能的應用程序
?peerconnection_client:連接到服務器和其它客戶端的客戶端應用程序
?peerconnection_server:一個創建服務器和客戶端接口的應用程序
?module_test:編碼器單元測試應用程序
?README:適用于應用程序和NvVideoEncoderFactory的README文件。
局限性
當前,硬件加速僅支持H.264編碼器。
該video_loopback僅適用于H.264編碼器。
USB攝像頭以YUY2顏色格式輸出緩沖區,但是NVEncoder希望輸入為I420或NV12格式,需要進行顏色轉換。當前,這是使用CPU上的WebRTC框架完成的。

總結

以上是生活随笔為你收集整理的WebRTC框架中的硬件加速的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。