流媒体数据的传输方法、装置、存储介质及电子设备与流程

文档序号:27629093发布日期:2021-11-29 15:49阅读:111来源:国知局
流媒体数据的传输方法、装置、存储介质及电子设备与流程

1.本技术涉及通信领域,尤其涉及一种流媒体数据的传输方法、装置、存储介质及电子设备。


背景技术:

2.gb28181协议规定了不同厂商的网络视频设备(例如:网络摄像机或网络视频录像机等)之间互联互通的标准,在目前的协议中,媒体服务器支持多个视频通道,分别为各个视频通道配置工作线程以及通信端口。随着视频通道的关闭或开启,媒体服务器需要频繁的执行工作线程和通信端口的创建、启动挂起、销毁等操作,造成媒体服务器占用较多的资源且运行效率低下。另外,媒体服务器需要开放多个端口给外网的设备,管理员的维护工作量较大且增加安全的风险。


技术实现要素:

3.为解决上述的技术问题,本技术提供一种流媒体数据的传输方法、装置、存储介质及电子设备,解决相关技术中接收多路流媒体数据存在效率低和安全低的问题。
4.方面,本技术提供了一种流媒体数据的传输方法,包括:
5.响应于用户对终端设备的视频播放操作,向视频设备发送invite消息;其中,所述invite消息携带接收端口的端口号,任意一个视频设备关联所述接收端口的端口号;
6.接收所述视频设备响应于所述invite消息返回的ack消息;其中,所述ack消息中携带所述视频设备的发送端口的端口号和ip地址;
7.启动流媒体监控线程,以及利用所述流媒体监控线程和所述接收端口接收来自所述视频设备的流媒体数据;其中,所述视频设备使用所述ip地址和所述发送端口发送流媒体数据,所述流媒体监控线程处理任意一个视频设备的流媒体数据;
8.将接收到的流媒体数据转发至所述终端设备。
9.方面,本技术提供了一种流媒体数据的处理装置,包括:
10.收发单元和处理单元;其中,所述处理单元用于:
11.响应于用户对终端设备的视频播放操作,通过所述收发单元向视频设备发送invite消息;其中,所述invite消息携带接收端口的端口号,任意一个视频设备关联所述接收端口的端口号;
12.通过所述收发单元接收所述视频设备响应于所述invite消息返回的ack消息;其中,所述ack消息中携带所述视频设备的发送端口的端口号和ip地址;
13.启动流媒体监控线程,以及通过所述收发单元利用所述流媒体监控线程和所述接收端口接收来自所述视频设备的流媒体数据;其中,所述视频设备使用所述ip地址和所述发送端口发送流媒体数据,所述流媒体监控线程处理任意一个视频设备的流媒体数据;
14.通过所述收发单元将接收到的流媒体数据转发至所述终端设备。
15.本技术又一方面提供了一种装置,可以实现上述方面或方面的流媒体数据的传输
方法。例如所述装置可以是服务器或终端设备。可以通过软件、硬件、或者通过硬件执行相应的软件实现上述方法。
16.在一种可能的实现方式中,所述装置的结构中包括处理器、存储器;所述处理器被配置为支持所述装置执行上述应用测试方法中相应的功能。存储器用于与处理器耦合,其保存所述装置必要的程序(指令)和/或数据。可选的,所述装置还可以包括通信接口用于支持所述装置与其他网元之间的通信。
17.在另一种可能的实现方式中,所述装置可以包括执行上述方法中相应动作的单元模块。
18.在又一种可能的实现方式中,包括处理器和收发装置,所述处理器与所述收发装置耦合,所述处理器用于执行计算机程序或指令,以控制所述收发装置进行信息的接收和发送;当所述处理器执行所述计算机程序或指令时,所述处理器还用于实现上述方法。
19.本技术又一方面提供了一种装置,该装置包括:存储器和处理器;其中,所述存储器中存储一组程序代码,且所述处理器用于调用所述存储器中存储的程序代码,执行各方面所述的方法。
20.本技术的又一方面提了供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
21.本技术的又一方面提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
22.实施本技术的实施例,实现单一线程和单一端口异步的方式来接收多个视频通道中的流媒体数据,不需要创建大量的临时线程和端口来接收多个视频通道上的流媒体数据,因此避免视频通道的开闭或关闭频繁的启动或关闭临时线程和端口,减少线程上下文切换的步骤,从而提高处理流媒体数据的效率,在处理多路流媒体数据时资源明显降低资源使用率。另外,对外网的视频设备仅需开放一个接收端口即可,而不需要开启一组范围内的接收端口,大大降低服务器安全管理员的维护工作量,同时也可以提高服务器的安全性。
附图说明
23.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
24.图1是本技术实施例提供的一种系统架构图;
25.图2是本技术实施例提供的流媒体数据的传输方法的流程示意图;
26.图3是本技术实施例提供的一种装置的结构示意图;
27.图4是本技术提供的一种装置的另一结构示意图。
具体实施方式
28.为使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术实施例方式作进一步地详细描述。
29.图1示出了可以应用于本技术的流媒体数据的处理方法或流媒体数据的处理装置
的示例性系统架构。
30.如图1所示,系统架构可以包括终端设备11~13、sip服务器21、视频设备31~32。各个终端设备和sip服务器21之间、sip服务器21和各个视频设备之间可以基于有线通信链路或无线通信链路进行通信,例如:有线通信链路包括光纤、双绞线或同轴电缆的,无线通信链路包括蓝牙通信链路、无线保真(wireless

fidelity,wi

fi)通信链路或微波通信链路等。sip服务器21可以传输控制数据和业务数据(流媒体数据),即sip服务器21包括信令服务器和媒体服务器。sip服务器21可同时承载多个视频通道,每个视频通道对应一个sip会话。对于一个视频设备来说,视频设备可承载一个或多个sip会话;在视频设备承载多个sip会话时,各个sip会话的发送端口不同但ip地址相同。视频设备可以为网络摄像机或网络视频录像机等,可以生成流媒体数据的设备。
31.终端设备上可以安装有各种通信客户端应用,例如:视频录制应用、视频播放应用、语音交互应用、搜索类应用、及时通信工具、邮箱客户端、社交平台软件等。
32.终端设备可以是硬件,也可以是软件。当终端设备为硬件时,可以是具有显示屏的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携式计算机和台式计算机等等。当终端设备为软件时,可以是安装上上述所列举的电子设备中。其可以实现呈多个软件或软件模块(例如:用来提供分布式服务),也可以实现成单个软件或软件模块,在此不作具体限定。
33.当终端设备为硬件时,其上安装有显示设备,显示设备显示可以是各种能实现显示功能的设备;例如:显示设备可以是阴极射线管显示器(cathode ray tubedis play,简称cr)、发光二极管显示器(light

emitting diode display,简称led)、电子墨水屏、液晶显示屏(liquid crystal display,简称lcd)、等离子显示面板(plasma displaypanel,简称pdp)等。用户可以利用终端设备上的显示设备,来查看显示的文字、图片、视频等信息。
34.需要说明的是,本技术实施例提供的流媒体数据的处理方法一般由sip服务器21执行,相应的,流媒体数据的处理装置一般设置于sip服务器21中。
35.sip服务器21可以是提供各种服务的服务器,sip服务器21可以是硬件,也可以是软件。当sip服务器21为硬件时,可以实现成多个服务器组成的分布式服务器集群,也可以实现成单个服务器。当sip服务器21为软件时,可以实现成多个软件或软件模块(例如用来提供分布式服务),也可以实现成单个软件或软件模块,在此不做具体限定。
36.应理解,图1中的终端设备、网络和服务器的数目仅是示意性的。根据实现需要,可以是任意数量的终端设备、网络和服务器。
37.为了说明本技术所述的技术方案,下面通过具体实施例来进行说明。
38.参见图2,图2是本技术实施例提供的流媒体数据的传输方法的流程示意图,在本技术实施例中,所述方法包括:
39.s201、响应于用户对终端设备的视频播放操作,向视频设备发送invite消息。
40.其中,视频播放操作是用户基于终端设备的输入装置触执行的,例如:终端设备显示视频设备列表,用户选择视频设备列表中的某个视频设备执行视频播放操作,终端设备响应于该视频播放操作向sip(session initiation protocol,会话初始协议)服务器发送呼叫指令,呼叫指令携带视频源id,视频源id为用户在视频设备列表中选择的视频设备的id。视频设备可以是网络摄像机(ip camera)或网络视频录像机(net video recorder),网
络摄像机用于播放实时视频流数据,网络视频录像机用于回放历史视频流数据;在用户选择网络视频录像机进行视频播放操作时,还需要设置回放时间段。sip服务器可以执行信令控制和媒体播放功能的服务器,即包括信令服务器和媒体服务器。
41.sip服务器支持同时运行多个sip会话,每个sip会话均对应一个视频通道,一个视频设备可以承载一个或多个sip会话,即具有一个或多个视频通道。sip服务器检测当前是否存在运行状态的sip会话,当前运行的sip会话的数量可能为一个或多个,在本技术中,sip服务器中任意一个sip会话均配置相同的接收端口的端口号和线程资源信息,即使用相同的接收端口和相同的流媒体监控线程。例如:sip会话中处于运行状态的有sip会话1和sip会话2,sip会话1和sip会话2配置的接收端口的端口号为245,流媒体监控线程的id为12354。
42.若存在处于运行状态的sip会话,获取任意一个sip会话配置的接收端口的端口号和流媒体监控线程的线程资源信息,线程资源信息表示流媒体线程的硬件资源、软件资源和id等。
43.invite消息用于创建新的sip会话,invite消息携带接收端口的端口号,以通知该视频设备sip服务器接收流媒体数据的端口号。本技术实施例中,sip服务器对接的多个视频设备均使用相同的接收端口。
44.在一个或多个可能的实施例中,sip服务器确定接收端口的端口号的步骤包括:
45.确定预设的端口集合中处于空闲状态的端口;
46.在所述处于空闲状态的端口中选择端口号最小或端口号最大或随机选择一个端口作为接收端口。
47.在一个或多个可能的实施例中,所述向视频设备发送invite消息之前,还包括:
48.统计当前处于传输状态的流媒体数据的数量;
49.若所述数量小于数量阈值,则执行所述向视频设备发送invite消息的步骤。
50.进一步的,若所述数量大于或等于数量阈值,则向所述终端设备返回携带失败原因的呼叫失败消息。
51.具体的,数量阈值为预先配置的值,数据阈值和sip服务器的硬件能力有关。在sip服务器当前处于传输状态的流媒体数据(即视频通道数量)的数量超过该数据阈值时,没有更多的硬件资源供创建新的视频通道,因此会拒绝终端设备的视频播放操作。
52.s202、接收视频设备响应于invite消息返回的ack消息。
53.其中,视频设备接收到invite消息后,解析该invite消息得到sip服务器的接收端口的端口号,视频设备从自身的端口集合中选择一个空闲状态的端口和获取自身的ip地址,向sip服务器发送携带选择的端口(即发送端口)的端口号和该ip地址。在一个视频设备承载多个sip会话时,各个sip会话的发送端口不同但是ip地址却相同。ack消息中携带视频设备的发送端口的端口和和ip地址
54.s203、启动流媒体监控线程,以及利用所述流媒体监控线程和所述接收端口接收来自所述视频设备的流媒体数据。
55.其中,流媒体监控线程的状态分为启动状态、挂起状态和销毁状态。若流媒体监控线程处于启动状态,通过流媒体监控线程,在接收端口上接收来自视频设备的流媒体数据,流媒体数据携带视频设备使用的发送端口的端口号和ip地址,以便sip服务器识别视频设
备的身份。本技术的sip服务器在对接多个视频设备时,使用一个流媒体监控线程处理任意一个视频设备的流媒体数据。
56.s204、将接收到的流媒体数据转发至终端设备。
57.其中,sip服务器将流媒体数据推送到终端设备到进行显示。流媒体数据基于用户数据报协议udp或tcp传输控制协议的方式传输。
58.在一个或多个可能的实施例中,所述方法还包括:
59.响应于用户对所述终端设备的播放结束操作,向所述终端设备发送bye消息;其中,所述bye消息用于指示所述视频设备停止发送流媒体数据;
60.接收来自所述终端设备的ack消息时,停止接收来自所述终端设备的流媒体数据。
61.具体的,播放结束操作是用户基于终端设备的输入装置触发的,例如:用户在终端设备的用户界面上点击结束播放的按钮,执行播放结束操作,终端设备向sip服务器发送播放结束指令,sip服务器响应于该播放结束指令向视频设备发送bye消息,以指示视频设备停止发送流媒体数据,视频设备接收到该bye消息时,向sip服务器发送ack消息,表示成功接收到bye消息,sip服务器根据该ack消息停止接收来自视频设备的流媒体数据。
62.在一个或多个可能的实施例中,还包括:
63.若未接收到流媒体数据的时长超过预设时长时,将所述流媒体监控线程切换为挂起状态;或
64.检测到用户对所述终端设备的播放结束操作时,统计处于传输状态的流媒体数据的数量;
65.在所述数量为1时,销毁所述流媒体监控线程。
66.例如:预设时长配置为1分钟,sip服务器当前处于传输状态的视频通道为:视频通道1、视频通道2、视频通道3和视频通道4,均关联到同一个流媒体监控线程。sip服务器检测到上述4个视频通道中未接收到流媒体数据的时长均超过1分钟,则将流媒体监控线程切换为挂起状态,以节省sip服务器的资源,同时再下次接收到流媒体数据时可以恢复为启动状态。
67.又例如:sip服务器接收来自终端设备的播放结束指令,播放接收指令用于指示视频设备停止发送指定的流媒体数据,sip服务器检测到当前处于传输状态的视频通道仅为视频通道1,那么将流媒体监控线程切换为销毁状态,以释放其占用的资源。
68.实施本技术的实施例,实现单一线程和单一端口异步的方式来接收多个视频通道中的流媒体数据,不需要创建大量的临时线程和端口来接收多个视频通道上的流媒体数据,因此避免视频通道的开闭或关闭频繁的启动或关闭临时线程和端口,减少线程上下文切换的步骤,从而提高处理流媒体数据的效率,在处理多路流媒体数据时资源明显降低资源使用率。另外,对外网的视频设备仅需开放一个接收端口即可,而不需要开启一组范围内的接收端口,大大降低服务器安全管理员的维护工作量,同时也可以提高服务器的安全性。
69.上述图2详细阐述了流媒体数据的传输方法。相应的本技术实施例的一种装置的结构示意图。
70.请参见图3,图3是本技术实施例提供的一种装置3的结构示意图,装置3应用于多个服务,该装置3可以包括:处理单元301和收发单元302。
71.其中,所述处理单元301用于:
72.响应于用户对终端设备的视频播放操作,通过所述收发单元302向视频设备发送invite消息;其中,所述invite消息携带接收端口的端口号,任意一个视频设备关联所述接收端口的端口号;
73.通过所述收发单元302接收所述视频设备响应于所述invite消息返回的ack消息;其中,所述ack消息中携带所述视频设备的发送端口的端口号和ip地址;
74.启动流媒体监控线程,以及通过所述收发单元302利用所述流媒体监控线程和所述接收端口接收来自所述视频设备的流媒体数据;其中,所述视频设备使用所述ip地址和所述发送端口发送流媒体数据,所述流媒体监控线程处理任意一个视频设备的流媒体数据;
75.通过所述收发单元302将接收到的流媒体数据转发至所述终端设备。
76.在一个或多个实施例中,处理单元301还用于:
77.响应于用户对所述终端设备的播放结束操作,通过收发单元302向所述视频设备发送bye消息;其中,所述bye消息用于指示所述视频设备停止发送流媒体数据;
78.通过收发单元302接收来自所述视频设备的ack消息时,停止接收来自所述终端设备的流媒体数据。
79.在一个或多个实施例中,处理单元301还用于:
80.确定预设的端口集合中处于空闲状态的端口;
81.在所述处于空闲状态的端口中选择端口号最小或端口号最大或随机选择一个端口作为接收端口。
82.在一个或多个实施例中,处理单元301还用于:
83.若未接收到流媒体数据的时长超过预设时长时,将所述流媒体监控线程切换为挂起状态;或
84.检测到用户对所述终端设备的播放结束操作时,统计处于传输状态的流媒体数据的数量;
85.在所述数量为1时,销毁所述流媒体监控线程。
86.在一个或多个实施例中,处理单元301还用于:
87.统计当前处于传输状态的流媒体数据的数量;
88.若所述数量小于数量阈值,则执行所述向视频设备发送invite消息的步骤。
89.在一个或多个实施例中,处理单元301还用于:
90.若所述数量大于或等于数量阈值,通过收发单元302则向所述终端设备返回携带失败原因的呼叫失败消息。
91.在一个或多个实施例中,流媒体数据基于用户数据报协议udp或tcp传输控制协议的方式传输。
92.本技术实施例和图2的方法实施例基于同一构思,其带来的技术效果也相同,具体过程可参照图2的方法实施例的描述,此处不再赘述。
93.装置3可以是图1中的sip服务器,所述装置3也可以为实现相关功能的现场可编程门阵列(field

programmable gate array,fpga),专用集成芯片,系统芯片(system on chip,soc),中央处理器(central processorunit,cpu),网络处理器(network processor,np),数字信号处理电路,微控制器(micro controllerunit,mcu),还可以采用可编程控制
器(programmable logic device,pld)或其他集成芯片。
94.图4为本技术实施例提供的一种装置结构示意图,以下简称装置4,装置4可以图1的sip服务器,如图4所示,该装置4包括:存储器402、处理器401和收发器403。
95.存储器402可以是独立的物理单元,与处理器401和收发器403可以通过总线连接。存储器402、处理器401、收发器403也可以集成在一起,通过硬件实现等。
96.存储器402用于存储实现以上方法实施例,或者装置实施例各个模块的程序,处理器401调用该程序,执行以上方法实施例的操作。
97.可选的,装置4还包括输入装置和输出装置,输入装置包括但不限于键盘、鼠标、触摸面板、摄像头和麦克风;输出装置包括但限于显示屏。
98.通信接口用于收发各种类型的消息,通信接口包括但不限于无线接口或有线接口。
99.可选地,当上述实施例的流媒体数据的传输方法中的部分或全部通过软件实现时,装置也可以只包括处理器。用于存储程序的存储器位于装置之外,处理器通过电路/电线与存储器连接,用于读取并执行存储器中存储的程序。
100.处理器可以是中央处理器(central processing unit,cpu),网络处理器(networkprocessor,np)或者cpu和np的组合。
101.处理器还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(application

specific integrated circuit,asic),可编程逻辑器件(programmable logic device,pld)或其组合。上述pld可以是复杂可编程逻辑器件(complex programmable logic device,cpld),现场可编程逻辑门阵列(field

programmable gate array,fpga),通用阵列逻辑(generic array logic,gal)或其任意组合。
102.存储器可以包括易失性存储器(volatile memory),例如存取存储器(random

access memory,ram);存储器也可以包括非易失性存储器(non

volatile memory),例如快闪存储器(flashmemory),硬盘(hard disk drive,hdd)或固态硬盘(solid

state drive,ssd);存储器还可以包括上述种类的存储器的组合。
103.本技术实施例还提供了一种计算机存储介质,存储有计算机程序,该计算机程序用于执行上述实施例提供的流媒体数据的传输方法。
104.本技术实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例提供的流媒体数据的传输方法。
105.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd

rom、光学存储器等)上实施的计算机程序产品的形式。
106.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实
现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
107.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
108.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1