CN117097705B - 一种基于WebTransport的音视频传输方法和系统 - Google Patents
一种基于WebTransport的音视频传输方法和系统 Download PDFInfo
- Publication number
- CN117097705B CN117097705B CN202311367509.5A CN202311367509A CN117097705B CN 117097705 B CN117097705 B CN 117097705B CN 202311367509 A CN202311367509 A CN 202311367509A CN 117097705 B CN117097705 B CN 117097705B
- Authority
- CN
- China
- Prior art keywords
- audio
- data
- video
- video transmission
- webtransport
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 230000005540 biological transmission Effects 0.000 title claims abstract description 165
- 238000000034 method Methods 0.000 title claims abstract description 54
- 238000009877 rendering Methods 0.000 claims abstract description 23
- 230000001133 acceleration Effects 0.000 claims abstract description 13
- 238000001514 detection method Methods 0.000 claims description 12
- 230000002708 enhancing effect Effects 0.000 claims description 4
- 238000004891 communication Methods 0.000 description 11
- 238000012545 processing Methods 0.000 description 11
- 238000012937 correction Methods 0.000 description 10
- 230000001965 increasing effect Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 4
- 238000012544 monitoring process Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 238000005457 optimization Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/1066—Session management
- H04L65/1101—Session protocols
- H04L65/1108—Web based protocols, e.g. webRTC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/1066—Session management
- H04L65/1069—Session establishment or de-establishment
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/65—Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/70—Media network packetisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/80—Responding to QoS
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
Abstract
本申请提供一种基于WebTransport的音视频传输方法和系统,包括:客户端和服务端创建WebTransport连接;客户端通过WebTransport的Datagram的数据通道接收到的数据提交至音视频传输协议栈;音视频传输协议栈对接收到的数据进行增强,并通过浏览器自带的具有硬件加速的解码器实现视频解码;所述客户端通过音频输出播放音频数据,通过图像渲染方式展示视频数据给用户,完成音视频的传递。本申请使用WebTransport进行音视频传输,不需要在客户端安装任何插件,从而提高了跨平台兼容性和易用性。
Description
技术领域
本申请涉及数据传输领域,尤其涉及一种基于WebTransport的音视频传输方法和系统。
背景技术
现有的技术和协议可以被用来实现基于WebTransport的音视频传输,例如Websocket、WebRTC和RTMP等。其中,Websocket是一种双向通信协议,可以在客户端和服务器之间建立长连接,实现实时通信。WebRTC则是一种基于Web的实时通信技术,可以通过UDP/TCP协议进行音视频传输。RTMP则是一种基于TCP的流媒体传输协议,被广泛应用于直播、点播等场景。
然而,目前还没有应用于WebTransport的标准的音视频传输方案,导致数据传输的稳定性、网络环境的适应性以及解码显示都存在兼容性和扩展性不足的问题。
发明内容
本申请的目的在于克服现有技术中存在的问题,提供一种基于WebTransport的音视频传输方法和系统。
本申请提供一种基于WebTransport的音视频传输方法,包括:
客户端和服务端创建WebTransport连接;
所述客户端通过WebTransport的Datagram的数据通道接收到的数据提交至音视频传输协议栈;
所述音视频传输协议栈对接收到的数据进行增强,并通过浏览器自带的具有硬件加速的解码器实现视频解码;
所述客户端通过音频输出播放音频数据,通过图像渲染方式展示视频数据给用户,完成音视频的传递。
可选地,所述音视频传输协议栈对接收到的数据进行增强,包括:
每一次传输的音频数据包括前几次编码之后的音频数据,当传输过程中有数据丢失,通过重复的数据恢复丢失的音频编码后的数据;
通过控制音频编码器生成FEC包,解码时通过FEC包尝试恢复丢失数据;
将视频数据按照一定长度拆包成一组RTP数据包,将接收到的RTP数据包解包为完整的一帧视频数据。
可选地,所述通过图像渲染方式展示视频数据给用户,包括:基于HTML5Canvas或WebGL协议将所述视频数据传输给显示器。
可选地,所述音视频传输协议栈对接收到的数据进行增强,包括:
在网络检测过程中发现丢包问题,音视频传输协议栈通过FEC恢复丢失数据,通过RTP重发请求重发丢失数据。
可选地,所述音视频传输协议栈对接收到的数据进行增强,包括:
在网络检测过程中发现带宽变化,音视频传输协议栈通过拥塞控制模块调整音视频传输质量,基于TCP拥塞控制算法实现实时的音视频传输。
本申请还提供一种基于WebTransport的音视频传输系统,包括:
连接模块,用于客户端和服务端创建WebTransport连接;
传输模块,用于所述客户端通过WebTransport的Datagram的数据通道接收到的数据提交至音视频传输协议栈;
解码模块,用于所述音视频传输协议栈对接收到的数据进行增强,并通过浏览器自带的具有硬件加速的解码器实现视频解码;
渲染模块,用于所述客户端通过音频输出播放音频数据,通过图像渲染方式展示视频数据给用户,完成音视频的传递。
可选地,所述解码模块进行所述音视频传输协议栈对接收到的数据进行增强,包括:
每一次传输的音频数据包括前几次编码之后的音频数据,当传输过程中有数据丢失,通过重复的数据恢复丢失的音频编码后的数据;
通过控制音频编码器生成FEC包,解码时通过FEC包尝试恢复丢失数据;
将视频数据按照一定长度拆包成一组RTP数据包,将接收到的RTP数据包解包为完整的一帧视频数据。
可选地,所述渲染模块进行所述通过图像渲染方式展示视频数据给用户,包括:基于HTML5Canvas或WebGL协议将所述视频数据传输给显示器。
可选地,所述解码模块进行所述音视频传输协议栈对接收到的数据进行增强,包括:
在网络检测过程中发现丢包问题,音视频传输协议栈通过FEC恢复丢失数据,通过RTP重发请求重发丢失数据。
可选地,所述解码模块进行所述音视频传输协议栈对接收到的数据进行增强,包括:
在网络检测过程中发现带宽变化,音视频传输协议栈通过拥塞控制模块调整音视频传输质量,基于TCP拥塞控制算法实现实时的音视频传输。
本申请的优点和有益效果:
本申请提供一种基于WebTransport的音视频传输方法,包括:客户端和服务端创建WebTransport连接;所述客户端通过WebTransport的Datagram的数据通道接收到的数据提交至音视频传输协议栈;所述音视频传输协议栈对接收到的数据进行增强,并通过浏览器自带的具有硬件加速的解码器实现视频解码;所述客户端通过音频输出播放音频数据,通过图像渲染方式展示视频数据给用户,完成音视频的传递。本申请使用WebTransport进行音视频传输,不需要在客户端安装任何插件,从而提高了跨平台兼容性和易用性。通过使用WebTransport的Datagram数据通道接收到的数据进行增强,提高了音视频传输的可靠性。同时浏览器自带的具有硬件加速的解码器进行视频解码,大幅提高视频解码效率。
附图说明
图1是本申请中基于WebTransport的音视频传输示意图。
图2是本申请中对接收到的数据进行增强的示意图。
图3是本申请中基于WebTransport的音视频传输系统示意图。
具体实施方式
下面结合附图和具体实施例对本申请作进一步说明,以使本领域的技术人员可以更好地理解本申请并能予以实施。
以下内容均是为了详细说明本申请要保护的技术方案所提供的具体实施过程的示例,但是本申请还可以采用不同于此的描述的其他方式实施,本领域技术人员可以在本申请构思的指引下,采用不同的技术手段实现本申请,因此本申请不受下面具体实施例的限制。
本申请提供一种基于WebTransport的音视频传输方法,包括:客户端和服务端创建WebTransport连接;所述客户端通过WebTransport的Datagram的数据通道接收到的数据提交至音视频传输协议栈;所述音视频传输协议栈对接收到的数据进行增强,并通过浏览器自带的具有硬件加速的解码器实现视频解码;所述客户端通过音频输出播放音频数据,通过图像渲染方式展示视频数据给用户,完成音视频的传递。本申请使用WebTransport进行音视频传输,不需要在客户端安装任何插件,从而提高了跨平台兼容性和易用性。通过使用WebTransport的Datagram数据通道接收到的数据进行增强,提高了音视频传输的可靠性。同时浏览器自带的具有硬件加速的解码器进行视频解码,大幅提高视频解码效率。
图1是本申请中基于WebTransport的音视频传输示意图。
请参照图1所示,本申请提供的一种基于WebTransport的音视频传输步骤,包括:
S101客户端和服务端创建WebTransport连接。
建立连接在WebTransportAPI中,客户端和服务端可以创建WebTransport连接,该连接具有非可靠数据通道。具体实现方式是基于WebSocket或WebRTC等协议。WebSocket是一种双向通信协议,可以在单个TCP连接上进行全双工通信。WebRTC则是一种实时通信协议,可以实现点对点音视频通信。
S102所述客户端通过WebTransport的Datagram的数据通道接收到的数据提交至音视频传输协议栈。
数据传输客户端通过WebTransport的Datagram的数据通道接收到的数据提交至音视频传输协议栈,完成接收完整的音视频数据。音视频传输协议栈可以对接收到的数据进行处理,包括音频冗余包处理、音频前向纠错处理、视频传输RTPpacketizer处理、视频传输RTPdepacketizer处理等。
S103所述音视频传输协议栈对接收到的数据进行增强,并通过浏览器自带的具有硬件加速的解码器实现视频解码。
在音频冗余包处理中,每一次传输的音频数据会包括前几次编码之后的音频数据。即便传输过程中有数据丢失,也可以通过重复的数据恢复丢失的音频编码后的数据。这样可以增加冗余数据量,提高音频数据的可靠性。
动态调整冗余比例的策略可以用以下公式表示:
冗余比例(k)=α+β*(数据包丢失率(loss_rate))^γ
其中,α:这个系数代表了冗余比例的下限或初始值。也就是说,当数据包丢失率为0时,冗余比例的值就是α。它的作用是保证在数据包丢失率较低时,也能有一定的冗余比例,以应对网络抖动等情况。β:这个系数代表了冗余比例随数据包丢失率变化的速率。它的作用是控制冗余比例随着数据包丢失率的增加而增加的速度。γ:这个系数代表了冗余比例随数据包丢失率变化的指数。它的作用是控制冗余比例随着数据包丢失率的增加而增加的幅度。
具体的,可以根据实际应用场景和数据包丢失情况进行α、β和γ的调整。上述公式可以根据数据包丢失情况动态调整冗余比例,以实现更好的数据可靠性。
音频前向纠错处理是通过控制音频编码器(目前采用OPUS编码)生成FEC包,解码时通过FEC包尝试恢复丢失数据。FEC是一种前向纠错技术,通过在数据中添加冗余信息,可以在接收端检测和纠正数据错误。采用FEC技术可以提高音频数据的可靠性。
在视频传输RTPpacketizer处理中,将视频数据按照一定长度拆包成一组RTP数据包。通过传输控制模块使用非可靠数据通道传输到服务端。RTP是一种实时传输协议,用于在互联网上传输音频、视频和文本数据流。RTP包包括序列号和时间戳,用于同步和排序数据包。
在视频传输RTPdepacketizer处理中,将接收到的视频数据包解包为完整的一帧视频数据。通过对接收到的RTP包进行排序和重组,可以恢复原始的视频数据流。
如果RTP在发送/接收过程中出现丢包,可以使用RTCP(RTP控制协议)请求重发丢失的数据包。RTCP是一种辅助协议,用于控制和监视RTP流的传输。通过发送RTCP报告包,客户端可以通知服务器丢失的数据包,并请求重发丢失的数据。
如果RTP在发送/接收过程中出现丢包,也可以通过FEC恢复丢失的数据。FEC是一种前向纠错技术,通过在数据中添加冗余信息,可以在接收端通过解码FEC包来尝试恢复丢失的数据包。这样可以增加数据的可靠性。
进一步的,结合前向纠错编码(FEC)和重传机制的优化可以用以下公式表示:
FEC冗余数据包数量(FEC_Packet_Count)=FEC比例*数据包总数/256+重传请求的数据包数量(Retransmission_Packet_Count)。
其中,FEC比例是预先设定的冗余比例,Retransmission_Packet_Count是根据重传请求计算得到的数据包数量。上述公式可以计算出需要添加的冗余数据包数量和重传请求的数据包数量,以实现更好的数据可靠性。
如果RTP在传输过程中遇到网络抖动,带宽变化等情况,可以通过拥塞控制模块感知网络状况,从而调整音视频传输质量,实现实时的音视频传输。拥塞控制模块可以基于TCP拥塞控制算法(如AIMD算法)实现,根据网络状况动态调整传输速率和数据包大小,以适应网络变化并避免网络拥塞。
本申请提供一种拥塞控制算法(如TCPCUBIC或TCPVegas)可以用以下公式表示:
发送速率(TCP_Send_Rate)=TCP_Send_Rate_Min+(TCP_Send_Rate_Max-TCP_Send_Rate_Min)*(1-exp(-α*RTT^β))。
其中,TCP_Send_Rate_Min和TCP_Send_Rate_Max是发送速率的上下限,α和β是预先设定的系数,RTT是往返时间。上述公式可以更精确地预测网络状况并动态调整传输速率。
客户端通过浏览器自带的具有硬件加速的解码器实现高效的视频解码。这样可以提高视频数据的解码效率,并减少CPU的使用率。硬件加速解码可以利用GPU等硬件资源,对视频数据进行并行处理和渲染,提高视频播放的流畅度和性能。
S104所述客户端通过音频输出播放音频数据,通过图像渲染方式展示视频数据给用户,完成音视频的传递。
显示客户端通过音频输出播放音频数据,通过图像渲染方式展示视频数据给用户,完成音视频的传递。具体实现方式可以是基于HTML5Canvas或WebGL等协议。HTML5Canvas是一种HTML元素,可以用于绘制图形和动画。WebGL则是一种基于OpenGLES2.0的图形库,可以在Web浏览器中实现3D图形渲染。
弱网应对方案音视频传输协议栈实时检测网络状况,包括网络抖动和带宽变化。具体实现方式可以通过监听网络接口或使用第三方库实现。
网络抖动是指网络延迟的变化,可能会影响音视频传输的实时性和流畅度。带宽变化则是指网络带宽的变化,可能会影响音视频传输的速率和质量。
在网络检测过程中发现丢包问题,音视频传输协议栈通过FEC恢复丢失数据,通过网络重发请求重发丢失数据。具体实现方式可以是基于RFC2018协议规范实现。RFC2018是一种基于RTP/RTCP的实时流媒体传输协议规范,其中包括了FEC和重发机制的定义和实现细节。使用RFC2018规范可以实现丢包的恢复和重发,提高音视频传输的可靠性和稳定性。
在网络检测过程中发现带宽变化,音视频传输协议栈通过拥塞控制模块调整音视频传输质量,实现实时的音视频传输。具体实现方式可以是基于TCP拥塞控制算法(如AIMD算法)实现。TCP拥塞控制算法是一种用于避免网络拥塞的算法,可以根据网络状况动态调整传输速率和数据包大小,以适应网络变化并避免网络拥塞。在音视频传输中,如果发现带宽变化,可以通过拥塞控制模块调整传输速率和数据包大小,以保证音视频传输的稳定性和实时性。
图3是本申请中基于WebTransport的音视频传输系统示意图。
请参照图3所示,本申请还提供一种基于WebTransport的音视频传输系统,包括:连接模块301,传输模块302,解码模块303,渲染模块304。
连接模块301,用于客户端和服务端创建WebTransport连接.
建立连接在WebTransportAPI中,客户端和服务端可以创建WebTransport连接,该连接具有非可靠数据通道。具体实现方式是基于WebSocket或WebRTC等协议。WebSocket是一种双向通信协议,可以在单个TCP连接上进行全双工通信。WebRTC则是一种实时通信协议,可以实现点对点音视频通信。
传输模块302,用于所述客户端通过WebTransport的Datagram的数据通道接收到的数据提交至音视频传输协议栈。
数据传输客户端通过WebTransport的Datagram的数据通道接收到的数据提交至音视频传输协议栈,完成接收完整的音视频数据。音视频传输协议栈可以对接收到的数据进行处理,包括音频冗余包处理、音频前向纠错处理、视频传输RTPpacketizer处理、视频传输RTPdepacketizer处理等。
解码模块303,用于所述音视频传输协议栈对接收到的数据进行增强,并通过浏览器自带的具有硬件加速的解码器实现视频解码。
在音频冗余包处理中,每一次传输的音频数据会包括前几次编码之后的音频数据。即便传输过程中有数据丢失,也可以通过重复的数据恢复丢失的音频编码后的数据。这样可以增加冗余数据量,提高音频数据的可靠性。
动态调整冗余比例的策略可以用以下公式表示:
冗余比例(k)=α+β*(数据包丢失率(loss_rate))^γ
其中,α:这个系数代表了冗余比例的下限或初始值。也就是说,当数据包丢失率为0时,冗余比例的值就是α。它的作用是保证在数据包丢失率较低时,也能有一定的冗余比例,以应对网络抖动等情况。β:这个系数代表了冗余比例随数据包丢失率变化的速率。它的作用是控制冗余比例随着数据包丢失率的增加而增加的速度。γ:这个系数代表了冗余比例随数据包丢失率变化的指数。它的作用是控制冗余比例随着数据包丢失率的增加而增加的幅度。
具体的,可以根据实际应用场景和数据包丢失情况进行α、β和γ的调整。上述公式可以根据数据包丢失情况动态调整冗余比例,以实现更好的数据可靠性。
音频前向纠错处理是通过控制音频编码器(目前采用OPUS编码)生成FEC包,解码时通过FEC包尝试恢复丢失数据。FEC是一种前向纠错技术,通过在数据中添加冗余信息,可以在接收端检测和纠正数据错误。采用FEC技术可以提高音频数据的可靠性。
在视频传输RTPpacketizer处理中,将视频数据按照一定长度拆包成一组RTP数据包。通过传输控制模块使用非可靠数据通道传输到服务端。RTP是一种实时传输协议,用于在互联网上传输音频、视频和文本数据流。RTP包包括序列号和时间戳,用于同步和排序数据包。
在视频传输RTPdepacketizer处理中,将接收到的视频数据包解包为完整的一帧视频数据。通过对接收到的RTP包进行排序和重组,可以恢复原始的视频数据流。
如果RTP在发送/接收过程中出现丢包,可以使用RTCP(RTP控制协议)请求重发丢失的数据包。RTCP是一种辅助协议,用于控制和监视RTP流的传输。通过发送RTCP报告包,客户端可以通知服务器丢失的数据包,并请求重发丢失的数据。
如果RTP在发送/接收过程中出现丢包,也可以通过FEC恢复丢失的数据。FEC是一种前向纠错技术,通过在数据中添加冗余信息,可以在接收端通过解码FEC包来尝试恢复丢失的数据包。这样可以增加数据的可靠性。
进一步的,结合前向纠错编码(FEC)和重传机制的优化可以用以下公式表示:
FEC冗余数据包数量(FEC_Packet_Count)=FEC比例*数据包总数/256+重传请求的数据包数量(Retransmission_Packet_Count)
其中,FEC比例是预先设定的冗余比例,Retransmission_Packet_Count是根据重传请求计算得到的数据包数量。上述公式可以计算出需要添加的冗余数据包数量和重传请求的数据包数量,以实现更好的数据可靠性。
如果RTP在传输过程中遇到网络抖动,带宽变化等情况,可以通过拥塞控制模块感知网络状况,从而调整音视频传输质量,实现实时的音视频传输。拥塞控制模块可以基于TCP拥塞控制算法(如AIMD算法)实现,根据网络状况动态调整传输速率和数据包大小,以适应网络变化并避免网络拥塞。
本申请提供一种拥塞控制算法(如TCPCUBIC或TCPVegas)可以用以下公式表示:
发送速率(TCP_Send_Rate)=TCP_Send_Rate_Min+(TCP_Send_Rate_Max-TCP_Send_Rate_Min)*(1-exp(-α*RTT^β))
其中,TCP_Send_Rate_Min和TCP_Send_Rate_Max是发送速率的上下限,α和β是预先设定的系数,RTT是往返时间。上述公式可以更精确地预测网络状况并动态调整传输速率。
客户端通过浏览器自带的具有硬件加速的解码器实现高效的视频解码。这样可以提高视频数据的解码效率,并减少CPU的使用率。硬件加速解码可以利用GPU等硬件资源,对视频数据进行并行处理和渲染,提高视频播放的流畅度和性能。
渲染模块304,用于所述客户端通过音频输出播放音频数据,通过图像渲染方式展示视频数据给用户,完成音视频的传递。
显示客户端通过音频输出播放音频数据,通过图像渲染方式展示视频数据给用户,完成音视频的传递。具体实现方式可以是基于HTML5Canvas或WebGL等协议。HTML5Canvas是一种HTML元素,可以用于绘制图形和动画。WebGL则是一种基于OpenGLES2.0的图形库,可以在Web浏览器中实现3D图形渲染。
弱网应对方案音视频传输协议栈实时检测网络状况,包括网络抖动和带宽变化。具体实现方式可以通过监听网络接口或使用第三方库实现。
网络抖动是指网络延迟的变化,可能会影响音视频传输的实时性和流畅度。带宽变化则是指网络带宽的变化,可能会影响音视频传输的速率和质量。
在网络检测过程中发现丢包问题,音视频传输协议栈通过FEC恢复丢失数据,通过网络重发请求重发丢失数据。具体实现方式可以是基于RFC2018协议规范实现。RFC2018是一种基于RTP/RTCP的实时流媒体传输协议规范,其中包括了FEC和重发机制的定义和实现细节。使用RFC2018规范可以实现丢包的恢复和重发,提高音视频传输的可靠性和稳定性。
在网络检测过程中发现带宽变化,音视频传输协议栈通过拥塞控制模块调整音视频传输质量,实现实时的音视频传输。具体实现方式可以是基于TCP拥塞控制算法(如AIMD算法)实现。TCP拥塞控制算法是一种用于避免网络拥塞的算法,可以根据网络状况动态调整传输速率和数据包大小,以适应网络变化并避免网络拥塞。在音视频传输中,如果发现带宽变化,可以通过拥塞控制模块调整传输速率和数据包大小,以保证音视频传输的稳定性和实时性。
综上所述,通过建立连接、数据传输、数据处理、显示和弱网应对方案,可以实现可靠的、实时的音视频传输。在弱网环境中,采用FEC恢复丢失数据、RTP重发请求重发丢失数据、拥塞控制模块调整传输质量和HTML5Canvas或WebGL等协议实现高效的视频解码,可以使音视频传输更加稳定和流畅。
Claims (8)
1.一种基于WebTransport的音视频传输方法,其特征在于,包括:
客户端和服务端创建WebTransport连接;
所述客户端通过WebTransport的Datagram的数据通道接收到的数据提交至音视频传输协议栈;
所述音视频传输协议栈对接收到的数据进行增强,并通过浏览器自带的具有硬件加速的解码器实现视频解码;
所述客户端通过音频输出播放音频数据,通过图像渲染方式展示视频数据给用户,完成音视频的传递;
其中,所述音视频传输协议栈对接收到的数据进行增强,包括:
每一次传输的音频数据包括前几次编码之后的音频数据,当传输过程中有数据丢失,通过重复的数据恢复丢失的音频编码后的数据;通过控制音频编码器生成FEC包,解码时通过FEC包尝试恢复丢失数据;将视频数据按照一定长度拆包成一组RTP数据包,将接收到的RTP数据包解包为完整的一帧视频数据;其中,所述每一次传输的音频数据包括前几次编码之后的音频数据的动态调整冗余比例的策略为冗余比例k=α+β*(数据包丢失率loss_rate)^γ,α为所述冗余比例的下限或初始值,β为所述冗余比例随数据包丢失率变化的速率,γ为所述冗余比例随数据包丢失率变化的指数。
2.根据权利要求1所述基于WebTransport的音视频传输方法,其特征在于,通过图像渲染方式展示视频数据给用户,包括:基于HTML5Canvas或WebGL协议将所述视频数据传输给显示器。
3.根据权利要求1所述基于WebTransport的音视频传输方法,其特征在于,所述音视频传输协议栈对接收到的数据进行增强,还包括:
在网络检测过程中发现丢包问题时,音视频传输协议栈通过FEC恢复丢失数据,通过RTP重发请求重发丢失数据。
4.根据权利要求1所述基于WebTransport的音视频传输方法,其特征在于,所述音视频传输协议栈对接收到的数据进行增强,还包括:
在网络检测过程中发现带宽变化时,音视频传输协议栈通过拥塞控制模块调整音视频传输质量,基于TCP拥塞控制算法实现实时的音视频传输。
5.一种基于WebTransport的音视频传输系统,其特征在于,包括:
连接模块,用于客户端和服务端创建WebTransport连接;
传输模块,用于所述客户端通过WebTransport的Datagram的数据通道接收到的数据提交至音视频传输协议栈;
解码模块,用于所述音视频传输协议栈对接收到的数据进行增强,并通过浏览器自带的具有硬件加速的解码器实现视频解码;其中,所述解码模块进行所述音视频传输协议栈对接收到的数据进行增强,包括:每一次传输的音频数据包括前几次编码之后的音频数据,当传输过程中有数据丢失,通过重复的数据恢复丢失的音频编码后的数据;通过控制音频编码器生成FEC包,解码时通过FEC包尝试恢复丢失数据;将视频数据按照一定长度拆包成一组RTP数据包,将接收到的RTP数据包解包为完整的一帧视频数据;其中,所述每一次传输的音频数据包括前几次编码之后的音频数据的动态调整冗余比例的策略为冗余比例k=α+β*(数据包丢失率loss_rate)^γ,α为所述冗余比例的下限或初始值,β为所述冗余比例随数据包丢失率变化的速率,γ为所述冗余比例随数据包丢失率变化的指数;渲染模块,用于所述客户端通过音频输出播放音频数据,通过图像渲染方式展示视频数据给用户,完成音视频的传递。
6.根据权利要求5所述基于WebTransport的音视频传输系统,其特征在于,所述渲染模块进行所述通过图像渲染方式展示视频数据给用户,包括:基于HTML5Canvas或WebGL协议将所述视频数据传输给显示器。
7.根据权利要求5所述基于WebTransport的音视频传输系统,其特征在于,所述解码模块进行所述音视频传输协议栈对接收到的数据进行增强,还包括:
在网络检测过程中发现丢包问题,音视频传输协议栈通过FEC恢复丢失数据,通过RTP重发请求重发丢失数据。
8.根据权利要求5所述基于WebTransport的音视频传输系统,其特征在于,所述解码模块进行所述音视频传输协议栈对接收到的数据进行增强,还包括:
在网络检测过程中发现带宽变化,音视频传输协议栈通过拥塞控制模块调整音视频传输质量,基于TCP拥塞控制算法实现实时的音视频传输。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311367509.5A CN117097705B (zh) | 2023-10-21 | 2023-10-21 | 一种基于WebTransport的音视频传输方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311367509.5A CN117097705B (zh) | 2023-10-21 | 2023-10-21 | 一种基于WebTransport的音视频传输方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117097705A CN117097705A (zh) | 2023-11-21 |
CN117097705B true CN117097705B (zh) | 2024-01-16 |
Family
ID=88772076
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311367509.5A Active CN117097705B (zh) | 2023-10-21 | 2023-10-21 | 一种基于WebTransport的音视频传输方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117097705B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101860895A (zh) * | 2010-06-11 | 2010-10-13 | 上海海维工业控制有限公司 | 一种改进的aimd拥塞控制方法 |
CN107277612A (zh) * | 2016-04-05 | 2017-10-20 | 韩华泰科株式会社 | 用于在web浏览器上播放媒体流的方法和设备 |
CN108011686A (zh) * | 2016-10-31 | 2018-05-08 | 腾讯科技(深圳)有限公司 | 信息编码帧丢失恢复方法和装置 |
CN108337545A (zh) * | 2017-01-20 | 2018-07-27 | 韩华泰科株式会社 | 用于同步再现视频和音频的媒体重放设备和媒体服务设备 |
CN115119011A (zh) * | 2022-08-30 | 2022-09-27 | 南京百家云科技有限公司 | 一种直播间内容的转播方法、后台服务器及电子设备 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101719809B (zh) * | 2009-11-25 | 2012-10-10 | 中兴通讯股份有限公司 | 一种媒体数据包丢包恢复的方法及系统 |
KR101821124B1 (ko) * | 2016-04-05 | 2018-01-23 | 한화테크윈 주식회사 | 웹브라우저 상에서 미디어 스트림을 재생하는 방법 및 장치 |
US10992724B2 (en) * | 2017-01-20 | 2021-04-27 | Hanwha Techwin Co., Ltd. | Media playback apparatus and method including delay prevention system |
US11089381B2 (en) * | 2017-01-20 | 2021-08-10 | Hanwha Techwin Co., Ltd. | Apparatus and method for simultaneous playback and backup of media in a web browser |
CN113497792B (zh) * | 2020-04-02 | 2022-12-23 | 京东方科技集团股份有限公司 | 音视频通信方法、终端、服务器、计算机设备和存储介质 |
CN115665474A (zh) * | 2022-09-07 | 2023-01-31 | 抖音视界有限公司 | 直播方法、装置、电子设备以及存储介质 |
-
2023
- 2023-10-21 CN CN202311367509.5A patent/CN117097705B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101860895A (zh) * | 2010-06-11 | 2010-10-13 | 上海海维工业控制有限公司 | 一种改进的aimd拥塞控制方法 |
CN107277612A (zh) * | 2016-04-05 | 2017-10-20 | 韩华泰科株式会社 | 用于在web浏览器上播放媒体流的方法和设备 |
CN108011686A (zh) * | 2016-10-31 | 2018-05-08 | 腾讯科技(深圳)有限公司 | 信息编码帧丢失恢复方法和装置 |
CN108337545A (zh) * | 2017-01-20 | 2018-07-27 | 韩华泰科株式会社 | 用于同步再现视频和音频的媒体重放设备和媒体服务设备 |
CN115119011A (zh) * | 2022-08-30 | 2022-09-27 | 南京百家云科技有限公司 | 一种直播间内容的转播方法、后台服务器及电子设备 |
Non-Patent Citations (1)
Title |
---|
云游戏中基于帧率控制的FEC 补偿策略;沈专 等;小型微型计算机系统;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN117097705A (zh) | 2023-11-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109729439B (zh) | 实时视频传输方法 | |
EP1346578B1 (en) | Method for multimedia communication over packet channels | |
US9794311B2 (en) | Transport accelerator implementing extended transmission control functionality | |
KR100612003B1 (ko) | 통신망에서 비트 스트림 송수신 장치 및 그 방법 | |
US20030112822A1 (en) | System and method for streaming multimedia over packet networks | |
KR20080059508A (ko) | 데이터 통신시스템, 데이터 송신장치, 데이터 송신방법 및패킷 사이즈 및 용장도 결정방법 | |
US20130138829A1 (en) | Scalable video coding over real-time transport protocol | |
CN113497792B (zh) | 音视频通信方法、终端、服务器、计算机设备和存储介质 | |
US20100125768A1 (en) | Error resilience in video communication by retransmission of packets of designated reference frames | |
CN109862038A (zh) | 一种流媒体协议中数据延时及丢包的处理方法 | |
US10230651B2 (en) | Effective intra-frame refresh in multimedia communications over packet networks | |
CN101552660A (zh) | 对流媒体数据进行重传、播放的方法、装置及通信系统 | |
CN117135148A (zh) | 一种基于WebRTC的音视频传输方法及系统 | |
US20090268730A1 (en) | Data transmitting apparatus and method and program for controlling transmission rate | |
US20050083970A1 (en) | Apparatus, system and method of transmitting data | |
CN117097705B (zh) | 一种基于WebTransport的音视频传输方法和系统 | |
US20030152080A1 (en) | System and method for fault tolerant multimedia communication | |
CN115086667B (zh) | 一种基于自适应学习的实时视频传输方法 | |
US8472310B2 (en) | Packet distribution band controlling method, distributing apparatus, and video distributing system | |
CN109274980A (zh) | 一种用于快速直播的数据传输方法 | |
US20130339482A1 (en) | Data transmitting system, and transmitting apparatus and receiving apparatus and program in data transmitting system | |
EP1947859A1 (en) | Video transmission method and system | |
CN114866523A (zh) | 一种基于udp的视频快速传输方法及系统 | |
CN112671784A (zh) | 一种数据传输方法、装置、设备及存储介质 | |
Hyeyoung Chang et al. | Reliable Real-Time Transport of Stereo Video |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |