一种流媒体数据处理方法和装置
文献发布时间:2023-06-19 10:03:37
技术领域
本发明涉及流媒体技术领域,特别是涉及一种流媒体数据处理方法和一种流媒体数据处理装置。
背景技术
流媒体技术是指多媒体数据以流式传输方式通过网络从服务端向客户端传送,同时,客户端能够一边接受多媒体数据流一边进行播放的技术。目前常规的视频监控系统,都是利用系统中独立的流媒体服务器或者某个设备中的流媒体功能模块来实现视频流的复制分发,从而实现视频客户端解码播放,视频解码上墙,而系统中的存储服务器或者存储功能模块则获取流媒体服务器转发来的视频,实现视频存储。
现有技术中,常采用RTP(Real-time Transport Protocol,实时传输协议)/RTSP(Real Time Streaming Protocol,实时流传输协议)流化技术来实现流媒体传输,RTP/RTSP流化技术通常是基于RTP/RTSP数据报协议UDP(User Datagram Protocol,用户数据报协议)传输,服务器按编码速率推送码流。但是,RTP/RTSP流化技术对网络的适应能力较差,网络的丢包、抖动容易引起视频报文的丢失,进而造成视频出现马赛克和停顿的现象,不利于实际应用。
发明内容
鉴于上述问题,提出了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种流媒体数据处理方法和相应的一种流媒体数据处理装置。
为了解决上述问题,本发明实施例公开了一种流媒体数据处理方法,应用于流媒体服务器,所述流媒体服务器与客户端连接,所述服务器存储有视频帧,第一视频文件和第二视频文件,所述视频帧具有标记信息;所述方法包括:
接收客户端请求,所述客户端请求包括统一资源定位URL(Uniform ResourceLocator)信息和URL后缀参数;
在所述URL信息与所述标记信息匹配,且所述URL后缀参数为空时,将所述标记信息对应的视频帧发送至所述客户端;
在所述URL信息与所述标记信息匹配,且所述URL后缀参数不为空时,将所述标记信息对应的视频帧,以及所述URL后缀参数对应的第一视频文件发送至所述客户端;
在所述URL信息与所述标记信息不匹配时,将所述标记信息对应的视频帧,以及所述URL信息对应第二视频文件发送至所述客户端。
可选地,所述流媒体服务器存储有录像合成命令子函数和合成链表,所述方法还包括:
接收录像合成命令;
依据所述录像合成命令子函数将所述录像合成命令添加至所述合成链表;
从所述合成链表获取合成任务,依据所述合成任务合成视频文件。
可选地,所述流媒体服务器存储有帧率参数,所述将所述标记信息对应的视频帧,以及所述URL后缀参数对应的第一视频文件发送至所述客户端的步骤,包括:
依据所述客户端请求,在所述第一视频文件上增加帧率参数;
依据所述帧率参数,调整发送第一视频的传输速率,以改变所述客户端的播放速率。
可选地,所述方法还包括:
对所述视频帧进行封包处理。
可选地,所述流媒体服务器采用级联式部署,或分布式部署。
可选地,所述流媒体服务器与所述客户端之间设置有分配器;所述接收客户端请求的步骤,包括:
接收所述分配器按照预设负载均衡规则转发的客户端请求。
可选地,所述第一视频文件、所述第二视频文件、所述视频帧由所述分配器转发至所述客户端。
本发明实施例还公开了一种流媒体数据处理装置,应用于流媒体服务器,所述流媒体服务器与客户端连接,所述服务器存储有视频帧,第一视频文件和第二视频文件,所述视频帧具有标记信息;所述装置包括:
第一接收模块,用于接收客户端请求,所述客户端请求包括统一资源定位URL信息和URL后缀参数;
第一发送模块,用于在所述URL信息与所述标记信息匹配,且所述URL后缀参数为空时,将所述标记信息对应的视频帧发送至所述客户端;
第二发送模块,用于在所述URL信息与所述标记信息匹配,且所述URL后缀参数不为空时,将所述标记信息对应的视频帧,以及所述URL后缀参数对应的第一视频文件发送至所述客户端;
第三发送模块,用于在所述URL信息与所述标记信息不匹配时,将所述标记信息对应的视频帧,以及所述URL信息对应第二视频文件发送至所述客户端。
本发明实施例还公开了一种电子设备,包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上所述的流媒体数据处理方法的步骤。
本发明实施例还公开了一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如上所述的流媒体数据处理方法的步骤。
本发明实施例包括以下优点:
在本发明实施例中,接收客户端请求,所述客户端请求包括统一资源定位URL信息和URL后缀参数;在所述URL信息与所述标记信息匹配,且所述URL后缀参数为空时,将所述标记信息对应的视频帧发送至所述客户端;在所述URL信息与所述标记信息匹配,且所述URL后缀参数不为空时,将所述标记信息对应的视频帧,以及所述URL后缀参数对应的第一视频文件发送至所述客户端;在所述URL信息与所述标记信息不匹配时,将所述标记信息对应的视频帧,以及所述URL信息对应第二视频文件发送至所述客户端。通过流媒体服务器对流媒体的存储和转发,便于视频内容的二次发放。流媒体服务器对流媒体进行统一控制,合理应用宽带,减少视频出现马赛克和停顿的现象。流媒体服务器支持负载均衡功能,将客户端请求动态均衡负载到各个流媒体服务器上,提高流媒体处理效率。
附图说明
图1是本发明的一个实施例的流媒体服务器示意图;
图2是本发明的一种流媒体数据处理方法实施例的步骤流程图;
图3是本发明的一种流媒体数据处理装置实施例的结构框图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
参照图1,示出本发明实施例的流媒体服务器示意图。
流媒体服务器101中有多个线程,至少包括:配置管理线程102、采集线程103、录像线程104、rtsp服务线程105。
配置管理线程102可以与外部进行通信,是流媒体服务器与外部进行通信的唯一线程。例如:接收外部的配置导出命令、配置导入命令或录像合成命令等,本领域技术人员可以根据实际要求进行设置,本发明实施例对此并不限定;此外,配置管理线程还可以接收内部各线程发送的配置信息,例如,采集线程发送的注册相机配置项、录像线程发送的注册录像录像参数和录像合成参数,本领域技术人员可以根据实际要求进行设置,本发明实施例对此并不限定。
采集线程103可以采集各个相机拍摄的视频,生成相机的信息文件,并将采集到的视频发送给录像模块。
录像线程104可以接收采集线程发送的视频,对视频进行合成,使得服务器支持视频合成功能。
rtsp服务线程105可以转发录像线程的实时合成的视频,使得服务器支持多个客户端的实时预览功能;还可以获取服务器内存储的视频,使得服务器支持多个客户端的回放预览功能。
流媒体服务器中还有磁盘管理进程106,可以监控采集线程生成的相机的信息文件的更新状况,更新自己的配置。
流媒体服务器还支持FTP单元107(File Transfer Protocol,文件传输协议),使得用户通过客户端在流媒体服务器中下载多个视频。
流媒体服务设计配置管理线程用于与外部通信,其它线程不参与外部通信,使流媒体服务器框架变得简单。并且全使用单线程设计,避免了线程的创建带来的资源开销和响应延时,也省掉了复杂的线程池的设计。流媒体服务器所有参数的设置支持标准的json(JavaScript Object Notation,JS对象简谱)或xml(Extensible Markup Language,可扩展标记语言),方便第三方集成开发。
参照图2,示出了本发明的一种流媒体数据处理方法实施例的步骤流程图,本发明实施例应用于流媒体服务器,所述流媒体服务器与客户端连接,所述服务器存储有视频帧,第一视频文件和第二视频文件,所述视频帧具有标记信息;所述方法具体可以包括如下步骤:
步骤201,接收客户端请求,所述客户端请求包括统一资源定位URL信息和URL后缀参数;
流媒体服务器中的rtsp服务线程接收客户端发出的客户端请求,客户端请求包括统一资源定位URL信息和URL后缀信息。
统一资源定位URL信息是指定信息位置的表示方法,由三部分组成:资源类型、存放资源的主机域名、资源文件名。
URL后缀信息是指在统一资源定位URL信息后附带的定位参数,URL后缀信息可以为空。
举例而言,客户端请求中包括“http://abc123.com/pfp/ask/jk.avi”其中,“http://abc123.com”为统一资源定位URL信息,“/pfp/ask/jk.avi”为URL后缀信息。
可选地,所述流媒体服务器与所述客户端之间设置有分配器;所述接收客户端请求的步骤,包括:
步骤S11,接收所述分配器按照预设负载均衡规则转发的客户端请求。
流媒体服务器可以采用基于分配器的负载均衡机制。基于分配器的负载均衡机制是IP(Internet Protocol,网际互连协议)/TCP(Transmission Control Protocol,传输控制协议)/HTTP(HyperText Transfer Protocol,超文本传输协议)的重定向分配。需要一个特殊的前端节点,称为分配器(dispatcher)。所有的客户端请求都经过分配器并由它分配到后端流媒体服务器处理。这种基于分配器的请求分配机制通常对客户端是透明的。本发明实施例采用中继机制或TCP传递机制,客户端请求到达分配器后,由分配器按定的负载分配算法,将请求传递给被选中的流媒体服务器,流媒体服务器接收分配器按照预设负载均衡规则转发的客户端请求进行处理。
步骤202,在所述URL信息与所述标记信息匹配,且所述URL后缀参数为空时,将所述标记信息对应的视频帧发送至所述客户端;
rtsp服务线程收到客户端请求后,将客户端请求中的URL信息与录像线程传递过来的视频帧标记信息进行匹配,当URL信息与视频帧标记信息匹配,且URL后缀参数为空时,直接将该视频帧标记信息对应的视频帧发送给客户端,实现实时转发功能。
步骤203,在所述URL信息与所述标记信息匹配,且所述URL后缀参数不为空时,将所述标记信息对应的视频帧,以及所述URL后缀参数对应的第一视频文件发送至所述客户端;
rtsp服务线程收到客户端请求后,将客户端请求中的URL信息与录像线程传递过来的视频帧标记信息进行匹配,当URL信息与视频帧标记信息匹配,且URL后缀参数并不为空时,则认为该客户端请求是一个按时点播请求,此时,会根据URL后缀参数到相应的目录下搜索最匹配的视频文件,并把最匹配的视频文件从硬盘上读出来作为第一视频文件,再将第一视频文件和标记信息对应的视频帧发给客户端,实现按时点播功能。
可选地,所述流媒体服务器存储有帧率参数,所述步骤203,包括:
步骤S21,依据所述客户端请求,在所述第一视频文件上增加帧率参数;
步骤S22,依据所述帧率参数,调整发送第一视频的传输速率,以改变所述客户端的播放速率。
帧率参数(Frames Per Secon,每秒传输帧数)是指每秒中填充图像的帧数。
当客户端请求中有变速播放的命令,则在第一视频文件上增加帧率参数进发送,发送第一视频的最大速度调整为客户端传来的速度,在客户端收不过来时可以暂停发送,以此可实现慢放,单步播放。
步骤204,在所述URL信息与所述标记信息不匹配时,将所述标记信息对应的视频帧,以及所述URL信息对应第二视频文件发送至所述客户端。
rtsp服务线程收到客户端请求后,将客户端请求中的URL信息与录像线程传递过来的视频帧标记信息进行匹配,当URL信息与视频帧标记信息不匹配时,则认为该客户端请求是一个文件点播请求,就把视频从硬盘上读出来作为第二视频文件,再将第二视频文件和标记信息对应的视频帧发给客户端,实现文件点播功能。
可选地,所述流媒体服务器存储有录像合成命令子函数和合成链表,所述方法还包括:
步骤S31,接收录像合成命令;
步骤S32,依据所述录像合成命令子函数将所述录像合成命令添加至所述合成链表;
步骤S33,从所述合成链表获取合成任务,依据所述合成任务合成视频文件。
当配置管理线程收到录像合成命令后,会调用录像线程预先注册的录像合成命令子函数,把录像合成命令加入录像线程的合成链表中,当硬盘上已有的视频达到合成要求时,录像线程就会从合成链表中取出合成任务并合成视频。
可选地,所述方法还包括:
步骤S41,对所述视频帧进行封包处理。
流媒体服务器可以对需要发送到客户端的视频帧进封包处理,即将视频帧根据IP协议进行封装,使视频帧可以在网络当中传递。
可选地,所述流媒体服务器采用级联式部署,或分布式部署。
多台流媒体服务器,支持级联式部署,也支持分布式部署。基于RTSP协议和DSS(Darwin Streaming Server,实时流媒体播放服务器程序)实现,具有设备接入和控制、级联式或分布式流媒体服务器部署。
可选地,所述第一视频文件、所述第二视频文件、所述视频帧由所述分配器转发至所述客户端。
本发明实施例采用中继机制时,流媒体服务器将处理后的结果,例如:第一视频文件、第二视频文件和视频帧传回至分配器,再由分配器转发给客户端。
本发明实施例,通过接收客户端请求,所述客户端请求包括统一资源定位URL信息和URL后缀参数;在所述URL信息与所述标记信息匹配,且所述URL后缀参数为空时,将所述标记信息对应的视频帧发送至所述客户端;在所述URL信息与所述标记信息匹配,且所述URL后缀参数不为空时,将所述标记信息对应的视频帧,以及所述URL后缀参数对应的第一视频文件发送至所述客户端;在所述URL信息与所述标记信息不匹配时,将所述标记信息对应的视频帧,以及所述URL信息对应第二视频文件发送至所述客户端。通过流媒体服务器对流媒体的存储和转发,便于视频内容的二次发放。流媒体服务器对流媒体进行统一控制,合理应用宽带,减少视频出现马赛克和停顿的现象。流媒体服务器支持负载均衡功能,将客户端请求动态均衡负载到各个流媒体服务器上,提高流媒体处理效率。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
参照图3,示出了本发明的一种流媒体数据处理装置实施例的结构框图,本发明实施例应用于流媒体服务器,所述流媒体服务器与客户端连接,所述服务器存储有视频帧,第一视频文件和第二视频文件,所述视频帧具有标记信息;所述装置具体可以包括如下模块:
第一接收模块301,用于接收客户端请求,所述客户端请求包括统一资源定位URL信息和URL后缀参数;
第一发送模块302,用于在所述URL信息与所述标记信息匹配,且所述URL后缀参数为空时,将所述标记信息对应的视频帧发送至所述客户端;
第二发送模块303,用于在所述URL信息与所述标记信息匹配,且所述URL后缀参数不为空时,将所述标记信息对应的视频帧,以及所述URL后缀参数对应的第一视频文件发送至所述客户端;
第三发送模块304,用于在所述URL信息与所述标记信息不匹配时,将所述标记信息对应的视频帧,以及所述URL信息对应第二视频文件发送至所述客户端。
可选地,所述流媒体服务器存储有录像合成命令子函数和合成链表,所述方法还装置:
第二接收模块,用于接收录像合成命令;
添加模块,用于依据所述录像合成命令子函数将所述录像合成命令添加至所述合成链表;
合成模块,用于从所述合成链表获取合成任务,依据所述合成任务合成视频文件。
可选地,所述第二发送模块,包括:
帧率子模块,用于依据所述客户端请求,在所述第一视频文件上增加帧率参数;
调整模块,用于依据所述帧率参数,调整发送第一视频的传输速率,以改变所述客户端的播放速率。
可选地,所述装置还包括:
封包模块,用于对所述视频帧进行封包处理。
可选地,所述流媒体服务器采用级联式部署,或分布式部署。
可选地,所述流媒体服务器与所述客户端之间设置有分配器;所述第一接收模块,包括:
分配接收子模块,用于接收所述分配器按照预设负载均衡规则转发的客户端请求。
可选地,所述第一视频文件、所述第二视频文件、所述视频帧由所述分配器转发至所述客户端。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本发明一实施例还提供了一种电子设备,包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上所述的流媒体数据处理方法的步骤。
本发明一实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如上所述的流媒体数据处理方法的步骤。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种流媒体数据处理方法和一种流媒体数据处理装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
- 流媒体数据处理方法及装置、流媒体数据再现设备
- 一种流媒体视频数据处理方法、装置及存储介质