webrtc初了解

1. webrtc的簡介

一、WebRTC 是什么?
Web Real-Time Communication(網頁實時通信),是瀏覽器原生支持的實時音視頻通信技術,無需安裝插件或客戶端,可直接在瀏覽器之間實現點對點(P2P)通信。
核心目標:讓瀏覽器具備實時數據傳輸能力(音視頻、文本、文件等),常用于視頻會議、直播連麥、在線教育等場景。

二、WebRTC 的角色定位

  1. 核心在客戶端(瀏覽器)
    WebRTC 是 瀏覽器內置的 API 和協議棧(如 getUserMedia、RTCPeerConnection 等),用于在 客戶端之間直接建立實時連接(如音視頻流、數據傳輸)。
    舉例:當你用瀏覽器打開騰訊會議時,WebRTC 負責在你的瀏覽器和對方瀏覽器之間直接傳輸音視頻數據,無需依賴中間服務器轉發(除非無法直連時才通過服務器中轉)。

  2. 需要服務端輔助
    雖然 WebRTC 支持客戶端直連,但仍需服務端完成以下關鍵任務:

    • 信令交互(Signaling):客戶端需通過服務端交換連接元數據(如 IP 地址、端口、編解碼參數等),這是建立 P2P 連接的前提(類似打電話前先通過短信約定時間)。
    • NAT 穿透失敗時的中繼:若客戶端因防火墻限制無法直連,需通過服務端中轉數據(此時服務端作為 “中繼服務器”)。
    • 房間管理、用戶鑒權:多人會議場景中,服務端負責管理用戶列表、房間創建 / 銷毀等邏

** 三、WebRTC架構**
在這里插入圖片描述
Web API 層:由 W3C 組織編輯制定,是面向 Web 開發者的 JavaScript API,如RTCPeerConnection用于在瀏覽器間建立直接通訊,DataChannel實現節點間雙向數據傳輸 。通過這些 API,開發者能輕松開發網絡視頻聊天等 Web 應用。

傳輸層:

  • RTP Stack 協議棧:即 Real - Time Protocol(實時協議) ,用于音視頻數據的實時傳輸。
  • STUN/ICE:STUN(Session Traversal Utilities for NAT ,NAT 會話穿越應用程序)和 ICE(Interactive - – Connectivity Establishment ,交互式連通建立)用于建立不同類型網絡間的呼叫連接,實現 NAT 穿透。
  • SRTP:安全實時傳輸協議(Secure Real - Time Transport Protocol),對傳輸的音視頻數據進行加密 。
    Multiplexing:復用技術,提高傳輸效率 。

音頻引擎(VoiceEngine) :

  • 編解碼器:iSAC(Internet Speech Audio Codec)是針對 VoIP 和音頻流的寬帶及超寬帶音頻編解碼器,為默認編解碼器;iLBC(Internet Low Bitrate Codec)是 VoIP 音頻流的窄帶語音編解碼器 。
  • NetEQ for Voice:具備自適應抖動控制和語音包丟失隱藏算法,可適應網絡環境變化,保障音質 。
    回聲消除(Echo Canceler):消除麥克風采集到的回聲 。
  • 噪聲抑制(Noise Reduction):降低特定背景噪聲 。

視頻引擎(VideoEngine) :

  • VP8 編解碼器:是默認視頻圖像編解碼器,針對低延遲設計,適合實時通信 。
  • 視頻抖動緩沖器(Video jitter buffer):降低視頻抖動和數據包丟失帶來的不良影響 。
  • 圖像增強(Image enhancements):對采集圖像進行明暗度檢測、顏色增強、降噪等處理,提升視頻質量 。

