CN113489933B - 数据传输设备及码率动态调节方法 - Google Patents

数据传输设备及码率动态调节方法 Download PDF

Info

Publication number
CN113489933B
CN113489933B CN202010831777.8A CN202010831777A CN113489933B CN 113489933 B CN113489933 B CN 113489933B CN 202010831777 A CN202010831777 A CN 202010831777A CN 113489933 B CN113489933 B CN 113489933B
Authority
CN
China
Prior art keywords
data
transmitted
code rate
pad
data transmission
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
Application number
CN202010831777.8A
Other languages
English (en)
Other versions
CN113489933A (zh
Inventor
李蕾
矫佩佩
高雪松
陈维强
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hisense Group Holding Co Ltd
Original Assignee
Hisense Group Holding Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hisense Group Holding Co Ltd filed Critical Hisense Group Holding Co Ltd
Priority to CN202010831777.8A priority Critical patent/CN113489933B/zh
Publication of CN113489933A publication Critical patent/CN113489933A/zh
Application granted granted Critical
Publication of CN113489933B publication Critical patent/CN113489933B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/14Systems for two-way working
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Communication Control (AREA)

Abstract

本申请提供一种数据传输设备及码率动态调节方法,涉及视频通话技术领域。其中,数据传输设备能够响应Gstreamer框架中的数据传输通道发出的在线反馈信号,调用与在线反馈信号绑定的回调函数;通过回调函数确定待传输数据对应的码率目标值;按照确定的码率目标值,对待传输数据进行编码并发送。该数据传输设备基于Gstreamer框架实现了视频通话时的动态码率调节,避免编码时可能会导致没有足够的码率对复杂的内容部分进行编码的技术问题,从而导致视频通话质量下降,同时在简单的内容部分会产生码率冗余,浪费一些码率的问题。

Description

数据传输设备及码率动态调节方法
技术领域
本申请涉及视频通话技术领域,特别是涉及一种数据传输设备及码率动态调节方法。
背景技术
目前,视频通话应用中,码率控制是视频通信中的一个关键环节,用于调控编码视频的输出质量。码率控制的效率很大程度地影响着视频质量。因为通常采用固定码率,现有的视频通话数据传输在进行编码时可能会导致没有足够的码率对复杂的内容部分进行编码,从而导致视频通话质量下降,同时在简单的内容部分会产生码率冗余,浪费一些码率。
如何实现视频通话时的码率动态调节,一直是一个关注度很高的问题。
发明内容
本申请实施例提供了一种数据传输设备及码率动态调节方法,基于Gstreamer框架实现了视频通话时的动态码率调节,避免编码时可能会导致没有足够的码率对复杂的内容部分进行编码的技术问题,从而导致视频通话质量下降,同时在简单的内容部分会产生码率冗余,浪费一些码率的问题。
第一方面,本申请实施例提供一种数据传输设备,包括:
存储器,所述存储器用于存储数据传输设备运行时所使用的数据或程序代码;
处理器,所述处理器用于:响应所述Gstreamer框架中的数据传输通道发出的在线反馈信号,调用与所述在线反馈信号绑定的回调函数;所述在线反馈信号为待传输数据流经所述数据传输通道中的设定元件时触发的;通过所述回调函数确定所述待传输数据对应的码率目标值;按照确定的所述码率目标值,对所述待传输数据进行编码并发送。
本申请实施例提供的数据传输设备,能够响应Gstreamer框架中的数据传输通道发出的在线反馈信号,调用与在线反馈信号绑定的回调函数;通过回调函数确定待传输数据对应的码率目标值;按照确定的码率目标值,对待传输数据进行编码并发送。该数据传输设备基于Gstreamer框架实现了视频通话时的动态码率调节,避免编码时可能会导致没有足够的码率对复杂的内容部分进行编码的技术问题,从而导致视频通话质量下降,同时在简单的内容部分会产生码率冗余,浪费一些码率的问题。
在某些实施例中,所述处理器具体用于:
通过所述回调函数对所述待传输数据的数据包进行解析,得到所述待传输数据的大小;
根据所述待传输数据的大小,确定所述待传输数据对应的码率目标值。
该实施例提供的数据传输设备,通过回调函数实现对待传输数据的数据包的解析,得到待传输数据的大小。因为回调函数的运用,便于用户进行功能扩展,该方式在无需重新编译或修改Gstreamer框架源代码的前提下实现动态码率调节,从而可以避免编码时可能会导致没有足够的码率对复杂的内容部分进行编码的技术问题,从而导致视频通话质量下降,同时在简单的内容部分会产生码率冗余,浪费一些码率的问题。
在某些实施例中,所述处理器具体用于:
根据所述待传输数据的大小,确定所述待传输数据的编码时间;
根据所述待传输数据的大小与所述待传输数据的编码时间的比值,确定所述待传输数据对应的码率目标值。
该实施例提供的数据传输设备,通过待传输数据的大小,确定待传输数据的编码时间,然后确定待传输数据对应的码率目标值。因为待传输数据的大小不同,码率目标值也不同,实现了更为精细的动态码率控制,可以防止出现编码时没有足够的码率对复杂的内容部分进行编码而导致质量下降的问题。
在某些实施例中,所述Gstreamer框架中的设定元件具有预先构建的第一衬垫,所述设定元件的子元件具有预先构建的与所述第一衬垫相关联的第二衬垫;所述Gstreamer框架中的数据传输通道发出的在线反馈信号是通过所述第二衬垫和所述第一衬垫发出的。
该实施例提供的数据传输设备,通过Gstreamer框架中的设定元件及其子元件构建衬垫,从而实现在线反馈信号的传输,该方式在无需重新编译或修改Gstreamer框架源代码的前提下实现动态码率调节,从而可以避免编码时可能会导致没有足够的码率对复杂的内容部分进行编码的技术问题,从而导致视频通话质量下降,同时在简单的内容部分会产生码率冗余,浪费一些码率的问题。
在某些实施例中,所述在线反馈信号是所述设定元件的子元件接收到所述待传输数据时生成并通过所述第二衬垫发送至所述第一衬垫,再通过所述第一衬垫发出的。
该实施例提供的数据传输设备,通过Gstreamer框架中的设定元件及其子元件构建的衬垫,从而实现设定元件及其子元件的通信,该方式对Gstreamer框架源代码只需少量调整即可实现动态码率调节,从而可以方便快捷地实现动态码率控制。
第二方面,本申请实施例提供了一种码率动态调节方法,包括:
响应所述Gstreamer框架中的数据传输通道发出的在线反馈信号,调用与所述在线反馈信号绑定的回调函数;所述在线反馈信号为待传输数据流经所述数据传输通道中的设定元件时触发的;
通过所述回调函数确定所述待传输数据对应的码率目标值;
按照确定的所述码率目标值,对所述待传输数据进行编码并发送。
在某些实施例中,通过所述回调函数确定所述待传输数据对应的码率目标值,包括:
通过所述回调函数对所述待传输数据的数据包进行解析,得到所述待传输数据的大小;
根据所述待传输数据的大小,确定所述待传输数据对应的码率目标值。
在某些实施例中,根据所述待传输数据的大小,确定所述待传输数据对应的码率目标值,包括:
根据所述待传输数据的大小,确定所述待传输数据的编码时间;
根据所述待传输数据的大小与所述待传输数据的编码时间的比值,确定所述待传输数据对应的码率目标值。
在某些实施例中,所述Gstreamer框架中的设定元件具有预先构建的第一衬垫,所述设定元件的子元件具有预先构建的与所述第一衬垫相关联的第二衬垫;所述Gstreamer框架中的数据传输通道发出的在线反馈信号是通过所述第二衬垫和所述第一衬垫发出的。
在某些实施例中,所述在线反馈信号是所述设定元件的子元件接收到所述待传输数据时生成并通过所述第二衬垫发送至所述第一衬垫,再通过所述第一衬垫发出的。
第二方面中任意一种实现方式所带来的技术效果可参见第一方面的实现方式所带来的技术效果,此处不再赘述。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例的一种应用场景示意图;
图2为本申请实施例提供的一种数据传输设备的硬件配置框图;
图3本申请实施例提供的一种Gstreamer框架中的数据流框图;
图4为本申请实施例提供的一种码率动态调节方法的流程示意图;
图5为本申请实施例提供的另一种码率动态调节方法的流程示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
以下对本申请实施例中的部分用语进行解释说明,以便于本领域技术人员理解。
(1)终端设备:本申请实施例中术语“终端设备”指可以安装各类应用程序,包括终端设备自带的应用和第三方应用,并且能够将已安装的应用程序中提供的对象进行显示的设备,该终端设备可以是移动的,也可以是固定的。例如,手机、平板电脑、各类可穿戴设备、车载设备、个人数字助理(Personal Digital Assistant,PDA)、销售终端(Point OfSales,POS)或其它能够实现上述功能的终端设备等。
(2)回调函数:回调函数就是一个通过函数指针调用的函数。函数指针通常为函数的地址。如果把函数的指针作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。实现回调函数的原理为:定义一个回调接口,并定义一个回调方法;定义出要设置回调机制的类,并使此类持有回调接口的指针;在要设置回调机制的类中,初始化回调接口指针,并使用指针调用回调函数;在要设置回调机制的类中设置触发时机及执行的触发事件函数。
(3)Gstreamer框架:GStreamer是一个非常强大而且通用的创建流媒体应用程序的框架。GStreamer所具备的很多优点来源于其框架的模块化,它是基于插件的,能够无缝的合并新的插件,所有的插件都能够被链接到任意的已经定义了的数据流管道中,最大限度的实现代码的复用。GStreamer的管道能够被GUI编辑器编辑,能够以XML文件来保存。这样的设计使得管道程序库的消耗变得非常少。关于Gstreamer管道的数据推送机制,是通过总线监控管道中各个元件的状态来进行数据流的自动管理的。但是,由于追求模块化和高效率,使得GStreamer在整个框架上变的复杂,也同时因为复杂度的提高,使得开发一个新的应用程序显得并不简单。
(4)码率(Bitrate):码率就是数据传输时单位时间传送的数据位数,一般我们用的单位是kbps,即千位每秒。通俗一点的理解码率就是取样率,单位时间内取样率越大,精度就越高,处理出来的文件就越接近原始文件。但是文件体积与取样率是成正比的,所以几乎所有的编码格式重视的都是如何用最低的码率达到最少的失真,围绕这个核心衍生出来的cbr(固定码率)与vbr(可变码率)。
(5)RTP:RTP是Real-Time Transport Protocol的缩写,指实时传输协议,是针对Internet上多媒体数据流的一个传输协议。RTP被定义为在一对一或一对多的传输情况下工作,其目的是提供时间信息和实现流同步。RTP的典型应用建立在UDP上,但也可以在TCP等其他协议之上工作。RTP本身只保证实时数据的传输,并不能为按顺序传送数据包提供可靠的传送机制,也不提供流量控制或拥塞控制,它依靠RTCP提供这些服务。
(6)WebRTC:WebRTC是Web Real-Time Communication的缩写,可用于实现基于网页的视频会议。WebRTC提供了视频会议的核心API接口,包括音视频的采集、编解码、网络传输、显示等功能,并且还支持跨平台:windows,linux,mac,android,例如,WebRTC在Gstreamer框架中的应用是webrtcbin。
(7)元件(Element):元件(Element)是Gstreamer框架中最重要的一个概念,元件(Element)表现为GstElement对象。元件是构建一个媒体管道的基本块。所有上层(high-level)部件都源自GstElement对象。任何一个解码器编码器、分离器、视频/音频输出部件实际上都是一个GstElement对象。对程序员来说,元件就像一个黑盒子。可以从元件的一端输入数据,元件对数据进行一些处理,然后数据从元件的另一段输出。拿一个解码元件来说,输入一些有特定编码的数据,元件会输出相应的解码数据。
(8)箱柜(bin)是Gstreamer框架中的容器元件,包含多个元件element或者bin,它通常被用来容纳其它的元件对象,但由于其自身也是一个GstElement对象,因此实际上也能够被用来容纳其它的箱柜对象。利用箱柜可以将需要处理的多个元件组合成一个逻辑元件,由于不再需要对箱柜中的元件逐个进行操作,因此能够很容易地利用它来构造更加复杂的管道(pipline)。管道(pipline)是顶级的bin。
(9)管道(pipeline):管道是箱柜(Bin)的一个特殊的子类型,管道(pipeline)可以操作包含在它自身内部的所有元件(element)。因为箱柜(Bin)本身又是元件(element)的子集,所以能够象操作普通元件(element)一样的操作一个箱柜(Bin),通过这种方法可以降低应用程序的复杂度。可以通过改变一个箱柜(Bins)的状态来改变箱柜(Bin)内部所有元件(element)的状态。箱柜(Bin)可以发送总线消息(bus messages)给它的子集元件(element),这些消息包括:错误消息(error messages),标签消息(tag messages),EOS消息(EOS messages)。管道(pipeline)是高级的箱柜(Bins)。当设定管道的暂停或者播放状态的时候,数据流将开始流动,,并且媒体数据处理也开始处理。一旦开始,管道将在一个单独的线程中运行,直到被停止或者数据流播放完毕。
(10)衬垫(Pads):在GStreamer中被用于多个元件的链接,从而让数据流能在这样的链接中流动。一个衬垫(Pads)可以被看作是一个元件(element)插座或者端口,元件(element)之间的链接就是依靠着衬垫(Pads)。衬垫(Pads)有处理特殊数据的能力:一个衬垫(Pads)能够限制数据流类型的通过。链接成功的条件是:只有在两个衬垫(Pads)允许通过的数据类型一致的时候才被建立。数据类型的设定使用了一个叫做Caps negotiation的方法。数据类型被为一个GstCaps变量所描述。
目前,视频通话应用中,码率控制是视频通信中的一个关键环节,用于调控编码视频的输出质量。码率控制的效率很大程度地影响着视频质量。因为通常采用固定码率,现有的视频通话数据传输在进行编码时可能会导致没有足够的码率对复杂的内容部分进行编码,从而导致视频通话质量下降,同时在简单的内容部分会产生码率冗余,浪费一些码率。因此现有的视频通话还存在着数据传输的码率控制效率不高的局限性。如何实现视频通话时的码率动态调节,一直是一个热点问题。基于此,本申请实施例提供一种数据传输设备及码率动态调节方法。其中,数据传输设备能够获取待传输数据的大小;根据待传输数据的大小,确定待传输数据对应的码率目标值;按照确定的码率目标值,对待传输数据进行编码并发送。上述数据传输设备,基于Gstreamer框架实现了视频通话时的动态码率调节,避免编码时可能会导致没有足够的码率对复杂的内容部分进行编码的技术问题,从而导致视频通话质量下降,同时在简单的内容部分会产生码率冗余,浪费一些码率的问题。该数据传输设备通过基于Gstreamer框架的码率动态调节,可以实现视频通话应用领域中,避免不同分辨率切换时,出现码率冗余或码率不足的情况,提高数据传输的码率控制效率,改善视频通话的质量。
为了使本申请实施例的发明目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,显然,所描述的实施例仅仅是本申请一部份实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
需要说明的是,下述本申请实施例描述的应用场景是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着新应用场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
图1示出了本申请实施例的一种应用场景,参见图1所示,该应用场景中包括服务器100、数据传输设备200、智感器300、显示器400、多个终端设备500。服务器100、数据传输设备200、智感器300、显示器400、多个终端设备500处于同一局域网,该局域网可以是有线网络或者无线网络。
智感器300可以是摄像头,也可以是其他可采集视频数据的电子器件。服务器100可以是数据传输设备200可以与服务器100进行通信。智感器300是数据传输设备200所设置的前端硬件设备,用于采集视频数据。用户可以通过智感器300采集用户的视频数据,并发送给数据传输设备200。数据传输设备200将获取的视频数据进行根据码率动态调节方法的动态码率控制等处理,用于在显示器400进行本地显示和上传服务器100。服务器100对数据传输设备200上传的视频数据进行转发至多个终端设备500,多个终端设备500对服务器100转发的视频数据进行视频播放,从而实现Gstreamer框架下的视频通话。另一方面,数据传输设备200还接收服务器100转发的视频数据,用于在显示器400进行本地显示。
数据传输设备200可以为便携设备(例如:手机、平板、笔记本电脑等),也可以为个人电脑(PC,Personal Computer),服务器100可以为任何能够提供互联网服务的设备。
根据实现需要,本申请实施例中的应用场景中可以具有任意数目的数据传输设备、网络和服务器。例如,服务器100可以是由多个服务器设备组成的服务器群组。
图2中示例性示出了实施例中数据传输设备200的硬件配置框图。如图2所示,数据传输设备200以通用计算设备的形式表现。数据传输设备200的组件可以包括但不限于:至少一个处理器201、至少一个存储器202、连接不同系统组件(包括存储器202和处理器201)的总线203。
总线203表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器、外围总线、处理器或者使用多种总线结构中的任意总线结构的局域总线。
存储器202,用于存储数据传输设备200运行时所使用的数据或程序代码,可以包括易失性存储器形式的可读介质,例如随机存取存储器(RAM)2021和/或高速缓存存储器2022,还可以进一步包括只读存储器(ROM)2023。
存储器202还可以包括具有一组(至少一个)程序模块2024的程序/实用工具2025,这样的程序模块2024包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
处理器201,用于:响应Gstreamer框架中的数据传输通道发出的在线反馈信号,调用与在线反馈信号绑定的回调函数;在线反馈信号为待传输数据流经数据传输通道中的设定元件时触发的,例如Gstreamer框架中的元件Rtpbin;通过回调函数确定待传输数据对应的码率目标值;按照确定的码率目标值,对待传输数据进行编码并发送。
在某些实施例中,处理器201具体用于:通过回调函数对待传输数据的数据包进行解析,得到待传输数据的大小;根据待传输数据的大小,确定待传输数据对应的码率目标值。
在某些实施例中,处理器201具体用于:根据待传输数据的大小,确定待传输数据的编码时间;根据待传输数据的大小与待传输数据的编码时间的比值,确定待传输数据对应的码率目标值。
在某些实施例中,Gstreamer框架中的设定元件具有预先构建的第一衬垫,设定元件的子元件具有预先构建的与第一衬垫相关联的第二衬垫;Gstreamer框架中的数据传输通道发出的在线反馈信号是通过第二衬垫和第一衬垫发出的。例如,元件Rtpbin以及元件Rtpbin内部的子元件rtpsession分别具有预先构建的第一衬垫recv_rtp_sink_1和第一衬垫recv_rtp_sink_2。
在某些实施例中,在线反馈信号是设定元件的子元件接收到待传输数据时生成并通过第二衬垫发送至第一衬垫,再通过第一衬垫发出的。例如,设定元件为Gstreamer框架中的Rtpbin,Rtpbin具有子元件rtpsession,当rtpsession接收到待传输数据时生成并通过第二衬垫recv_rtp_sink_2发送至第一衬垫recv_rtp_sink_1,再通过第一衬垫recv_rtp_sink_1发出的。
数据传输设备200也可以与一个或多个外部设备204(例如键盘、指向设备等)通信,还可与一个或者多个使得用户能与数据传输设备200交互的设备通信,和/或与使得该数据传输设备200能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口205进行。并且,数据传输设备200还可以通过网络适配器206与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器206通过总线203与用于数据传输设备200的其它模块通信。应当理解,尽管图中未示出,可以结合数据传输设备200使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
图3示出了本申请实施例提供的一种Gstreamer框架中的数据流框图。Gstreamer框架中的webrtcbin元件没有对外提供接口来访问内部的元件rtpbin,所以,在其框架下实现rtp数据包的传输码率只能设定为固定码率。如图3所示,本方案对其rtp数据包的管道(Gstreamer Pipeline)传输方式进行了改进,提供一种码率动态调节方法,在无需重新编译或修改原webrtcbin元件的基础上,实现rtp数据包的获取,并对其数据包的码率根据实际估测值进行动态设置。如图3所示,在本申请的一种实施例中,rtp数据包的传输会经由名为Webrtcbin的箱柜。在Webrtcbin的箱柜内部,rtp数据包的传输为由名为Rtpbin的元件传输到名为Decodebin的编码器元件,然后再传输到名为Gstbin的播放器元件。在元件rtpbin的内部,rtp数据包会流经一个名为rtpsession的子元件。
Gstreamer框架中的rtp数据包的管道中的元件Rtpbin以及元件Rtpbin内部的子元件rtpsession分别动态地申请1个衬垫recv_rtp_sink_1和recv_rtp_sink_2,并将元件Rtpbin的衬垫recv_rtp_sink_1指向元件Rtpbin内部的子元件rtpsession的衬垫recv_rtp_sink_2。
在一些实施例中,元件rtpsession预先进行了与on-feedback-rtcp信号绑定,当视频数据流经元件rtpsession时,元件rtpsession产生on-feedback-rtcp信号,on-feedback-rtcp信号经过子元件rtpsession的衬垫recv_rtp_sink_2和元件Rtpbin的衬垫recv_rtp_sink_1发出。
图4示出了本申请实施例提供的一种码率动态调节方法的流程示意图,适用于数据传输设备,该数据传输设备适用于图2所示出的硬件结构。
该种码率动态调节方法可以由数据传输设备200执行,请参见图4,可以包括以下步骤:
步骤S401,响应Gstreamer框架中的数据传输通道发出的在线反馈信号,调用与在线反馈信号绑定的回调函数。
在线反馈信号为待传输数据流经数据传输通道中的设定元件时触发的。
示例性地,设定元件可以是元件Rtpbin。
在某些实施例中,在线反馈信号为待传输数据流经数据传输通道中的设定元件的内部子元件时触发的。
在某些实施例中,待传输数据可以是视频数据。
视频数据可以来源于数据传输设备200的前端设置的智感器300,例如智感器300为摄像头;视频数据还可以来源于服务器100发送的多路视频数据,本申请在此不对视频数据的来源加以限定。
具体而言,可以是,智感器300采集到的视频数据发送给数据传输设备200,并使视频数据通过Gstreamer框架中的rtp数据包的管道在不同的元件之间传输后进行编码及视频显示。
还可以是,数据传输设备200接收从服务器100发送来的视频数据,并使视频数据通过Gstreamer框架中的rtp数据包的管道在不同的元件之间传输后进行编码及视频显示。
回调函数是一个通过函数指针调用的函数。本申请的一些实施例中,当监测到预先指定的元件发出的在线反馈信号时,调用预先设定的回调函数。
本申请的实施例中,通过对现有技术的Gstreamer框架中的rtp数据包的管道传输方式进行改进,预先选定的元件绑定有在线反馈信号,当待传输数据流经数据传输通道中的设定元件时,该数据传输通道的设定元件发出在线反馈信号。处理器201响应Gstreamer框架中的数据传输通道发出的在线反馈信号,调用与在线反馈信号绑定的回调函数。
示例性地,Gstreamer框架中的rtp数据包的管道中的元件Rtpbin具有其内部的子元件rtpsession,在本申请的一些实施例中,预先选定的元件为元件rtpsession,在线反馈信号为on-feedback-rtcp信号,预先将on-feedback-rtcp信号绑定到元件rtpsession。可以对Gstreamer框架中的rtp数据包的管道中的元件Rtpbin以及元件Rtpbin内部的子元件rtpsession分别动态地申请1个衬垫recv_rtp_sink_1和recv_rtp_sink_2,并将元件Rtpbin的衬垫recv_rtp_sink_1指向元件Rtpbin内部的子元件rtpsession的衬垫recv_rtp_sink_2。
本申请的一些实施例中,将on-feedback-rtcp信号绑定到这个元件rtpsession,当数据流流经元件Rtpbin内部的子元件rtpsession时,元件rtpsession会触发on-feedback-rtcp信号。
步骤S402,通过回调函数确定待传输数据对应的码率目标值。
本申请的实施例中,通过对现有技术的Gstreamer框架中的rtp数据包的管道传输方式进行改进,通过对Gstreamer框架中的rtp数据包的管道中预先指定的元件动态申请衬垫的方式实现rtp数据包的获取,并通过预先设定的回调函数确定待传输数据对应的码率目标值。
示例性地,总线在监听到on-feedback-rtcp信号后,会调用预先设定的与之绑定的回调函数,在回调函数中对元件rtpbin接收到的数据包进行解析,并获取rtp数据包的大小,根据待传输数据的大小,确定待传输数据对应的码率目标值。
在本申请的一些实施例中,在线反馈信号为on-feedback-rtcp信号。当总线在监听到on-feedback-rtcp信号时,会调用预先设定的与该信号绑定的回调函数,在回调函数中对元件rtpbin接收到的数据包进行解析,并获取rtp数据包的大小。
在某些实施例中,回调函数中对元件rtpbin接收到的数据包进行解析可以采用parse函数实现。
在某些实施例中,根据编码目标时间和待传输数据的大小确定待传输数据对应的码率目标值。
在某些实施例中,根据待传输数据的大小按照预先设定的规则确定编码目标时间。
在某些实施例中,预先设定的规则为不同的分辨率下不同的数据包大小范围区间段与编码目标时间的对应关系表。
在某些实施例中,预先设定的规则为不同的分辨率下不同的数据包大小与编码目标时间的映射函数。
步骤S403,按照确定的码率目标值,对待传输数据进行编码并发送。
在本申请的实施例中,数据传输设备200的处理器201通过预先设定的回调函数确定码率目标值target-bitrate后,将码率目标值target-bitrate通过总线203传递给编码器元件Decodebin,从而使编码器元件按照确定的码率目标值,对待传输数据进行编码并发送。
上述方法,通过获取待传输数据的大小,根据待传输数据的大小,确定待传输数据对应的码率目标值,按照确定的码率目标值,对待传输数据进行编码并发送。实现了在无需重新编译或修改Gstreamer框架源码的前提下,实现动态码率调节,从而可以方便快捷地实现动态码率控制,节省视频通话应用中实现动态码率所需的人力成本。
在一些实施例中,通过回调函数确定待传输数据对应的码率目标值,包括如下步骤:
步骤4011,通过回调函数对待传输数据的数据包进行解析,得到待传输数据的大小。
本申请的实施例中,通过对现有技术的Gstreamer框架中的rtp数据包的管道传输方式进行改进,通过对Gstreamer框架中的rtp数据包的管道中预先指定的元件动态申请衬垫的方式实现rtp数据包的获取,并通过预先设定的回调函数确定待传输数据对应的码率目标值。
示例性地,总线在监听到on-feedback-rtcp信号后,会调用预先设定的与之绑定的回调函数,在回调函数中对元件rtpbin接收到的数据包进行解析,并获取rtp数据包的大小。
步骤4012,根据待传输数据的大小,确定待传输数据对应的码率目标值。
在某些实施例中,根据编码目标时间和待传输数据的大小确定待传输数据对应的码率目标值。
在某些实施例中,编码目标时间根据待传输数据的大小按照预先设定的规则确定。
在一些实施例中,预先设定的规则为不同的分辨率下不同的数据包大小范围区间段与编码目标时间的对应关系表。
在另外一些实施例中,预先设定的规则为不同的分辨率下不同的数据包大小与编码目标时间的映射函数。
在某些实施例中,根据待传输数据的大小,确定待传输数据对应的码率目标值,包括如下步骤:
步骤1,根据待传输数据的大小,按照预先设定的规则确定待传输数据的编码目标时间。
在本申请的一些实施例中,在通过动态申请衬垫的方式实现rtp数据包的获取,得到rtp数据包的大小data_len,由此确定待传输数据的大小后,数据传输设备200的处理器201按照预先设定的规则确定待传输数据的编码目标时间target_time,然后确定待传输数据的大小data_len与待传输数据的编码目标时间target_time的比值rate,从而确定待传输数据对应码率目标值target-bitrate。示例性地,预先设定的规则可以是存储器中存储的不同的视频通话分辨率时待传输数据的大小data_len与待传输数据的编码目标时间target_time的数值对照表,或者是不同的视频通话分辨率时待传输数据的大小data_len与待传输数据的编码目标时间target_time的函数关系式,在此并未加以限定。
步骤2,根据待传输数据的大小与待传输数据的编码时间的比值,确定待传输数据对应的码率目标值。
首先,确定待传输数据的大小与待传输数据的编码目标时间的比值。
示例性地,待传输数据的大小与待传输数据的编码目标时间的比值rate可以根据下式确定:
其中,data_len为待传输数据的大小,
target_time为待传输数据的编码目标时间。
然后,根据待传输数据的大小与待传输数据的编码目标时间的比值,确定待传输数据对应的码率目标值。
码率目标值target-bitrate可以通过如下公式确定:
target-bitrate=rate*8*1024
其中,rate为待传输数据的大小与待传输数据的编码目标时间的比值。
在一些实施例中,Gstreamer框架中的设定元件具有预先构建的第一衬垫,设定元件的子元件具有预先构建的与第一衬垫相关联的第二衬垫;Gstreamer框架中的数据传输通道发出的在线反馈信号是通过第二衬垫和第一衬垫发出的。具体地,在线反馈信号是设定元件的子元件接收到待传输数据时生成并通过第二衬垫发送至第一衬垫,再通过第一衬垫发出的。
更具体地说,上述实施例可以通过图5所示的方法实现,图5为本申请实施例提供的另一种码率动态调节方法的流程示意图,适用于数据传输设备,该数据传输设备适用于图2所示出的硬件结构。
该种码率动态调节方法可以由数据传输设备200执行,请参见图5,可以包括以下步骤:
步骤S501,对Gstreamer框架中的预先指定的元件构建第一衬垫。
在本申请的一些实施例中,对rtp数据包的管道(Gstreamer Pipeline)传输方式进行改进,包括对Gstreamer框架中的预先指定的元件构建第一衬垫。
在某些实施例中,构建第一衬垫的预先指定的元件为元件rtpbin。
示例性地,创建元件rtpbin的一个衬垫recv_rtp_sink,参考代码如下:
Static GstPad*
gst_rtp_bin_request_new_pad(GstElement*elment,
GstPadTemplate*templ,const gchar*name,const GstCaps*caps)
{
if(templ==gst_element_class_get_pad_template(klass,“recv_rtp_sink_%u”))
{
result=create_recv_rtp(rtpbin,templ,pad_name);
}
}
步骤S502,对Gstreamer框架中的预先指定的元件的一个预先指定的子元件构建第二衬垫。
在本申请的一些实施例中,对rtp数据包的管道(Gstreamer Pipeline)传输方式进行改进,还包括:对Gstreamer框架中的预先指定的元件的一个预先指定的子元件构建第二衬垫。
在某些实施例中,构建第二衬垫的预先指定的元件的一个预先指定的子元件是元件rtpbin的子元件rtpsession。
示例性地,创建元件rtpsession的一个衬垫recv_rtp_sink,参考代码如下:
Static GstPad*
create_recv_rtp(GstRtpBin*rtpbin,
GstPadTemplate*templ,const gchar*name)
{
recv_rtp_sink=complete_session_sink(rtpbin,session,TRUE);
}
Static GstPad*
complete_session_sink(GstRtpBin*rtpbin,GstRtpBinSession*session,
gboolean bundle_demuxer_needed)
{
session->recv_rtp_sink=
gst_element_get_request_pad(session->session,“recv_rtp_sink”);
}
步骤S503,将第一衬垫和第二衬垫进行关联。
示例性地,在本申请的一些实施例中,将第一衬垫和第二衬垫进行关联,包括:将元件rtpbin的第一衬垫指向子元件rtpsession的第二衬垫。
将一个元件的衬垫指向另一个元件的衬垫之后,可以通过两个衬垫在不同元件间实现数据流的推送。
示例性地,将元件rtpbin的衬垫指向rtpsession的衬垫,并推送数据流,参考代码如下:
Static GstPad*
gst_rtp_session_request_new_pad(GstElement*elment,
GstPadTemplate*templ,const gchar*name,const GstCaps*caps)
{
/*figure out the template*/
if(templ==gst_element_class_get_pad_template(klass,“recv_rtp_sink”))
{
if(rtpsession->recv_rtp_sink!=NULL)
goto exists;
result=create_recv_rtp_sink(rtpsession);
}
}
Static GstPad*
create_recv_rtp_sink(GstRtpSession*rtpsession)
{
gst_pad_set_chain_function(rtpsession->recv_rtp_sink,gst_rtp_session_chain_recv_rtp);
return rtpsession->recv_rtp_sink;
}
步骤S504,若监测到存在待传输数据,通过第二衬垫和第一衬垫发出在线反馈信号。
本申请的实施例中,待传输数据为视频数据,具体为用于视频播放的数据包。
视频数据可以来源于数据传输设备200的前端设置的智感器300,例如智感器300为摄像头;还可以来源于服务器100发送的多路视频数据,在此并未加以限定。
具体而言,智感器300采集到的视频数据发送给数据传输设备200,或者数据传输设备200接收从服务器100发送来的视频数据,并使视频数据通过Gstreamer框架中的rtp数据包的管道在不同的元件之间传输后进行编码及视频显示。
在本申请的实施例中,Gstreamer框架中的rtp数据包的管道中的元件Rtpbin以及元件Rtpbin内部的子元件rtpsession分别动态地申请1个衬垫recv_rtp_sink_1和recv_rtp_sink_2,并将元件Rtpbin的衬垫recv_rtp_sink_1指向元件Rtpbin内部的子元件rtpsession的衬垫recv_rtp_sink_2。
元件rtpsession预先进行了与on-feedback-rtcp信号绑定,当视频数据流经元件rtpsession时,元件rtpsession产生on-feedback-rtcp信号,on-feedback-rtcp信号经过子元件rtpsession的衬垫recv_rtp_sink_2和元件Rtpbin的衬垫recv_rtp_sink_1发出。
步骤S505,响应Gstreamer框架中的数据传输通道发出的在线反馈信号,调用与在线反馈信号绑定的回调函数。
总线在监听到on-feedback-rtcp信号后,会调用预先设定的与on-feedback-rtcp信号绑定的回调函数,在回调函数中可以进行对元件rtpbin接收到的数据包进行解析等操作。
步骤S506,通过回调函数确定待传输数据对应的码率目标值。
本申请的一些实施例中,在预先设定的回调函数中实现根据待传输数据的大小,确定待传输数据对应的码率目标值。
回调函数是一个通过函数指针调用的函数。本申请的一些实施例中,当监测到预先指定的元件发出的在线反馈信号时,调用预先设定的回调函数。
本申请的实施例中,预先设定的回调函数执行时,对发出在线反馈信号的元件接收到的数据包进行解析,并获取码率目标值。
在本申请的一些实施例中,在通过动态申请衬垫的方式实现rtp数据包的获取,得到rtp数据包的大小data_len,由此确定待传输数据的大小后,数据传输设备200的处理器201按照预先设定的规则确定待传输数据的编码目标时间target_time,然后确定待传输数据的大小data_len与待传输数据的编码目标时间target_time的比值rate,从而确定待传输数据对应码率目标值target-bitrate。
步骤S507,按照确定的码率目标值,对待传输数据进行编码并发送。
在本申请的实施例中,数据传输设备200的处理器201通过预先设定的回调函数确定码率目标值target-bitrate后,将码率目标值target-bitrate通过总线203传递给编码器元件Decodebin,从而使编码器元件按照确定的码率目标值,对待传输数据进行编码并发送。
示例性地,Gstreamer框架中的rtp数据包的管道中的元件Rtpbin具有其内部的子元件rtpsession,在本申请的一些实施例中,预先选定的元件为元件rtpsession,在线反馈信号为on-feedback-rtcp信号,预先将on-feedback-rtcp信号绑定到元件rtpsession。可以对Gstreamer框架中的rtp数据包的管道中的元件Rtpbin以及元件Rtpbin内部的子元件rtpsession分别动态地申请1个衬垫recv_rtp_sink_1和recv_rtp_sink_2,并将元件Rtpbin的衬垫recv_rtp_sink_1指向元件Rtpbin内部的子元件rtpsession的衬垫recv_rtp_sink_2。
本申请的实施例中,将on-feedback-rtcp信号绑定到这个元件rtpsession,当数据流流经元件rtpsession时,该元件会发出on-feedback-rtcp信号。该on-feedback-rtcp信号经过元件Rtpbin内部的子元件rtpsession的衬垫recv_rtp_sink_2传递到元件Rtpbin的衬垫recv_rtp_sink_1,再通过元件Rtpbin的衬垫recv_rtp_sink_1发出,随后总线监听到on-feedback-rtcp信号。总线调用预先设定的与on-feedback-rtcp信号绑定的回调函数,在回调函数中对元件rtpbin接收到的数据包进行解析等操作后确定待传输数据对应的码率目标值,按照确定的码率目标值,对待传输数据进行编码并发送。待传输数据最终在本地显示器400进行显示和上传服务器100,服务器100将上传的待传输数据进一步转发给多个终端设备500,从而实现视频通话。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (6)

1.一种数据传输设备,其特征在于,包括:
存储器,所述存储器用于存储数据传输设备运行时所使用的数据或程序代码;
处理器,所述处理器用于:响应Gstreamer框架中的数据传输通道发出的在线反馈信号,调用与所述在线反馈信号绑定的回调函数;所述在线反馈信号为待传输数据流经所述数据传输通道中的设定元件时触发的;所述设定元件为元件Rtpbin;所述Gstreamer框架中的所述设定元件具有预先构建的第一衬垫,所述设定元件的子元件具有预先构建的与所述第一衬垫相关联的第二衬垫;所述Gstreamer框架中的数据传输通道发出的在线反馈信号是通过所述第二衬垫和所述第一衬垫发出的;所述在线反馈信号是所述设定元件的子元件接收到所述待传输数据时生成并通过所述第二衬垫发送至所述第一衬垫,再通过所述第一衬垫发出的;通过所述回调函数确定所述待传输数据对应的码率目标值;按照确定的所述码率目标值,对所述待传输数据进行编码并发送。
2.根据权利要求1所述的设备,其特征在于,所述处理器具体用于:
通过所述回调函数对所述待传输数据的数据包进行解析,得到所述待传输数据的大小;
根据所述待传输数据的大小,确定所述待传输数据对应的码率目标值。
3.根据权利要求2所述的设备,其特征在于,所述处理器具体用于:
根据所述待传输数据的大小,确定所述待传输数据的编码时间;
根据所述待传输数据的大小与所述待传输数据的编码时间的比值,确定所述待传输数据对应的码率目标值。
4.一种码率动态调节方法,其特征在于,包括:
响应Gstreamer框架中的数据传输通道发出的在线反馈信号,调用与所述在线反馈信号绑定的回调函数;所述在线反馈信号为待传输数据流经所述数据传输通道中的设定元件时触发的;所述设定元件为元件Rtpbin;所述Gstreamer框架中的所述设定元件具有预先构建的第一衬垫,所述设定元件的子元件具有预先构建的与所述第一衬垫相关联的第二衬垫;所述Gstreamer框架中的数据传输通道发出的在线反馈信号是通过所述第二衬垫和所述第一衬垫发出的;所述在线反馈信号是所述设定元件的子元件接收到所述待传输数据时生成并通过所述第二衬垫发送至所述第一衬垫,再通过所述第一衬垫发出的;
通过所述回调函数确定所述待传输数据对应的码率目标值;
按照确定的所述码率目标值,对所述待传输数据进行编码并发送。
5.根据权利要求4所述的方法,其特征在于,通过所述回调函数确定所述待传输数据对应的码率目标值,包括:
通过所述回调函数对所述待传输数据的数据包进行解析,得到所述待传输数据的大小;
根据所述待传输数据的大小,确定所述待传输数据对应的码率目标值。
6.根据权利要求5所述的方法,其特征在于,根据所述待传输数据的大小,确定所述待传输数据对应的码率目标值,包括:
根据所述待传输数据的大小,确定所述待传输数据的编码时间;
根据所述待传输数据的大小与所述待传输数据的编码时间的比值,确定所述待传输数据对应的码率目标值。
CN202010831777.8A 2020-08-18 2020-08-18 数据传输设备及码率动态调节方法 Active CN113489933B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010831777.8A CN113489933B (zh) 2020-08-18 2020-08-18 数据传输设备及码率动态调节方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010831777.8A CN113489933B (zh) 2020-08-18 2020-08-18 数据传输设备及码率动态调节方法

Publications (2)

Publication Number Publication Date
CN113489933A CN113489933A (zh) 2021-10-08
CN113489933B true CN113489933B (zh) 2024-04-30

Family

ID=77932712

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010831777.8A Active CN113489933B (zh) 2020-08-18 2020-08-18 数据传输设备及码率动态调节方法

Country Status (1)

Country Link
CN (1) CN113489933B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101198042A (zh) * 2007-12-26 2008-06-11 广东威创视讯科技股份有限公司 视频编码的码率控制方法及视频数据的发射设备
CN101584143A (zh) * 2007-01-05 2009-11-18 高通股份有限公司 基于分组大小的fec码和码率选择
CN109788316A (zh) * 2019-02-27 2019-05-21 腾讯科技(深圳)有限公司 码率控制、视频转码方法与装置、计算机设备及存储介质
CN110166781A (zh) * 2018-06-22 2019-08-23 腾讯科技(深圳)有限公司 一种视频编码方法、装置和可读介质
CN111416986A (zh) * 2020-03-24 2020-07-14 中国建设银行股份有限公司 一种码率确定方法、装置、存储介质及电子设备
CN111428084A (zh) * 2020-04-15 2020-07-17 海信集团有限公司 一种信息处理方法、管家服务器及云端服务器

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160360206A1 (en) * 2015-06-04 2016-12-08 Microsoft Technology Licensing, Llc Rate controller for real-time encoding and transmission

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101584143A (zh) * 2007-01-05 2009-11-18 高通股份有限公司 基于分组大小的fec码和码率选择
CN101198042A (zh) * 2007-12-26 2008-06-11 广东威创视讯科技股份有限公司 视频编码的码率控制方法及视频数据的发射设备
CN110166781A (zh) * 2018-06-22 2019-08-23 腾讯科技(深圳)有限公司 一种视频编码方法、装置和可读介质
CN109788316A (zh) * 2019-02-27 2019-05-21 腾讯科技(深圳)有限公司 码率控制、视频转码方法与装置、计算机设备及存储介质
CN111416986A (zh) * 2020-03-24 2020-07-14 中国建设银行股份有限公司 一种码率确定方法、装置、存储介质及电子设备
CN111428084A (zh) * 2020-04-15 2020-07-17 海信集团有限公司 一种信息处理方法、管家服务器及云端服务器

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于OMAP和Gstreamer的网络视频监控系统;陈乐;吴蒙;;计算机技术与发展;20160930(09);全文 *

Also Published As

Publication number Publication date
CN113489933A (zh) 2021-10-08

Similar Documents

Publication Publication Date Title
CN108769616A (zh) 一种基于rtsp协议的实时视频无插件预览方法及系统
Lei et al. Design and implementation of streaming media processing software based on RTMP
CN102226944A (zh) 混音方法及设备
CN107370714A (zh) 面向云渲染的高效通讯方法
CN102123154A (zh) 一种sip终端及其会话处理方法
US7917639B2 (en) Multimedia application interface
WO2021073155A1 (zh) 视频会议方法、装置、设备及存储介质
King et al. Establishing multimodal telepresence sessions using the session initiation protocol (sip) and advanced haptic codecs
CN112866713B (zh) 一种转码一体机系统以及转码方法
CN113489933B (zh) 数据传输设备及码率动态调节方法
JP2005130428A (ja) 双方向画像通信装置、その処理方法及びクライアント装置並びにプログラム
Vun et al. Implementation of an embedded H. 264 live video streaming system
US20070002860A1 (en) Method and system for a digital home network trace and debug tool
US9026983B2 (en) Flexible and scalable software system architecture for implementing multimedia applications
Wei et al. Applications of a Streaming Video Server in a mobile phone live streaming system
CN114449295A (zh) 视频处理方法、装置、电子设备及存储介质
Simoens et al. Optimized mobile thin clients through a MPEG-4 BiFS semantic remote display framework
CN117938822B (zh) 一种基于wasm的实时语音通信方法、终端及摄像头
Zeng et al. A grouped network video conference system based on JMF in collaborative design environment
EP2819012B1 (en) Automated compression of data
Calvo‐Flores et al. Integrating multimedia streaming from heterogeneous sources to JavaME mobile devices
WO2024060134A1 (zh) 信息处理方法、装置、电子设备和计算机可读存储介质
Dong et al. A Study on H. 264 Live Video Technology with Android System
WO2022245338A1 (en) Multimedia content access within remote desktop session
CN113949903A (zh) 一种计算机视觉系统

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
CB02 Change of applicant information
CB02 Change of applicant information

Country or region after: China

Address after: 266555, No. 218, Bay Road, Qingdao economic and Technological Development Zone, Shandong

Applicant after: Hisense Group Holding Co.,Ltd.

Address before: 266555, No. 218, Bay Road, Qingdao economic and Technological Development Zone, Shandong

Applicant before: QINGDAO HISENSE ELECTRONIC INDUSTRY HOLDING Co.,Ltd.

Country or region before: China

GR01 Patent grant
GR01 Patent grant