随着WebRTC的发展,协商媒体流的很多工作都是通过SDP(Session Description Protocol)协议来实现的。SDP描述了媒体流的一些参数信息,例如媒体的类型,编解码器类型、编码格式、网络参数等等。在WebRTC应用中,协商SDP是建立点对点连接的必要步骤。
sdp-jingle-json
是一种用于WebRTC SDP协商的Javascript解析库。它能够将SDP转换为JSON格式,以便更方便地操作和使用。此外,它还可以将JSON格式的SDP还原成原始的SDP字符串。
下面,我们将详细讲解如何在前端类应用中使用sdp-jingle-json
。
安装 npm 包
首先,我们需要通过npm来安装sdp-jingle-json
:
npm i sdp-jingle-json
安装完成后,可以在项目中引入sdp-jingle-json
:
const sdpJingleJson = require('sdp-jingle-json');
上述代码中的sdpJingleJson
将作为对sdp-jingle-json
库的封装,供我们在应用中使用。
解析 SDP
在WebRTC应用中,我们经常需要解析SDP,以便分析媒体流的参数和编解码器类型。下面我们通过sdp-jingle-json
来实现SDP的解析。
-- -------------------- ---- ------- ----- ------- - ---- --- ------------------- - -- --- --------- --- --- - -------------- ----- ----- ---------------- --- ------------------------------------ ------- - --------- --- --- --- - - --- --- --- -- --- ---- --- ------- -------- -- --- ------- ---------------------------- ---------------------------------- ----------- ---------- ---------- ----------------------- ----------------------------------------------- ------------ ------------ ---------- -------------------------- ------------ ---------- ------------ ---------- ---------- --------- ---------- --------- ------------ -------- ------------ -------- ------------ -------- ----------- ------- ------------ -------------------- ------------- ----------------- ---------------------- ----------------- ----------------------------------------- -- ----------------- -------------------------------------------- ----------------- -------------------------------------------- ------- - --------- --- --- ---- --- ------- -------- -- --- ------- ---------------------------- ---------------------------------- ----------- ---------- ---------- ----------------------- ----------------------------------------------- ------------ --------- ------------ ---------- ----------------- ---------------------- ----------------- ----------------------------------------- -- ----------------- -------------------------------------------- ----------------- ---------------------------------------------- ----- ------- - ------------------------------------- ---------------------
上述代码中的sdpText
是SDP字符串,我们通过sdp-jingle-json
的toSessionJSON
方法将其解析成JSON格式,然后将其打印输出到控制台。
执行上述代码,我们将看到如下输出:
-- -------------------- ---- ------- - ------- - --------- ---- ---------- ---------------------- --------------- ---- -------- ----- ------ ------ -------- ----------- -- ----- ---- ------- - ------ -- ----- - -- ------- - - ----- --------- ----- - -------- ------- - - -- ---------------- - - --------- ------ ------ -------------------------------------- - -- ------ - - ----- -------- ----- -- --------- ------------ --------- ---- --- --- - - --- --- --- -- ----- ----------- - -------- -- --- --------- -- ----- - ----- -- -------- ----- ------ ------ -------- --------- -- --------- ------------------- ------- --------------------------- ---- -------- -------- ----- ------- - - ---- -- ------------ -------------------------- ---------- ------------------------------------------------- - -- ---- - - ------------ ---- ------ ------- ----- ------ --------- -- ---- ------ ----- - - ---- ----------- ------ ---- -- - ---- --------------- ------ --- - - -- - ------------ ---- ------ ------- ----- ------ --------- -- ---- ----- -- - ------------ ---- ------ ------- ----- ------ --------- -- ---- ----- -- - ------------ -- ------ ------- ----- ----- --------- -- ---- ----- -- - ------------ -- ------ ------- ----- ----- --------- -- ---- ----- -- - ------------ ---- ------ ----- ----- ------ --------- -- ---- ----- -- - ------------ ---- ------ ----- ----- ------ --------- -- ---- ----- -- - ------------ ---- ------ ----- ----- ------ --------- -- ---- ----- -- - ------------ --- ------ ----- ----- ----- --------- -- ---- ----- -- - ------------ ---- ------ ------------------ ----- ----- --------- -- ---- ----- - -- ------ - - --- ----------- ---------- -------- ------ ------------------ -- - --- ----------- ---------- ------- ------ ------------------------------------- --- -- - --- ----------- ---------- ---------- ------ -------------------------------------- -- - --- ----------- ---------- -------- ------ ---------------------------------------- - - -- - ----- -------- ----- -- --------- ------------ --------- ---- ----- ----------- - -------- -- --- --------- -- ----- - ----- -- -------- ----- ------ ------ -------- --------- -- --------- ------------------- ------- --------------------------- ---- -------- -------- ----- ------- - - ---- -- ------------ -------------------------- ---------- ------------------------------------------------- - -- ---- - - ------------ ---- ------ ------ ----- ------ --------- - -- - ------------ ---- ------ ------- ----- ------ --------- - - -- ------ - - --- ----------- ---------- -------- ------ ------------------ -- - --- ----------- ---------- ------- ------ ------------------------------------- --- -- - --- ----------- ---------- ---------- ------ -------------------------------------- -- - --- ----------- ---------- -------- ------ ---------------------------------------- - - - - -
从上面的输出可以看出,sdp-jingle-json
已经成功把SDP字符串解析成JSON格式。
转换为 SDP
我们也可以将JSON格式的SDP还原成SDP字符串。下面的代码演示了如何将JSON格式的SDP转换为SDP字符串:
-- -------------------- ---- ------- ----- ------- - - ------- - -------- -------------- ------ ------ -------- ----- ---------- ---- --------------- ---- --------- ---- -- ----- ---- ------- - ------ -- ----- - -- ------ - - --------- ------ ----- -- --------- -------------------- ---- - ------ ---------- ---- - - ------------ ---- ------ ------ ----- ------ --------- - - -- ----- - ----- - -- ----------- - - ----------- ------------- --- -------------- ---------- -- --------- ------ --------- ----------- ----- -- ----- ------ - -- ------------ - ----- ---------- ----- ------------------------------------------------------------------------------------------------- -- ---- -------- -------- ---- -- ----- -------- --------- ------ ------- --- -- -- ------- - - ----- --------- ----- - ------- - - -- -- ----- ------- - ------------------------------------ ---------------------
执行上述代码,我们将看到如下输出:
-- -------------------- ---- ------- --- --- - - -- --- ----------- --- --- - -------------- ----- ------- - ----------------- --- ---- --- ------- ---------------------------- ---------------------------------- ----------- ---------- --------------- -------- ------------ --------- ---------------------- - --- ---------- ----------- - --- ---- ---------- - --------------------- -----------------------------------------------------------------------------------------------
从输出中可以看出,sdp-jingle-json
将JSON格式的SDP成功转换为了SDP字符串。
综上所述,sdp-jingle-json是一个非常有用的npm库。它能够将SDP转换为JSON格式,以便于我们在WebRTC应用中更方便地操作和使用。在应用中需要解析SDP或者将JSON格式的SDP重新转换为SDP字符串时,可以考虑使用sdp-jingle-json。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/74884