四、webRTC的應用場景

  • 操作系統兼容:WebRTC 具備跨操作系統的兼容性,在移動平臺方面,支持主流的 Android 和 iOS 系統 。在 PC 端,對 Windows、macOS、Linux 等常見操作系統也能很好適配。就像在 Android 手機和平板上可借助相關應用基于 WebRTC 實現實時音視頻通話;在 Windows 電腦上用瀏覽器訪問視頻會議網站,也能基于 WebRTC 技術進行實時交流。
  • 瀏覽器適配:WebRTC 是瀏覽器原生支持的技術,主流瀏覽器如 Chrome、Firefox 等在移動和 PC 端均支持 WebRTC 。這意味著開發者基于 WebRTC 開發的實時通信應用,用戶無需額外安裝插件,直接在瀏覽器中就能使用,使用便捷性高。

2 基本概念

2.1 網絡基本知識

一、本地鏈路地址(無網絡連接時的IP)

  • 存在場景
    當設備未連接路由器或DHCP服務器(如斷開網線、未連Wi-Fi)時,系統會自動生成本地鏈路地址(如IPv4的169.254.x.x或IPv6的fe80::開頭地址)。
    關鍵點它不是“沒有IP”,而是系統自動分配的臨時地址,用于同一鏈路內(如直連的兩臺設備)的通信。
  • 作用
    • 無需路由器即可實現設備間臨時互傳文件、共享資源。
    • 提示網絡故障:若聯網后仍顯示此地址,說明設備無法從路由器獲取正常IP(如DHCP服務異常)。

二、局域網IP(路由器分配的私有IP)

  • 定義
    設備連接到路由器后,由路由器(通過DHCP協議)分配的私有IP地址,屬于局域網(LAN)范圍
  • 常見地址段(IPv4):
    • 192.168.x.x(最常見,如192.168.1.100
    • 10.x.x.x(如10.0.0.5
    • 172.16.x.x~172.31.x.x(如172.16.1.20
  • 特點
    • 僅在局域網內有效,無法直接被互聯網訪問。
    • 同一路由器下的設備通過局域網IP互相通信(如手機連接家用Wi-Fi后,與電腦共享文件)。
  • 與本地鏈路地址的區別
    • 局域網IP由路由器分配,屬于正常聯網狀態;本地鏈路地址由系統自動生成,屬于無路由聯網狀態。
    • 局域網IP支持跨子網通信(通過路由器轉發),而本地鏈路地址僅限同一鏈路內通信。

三、公網IP(通過NAT映射的互聯網IP)

  • 定義
    公網IP是直接連接互聯網的唯一標識,具有全球唯一性。但大多數家庭/企業網絡中,路由器會通過 NAT(網絡地址轉換)技術,將局域網內的多個私有IP共享一個公網IP訪問互聯網。
  • 實現邏輯
    • 當局域網內設備(如手機)訪問互聯網時,路由器會將設備的私有IP(如192.168.1.100)和端口(如8080),映射為路由器的公網IP和一個隨機端口(如202.100.1.1:50001)。
    • 互聯網服務器返回數據時,通過公網IP和端口找到路由器,路由器再根據映射關系將數據轉發給對應的局域網設備。
  • 公網IP的類型
    • 動態公網IP:由運營商動態分配(多數家庭寬帶屬于此類),每次重啟路由器可能變更。
    • 靜態公網IP:需向運營商申請,地址固定(常用于企業服務器或需要遠程訪問的場景)。
  • 關鍵點
    • 公網IP不是“端口”,而是IP地址本身;端口是NAT映射時用于區分不同設備的“通道編號”。
    • 只有擁有公網IP的設備(如路由器)才能被互聯網直接訪問,局域網內設備需通過NAT“借道”路由器上網。

四、關系

“當設備未連接路由器時,系統會自動生成本地鏈路地址(如169.254.x.x)用于臨時通信;連接路由器后,設備獲取局域網IP(如192.168.1.x),屬于私有地址,僅在局域網內有效;路由器通過 NAT技術,將局域網IP和端口映射到公網IP(運營商分配的互聯網地址),實現多設備共享一個公網IP訪問互聯網。”

五、核心區別總結表

類型分配方式地址范圍/示例能否被互聯網訪問典型場景
本地鏈路地址系統自動生成(無路由)IPv4: 169.254.x.x否(僅限本地鏈路)兩臺直連電腦互傳文件
局域網IP(私有)路由器DHCP分配IPv4: 192.168.x.x否(需通過NAT轉發)家用Wi-Fi下手機與電腦共享文件
公網IP(公有)運營商分配(靜態/動態)202.100.1.1是(全球唯一)路由器連接互聯網、服務器對外服務

NAT 模式的本質:共享你電腦的網絡,但藏起虛擬機你電腦的真實網絡:

  • 比如你電腦連了家里的 Wi-Fi,有一個真實的 IP(比如 192.168.1.100),能上網。
  • 虛擬機的 “虛擬小網絡”:
    當你用 NAT 模式啟動虛擬機時,軟件會在你電腦里偷偷創建一個 虛擬路由器 和 虛擬寬帶:
    • 虛擬路由器:負責把虛擬機的網絡請求 “轉發” 到你電腦的真實網絡(就像你家真實路由器把手機請求轉發到寬帶一樣)。
    • 虛擬寬帶:讓虛擬機 “假裝” 自己連了一個獨立的網絡,但其實用的是你電腦的網絡流量。

關鍵:虛擬機的 IP 是 “虛擬路由器” 分配的:
就像你家路由器會給手機分配 192.168.1.101 這樣的 IP 一樣,虛擬機軟件里的 “虛擬路由器” 會給虛擬機分配一個 虛擬局域網 IP(比如 192.168.137.100),這個 IP 只在你電腦的虛擬網絡里有效。

2.2 webrtc的痛點以及解決

一、媒體協商:SDP 協議確定編解碼規則
目標:解決“如何讓雙方解對方的碼”的問題,本質是協商一致的音視頻格式與參數

  1. SDP(Session Description Protocol,會話描述協議)
    • 作用
      • 描述終端支持的編解碼器(如 VP8/H.264 視頻、Opus/iSAC 音頻)。
      • 協商媒體傳輸格式(如 RTP 載荷類型、時間戳頻率)。
      • 提供網絡連接元數據(如 IP 地址、端口,但實際中常由 ICE 處理)。
    • 核心字段
      • m=video 9 UDP/TLS/RTP/SAVPF 100 101:聲明視頻流使用的端口和編解碼列表(如 payload 100 對應 VP8)。
      • a=rtpmap:100 VP8/90000:將 payload 100 映射到 VP8 編解碼器,采樣率 90000Hz。
      • a=fingerprint:sha-256 ...:用于 DTLS 加密的證書指紋驗證。
    • 協商流程

在這里插入圖片描述

  • 關鍵邏輯
    • 雙方通過信令服務器交換 SDP,最終達成交集編解碼方案(如均支持 VP8 則選 VP8,否則降級)。
    • SDP 不直接傳輸媒體數據,僅用于“對暗號”,確保雙方使用相同規則編解碼。

二、網絡協商:ICE 框架整合 STUN/TURN 實現連接建立
目標:解決“雙方公網 IP 是否能通信”的問題,本質是穿越 NAT 建立有效連接路徑

1. ICE(Interactive Connectivity Establishment,交互式連接建立)

  • 定位
    • 不是協議,而是整合 STUN/TURN 的框架,用于收集、測試、選擇最優網絡路徑。
    • 核心流程:收集候選地址 → 排序優先級 → 嘗試連接
  • 候選地址類型
    • 主機候選(Host):終端本地 IP(如虛擬機內網 IP 192.168.137.100)。
    • 服務器反射候選(SRFLX):通過 STUN 服務器獲取的公網 IP+端口(如 202.100.1.1:50001)。
    • 中繼候選(RELAY):通過 TURN 服務器中轉的地址(如 39.100.200.5:8080)。

2. STUN:獲取公網地址與 NAT 類型

  • 核心功能
    • 終端向 STUN 服務器發送請求,服務器返回終端的公網 IP+端口NAT 類型(如完全圓錐型、對稱型)。
    • 用途
      • 判斷是否可直接 P2P 連接(如對稱型 NAT 需 TURN 中繼)。
      • 生成“服務器反射候選地址”用于 ICE 連接測試。
  • 典型交互流程
    客戶端 → STUN服務器:"我在哪?"  
    STUN服務器 → 客戶端:"你的公網地址是 X.X.X.X:端口,NAT類型是對稱型"  
    
  • 局限性
    • 僅適用于UDP 穿透,且無法穿越對稱型 NAT(約占 30% 網絡環境)。
      在這里插入圖片描述

3. TURN:中繼轉發突破復雜網絡限制

  • 核心功能
    • 當 STUN 無法建立直連時,作為中繼服務器轉發媒體數據,充當“數據中轉站”。
    • 適用場景
      • 雙方均位于對稱型 NAT 后(無法直連)。
      • 防火墻禁止 UDP 傳輸(TURN 可封裝數據為 TCP)。
  • 代價與優化
    • 帶寬成本:數據經服務器中轉,消耗服務器帶寬(適合多人會議場景,單人通話盡量走 P2P)。
    • 延遲增加:中繼路徑增加約 1 個 RTT 延遲,需結合 CDN 部署多區域 TURN 節點降低延遲。
    • 在這里插入圖片描述

2.3 信令服務器

一、信令服務器的核心作用
信令服務器不直接傳輸音視頻或數據,而是負責協調通信雙方的連接過程,主要功能包括:

  • 交換元數據
    傳遞雙方的媒體信息(如編碼格式、分辨率)、網絡信息(如公網 IP、端口)。
    例如:通過 SDP 協議描述媒體參數,通過STUN/TURN 獲得的網絡地址需通過信令服務器中轉
  • 控制通信流程
    • 管理連接的建立、斷開、重連等狀態(如發起呼叫、接受 / 拒絕請求)。
    • 類似 “電話交換機”,只負責建立通話鏈路,不參與通話內容傳輸。

二、數據傳輸的兩種場景

  1. 直接 P2P 傳輸(無需信令服務器)
    條件:雙方處于同一局域網(網段相同)或公網可直接互通(無 NAT 或 NAT 類型支持 P2P)。
    過程:
    雙方直接獲取對方的 IP 和端口(如通過本地廣播、預共享信息)。
    無需信令服務器中轉,直接建立連接傳輸數據(如文件、消息)。
    局限:
    受限于網絡環境(NAT 穿透失敗時無法通信)。
    無法處理復雜場景(如多人通信、動態地址變更)。

2. 復雜網絡環境下的傳輸(必須依賴信令服務器)
場景:

  • 雙方位于不同網段(如虛擬機與主機、跨公網的兩臺設備)。
  • 存在 NAT 防火墻(需通過 STUN/TURN 穿透或中繼)。
  • 多人通信(需協調多方的媒體流路由)。

過程:

  • 信令交互:
    設備 A 通過信令服務器向設備 B 發送連接請求(含自身媒體和網絡信息)。
    設備 B 響應請求并返回自身信息(如經 STUN 解析的公網地址,或 TURN 中繼地址)。
  • 媒體協商:
    雙方通過信令服務器交換 SDP,協商一致的編解碼格式。
  • 網絡協商:
    若直接連接失敗(如 NAT 類型不兼容),信令服務器協助分配 STUN/TURN 服務器地址,建立中繼連接。
  • 關鍵依賴:
    信令服務器是建立連接的橋梁,沒有它,雙方無法得知彼此的 “通信地址” 和 “能力參數”。
    數據最終通過 P2P 或中繼傳輸,但信令交互是前提。

信令服務器不只是交互 媒體信息sdp和網絡信息candidate,比如:
(1)房間管理
(2)人員進出房間

3 peer to peer的原理

在這里插入圖片描述

  1. 初始化階段
  • 創建PeerConnection對象:Peer - A和Peer - B都各自創建一個RTCPeerConnection對象,這是WebRTC進行點對點通信的核心對象,用于管理連接、媒體流傳輸等操作 。
  • 添加媒體流:雙方分別調用AddStream將本地采集的音視頻媒體流添加到PeerConnection對象中,準備后續傳輸。比如,攝像頭采集的視頻流和麥克風采集的音頻流。
  1. 媒體協商階段
  • 創建Offer并設置本地描述:Peer - A通過CreateOffer & SetLocalDescription生成一個Offer SDP(會話描述協議)。SDP中包含了Peer - A支持的音視頻編解碼器(如VP8視頻編解碼器、Opus音頻編解碼器 )、媒體傳輸格式等信息 。然后將這個Offer SDP設置為本地描述,即告知自身后續通信使用這些媒體參數。
  • 信令服務器中繼Offer SDP:Peer - A通過Send Offer SDPOffer SDP發送給信令服務器,信令服務器再通過Relay Offer SDP將其轉發給Peer - B。
  • Peer - B處理Offer并生成Answer:Peer - B收到Offer SDP后,調用setRemoteDescription設置遠程描述,即知曉Peer - A的媒體參數。然后Peer - B通過CreateAnswer & SetLocalDescription生成Answer SDP,其中包含了Peer - B根據自身能力和Peer - A的Offer SDP協商后的媒體參數 。
  • 信令服務器中繼Answer SDP:Peer - B通過Send Answer SDPAnswer SDP發送給信令服務器,信令服務器再通過Relay Answer SDP轉發給Peer - A,Peer - A收到后調用setRemoteDescription設置遠程描述。
  • 媒體協商總結:通過SDP在信令服務器的中繼下交換,雙方確定了一致的音視頻編解碼等媒體參數,解決了雙方如何編解碼媒體流的問題,確保雙方能正確處理對方傳來的音視頻數據。
  1. 網絡協商階段
  • ICE候選地址收集
    • Peer - A和Peer - B在本地通過ICE Request觸發ICE(交互式連接建立)流程,收集各自的ICE候選地址。這些候選地址包括主機候選地址(本地局域網IP地址 )、服務器反射候選地址(通過STUN服務器獲取的公網IP地址 )和中繼候選地址(通過TURN服務器獲取的地址 )。
    • 當收集到ICE候選地址時,會觸發oniceCandidate事件。
  • 信令服務器中繼ICE候選地址
    • Peer - A和Peer - B分別通過Send ICE Candidate將各自的ICE候選地址發送給信令服務器,信令服務器通過Relay ICE Candidate相互轉發。
    • 雙方收到對方的ICE候選地址后,通過AddIceCandidate將其添加到PeerConnection對象中。
  • 連接建立嘗試:雙方根據收集到的ICE候選地址,按照優先級(通常主機候選 > 服務器反射候選 > 中繼候選 )嘗試建立連接。如果雙方處于可以直接穿透NAT的網絡環境,可能通過主機候選地址或服務器反射候選地址直接建立P2P連接 。但如果像在中國網絡環境下,至少一半網絡無法直接穿透打洞,就需要借助TURN服務器,通過中繼候選地址進行數據中繼轉發來建立連接。
  1. 媒體流傳輸階段
    當連接成功建立后,雙方就可以通過已建立的鏈路進行媒體流傳輸。Peer - A和Peer - B分別通過onAddStream事件接收對方傳來的媒體流,并進行播放展示,從而實現一對一的實時通話 。

  2. 信令服務器的作用
    信令服務器在整個過程中扮演著至關重要的角色。它負責中繼雙方的SDP信息和ICE候選地址等信令消息,協調雙方的媒體協商和網絡協商過程。沒有信令服務器,雙方無法得知對方的媒體參數和網絡地址信息,也就無法建立起通信連接 。

  3. STUN和TURN服務器的作用

  • STUN服務器:幫助Peer - A和Peer - B獲取自身的公網IP地址和端口,以及檢測所在的NAT類型 。在網絡協商中,用于生成服務器反射候選地址,嘗試實現P2P連接。
  • TURN服務器:當STUN無法成功穿透NAT建立P2P連接時,TURN服務器作為中繼,對雙方的數據進行轉發。在復雜網絡環境下,保障通話能夠順利進行 。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/82892.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/82892.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/82892.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

從數據持久化到網絡通信與OpenCV:Qt應用程序開發的深度探索與實戰

文章目錄 前言一、QSettings:輕量級數據持久化方案1.1 QSettings 主要特點1.2 QSettings 常用函數整理 二、數據庫2.1 連接SQLite數據庫2.2 建表2.3 增刪改 三、網絡編程3.1 網絡分層3.2 IP地址3.3 端口號3.4 基于TCP的Socket通信3.4 相關接口3.4.1核心類3.4.2 通信…

經典SQL查詢問題的練習第一天

首先有三張表,學生表、課程表、成績表 student:studentId,studentName; course:courseId,courseName,teacher; score:score,studentId,courseId; 接著有以下幾道題目: ①查詢課程編號為‘0006’的總成績: 首先總成績&#x…

企業級網絡管理實戰:Linux、云與容器的深度融合與優化

在數字化轉型浪潮下,企業網絡架構日益復雜,Linux系統、云計算與容器技術成為構建高效、靈活網絡的核心要素。本文將從技術原理、實踐方案、優化策略三個維度,深度解析企業級網絡管理中的關鍵技術,助力企業打造穩定、安全、可擴展的…

信號與系統速成-1.緒論

b站浙大教授雖然講的比較細,但是太慢了,不適合速成 祖師爺奧本海姆的MIT課程好像和我們教材的版本不太匹配,但是講的很不錯 慕課上也有很多資源,比如信號與系統 - 網易云課堂 同站博主籬笆外的xixi的文章也挺不錯 最終我還是選…

緩存架構方案:Caffeine + Redis 雙層緩存架構深度解析

在高并發、低延遲的現代互聯網系統中,緩存是提升系統性能和穩定性的重要手段。隨著業務復雜度的增長,單一緩存方案(如僅使用Redis或僅使用本地緩存)已難以滿足高性能與一致性需求。 本文將圍繞 Caffeine Redis 的雙層緩存架構展…

【Elasticsearch】track_total_hits

在 Elasticsearch 中,track_total_hits 是一個查詢參數,用于控制是否精確計算搜索結果的總命中數(total hits)。默認情況下,Elasticsearch 在某些情況下可能會對總命中數進行近似計算,以提高性能。track_to…

智能手機上用Termux安裝php+Nginx

Termux的官方網站:Termux | The main termux site and help pages. 以下是在 Termux 上安裝和配置 PHP Nginx 的完整流程總結,包含關鍵步驟和命令: 一、安裝依賴 pkg update && pkg upgrade # 更新包列表和系統pkg install nginx p…

電腦開機后出現bootmgr is conmpressed原因及解決方法

最近有網友問我為什么我電腦開機后出現BOOTMGR is compressed,這個提示意思是:意思是啟動管理器被壓縮了,即使重啟也無法正常進入系統。原因有很多,大部分是引導出現問題,或選錯了啟動硬盤所導致的,下面我們來詳細分析…

服務發現Nacos

目錄 Nacos server 安裝 注冊服務到Nacos server 接口訪問Nacos server中的已注冊服務 Nacos控制臺介紹 Nacos:一個更易于構建云原生應用的動態服務發現、配置管理和服務管理平臺。 在分布式服務應用中,各類服務需要統一的注冊、統一的管理,這個組件工具…

并查集 c++函數的值傳遞和引用傳遞 晴神問

目錄 學校的班級個數 手推7個班級,答案17?懷疑人生 破案了,應該是6個班。 破案了,原來寫的是 unionxy(a, b, father); c if兩個數同時為正或為負 簡潔寫法 可以用位運算? c可以這樣賦值嗎?ab2 典型…

Qt Creator快捷鍵合集

前言 QtCreator是一款跨平臺的IDE,專為Qt開發設計,支持C/C++/JS/Python編程,支持設備遠程調試,支持代碼高亮,集成幫助文檔,原生支持cmake和git,確實是一款樸實而又強大的集成開發環境,讓人有種愛不釋手的感覺 編輯 功能快捷鍵復制Ctrl + C粘貼Ctrl + V剪切Ctrl + X代…

docker網絡相關內容詳解

一、docker與k8s 一、Docker 核心解析 1. Docker 定義與架構 本質: 容器化平臺(構建容器化應用)、進程管理軟件(守護進程管理容器生命周期)。客戶端(docker cli)與服務端(docker ser…

首發!PPIO派歐云上線DeepSeek-R1-0528-Qwen3-8B蒸餾模型

首發!PPIO派歐云上線DeepSeek-R1-0528-Qwen3-8B蒸餾模型 DeepSeek R1 系列的模型更新還在繼續。 繼昨天 PPIO派歐云首發上線 DeepSeek-R1-0528 模型后,今天 PPIO 再次首發 DeepSeek 最新開源的蒸餾模型 DeepSeek-R1-0528-Qwen3-8B。 DeepSeek-R1-0528-Q…

如何用命令行將 PDF 表格轉換為 HTML 表格

本文將介紹如何使用命令行將可填寫的 PDF 表單轉換為 HTML 表單。只需幾行代碼即可完成轉換。將可填寫的 PDF 表單轉換為 HTML 表單后,你可以在網頁上顯示這些表單。本指南使用 FormVu 來演示轉換過程。 使用命令行將可填寫 PDF 表單轉換為 HTML 表單 你可以通過命…

杰發科技AC7840——CSE硬件加密模塊使用(2)

注意: 不要隨便修改主秘鑰,本次跑代碼過程中,對主秘鑰進行修改,導致無法對cse模塊恢復出廠設置 更新秘鑰例程 第2個例程主要是把cse的key加載到cse安全區域中 這里剛看到加載秘鑰并不是直接把明文加載到cse模塊 測試第3個例程 復…

淺解Vue 數據可視化開發建議與速度優化

數據可視化在現代前端應用中至關重要,但處理大規模數據時容易遇到性能瓶頸。以下是針對 Vue 項目的個人看法的優化方案: 文章目錄 一、框架選型建議二、大數據渲染優化三、渲染性能提升四、內存管理五、監控與調試六、進階優化方案七、Vue特定優化八、構…

lua腳本學習筆記1:Vscode添加lua環境_lua基本語法

下載Lua環境,lua語言基本語法。 目錄 lua介紹: VsCode添加Lua編程環境 下載Lua 配置環境變量 查詢lua環境 打開 VSCode,安裝 Lua 語言插件和調試器 VScode增添lua編譯器路徑 測試lua程序: 代碼: 結果: 參考…

Nordic nRF52832使用寄存器實現SPI功能

目錄 概述 1 SPI相關的寄存器 1.1 SPI的框架結構 1.2 功能描述 1.3 SPI Master模式引腳配置 1.4 SPI Master模式下的時序 2 SPI相關的寄存器 2.1 Instances 2.2 詳細寄存器定義 2.3 SPI master interface特性 3 Zephyr 平臺下SPI功能時序(寄存器&#xf…

【Python辦公】將Excel表格轉json(字典)數據-可自定義key和value

目錄 專欄導讀背景介紹庫的安裝數據源準備代碼1:key1列,value所有列代碼1:key多列,value所有列代碼3:key自選,value自選總結專欄導讀 ?? 歡迎來到Python辦公自動化專欄—Python處理辦公問題,解放您的雙手 ?????? 博客主頁:請點擊——> 一晌小貪歡的博客主頁求關…

DexWild:野外機器人策略的靈巧人機交互

25年5月來自 CMU 的論文“DexWild: Dexterous Human Interactions for In-the-Wild Robot Policies”。 大規模、多樣化的機器人數據集已成為將靈巧操作策略泛化到新環境的一條有效途徑,但獲取此類數據集面臨諸多挑戰。雖然遙操作可以提供高保真度的數據集&#xf…