CN106791931B - 一种数据流转码的方法及设备 - Google Patents
一种数据流转码的方法及设备 Download PDFInfo
- Publication number
- CN106791931B CN106791931B CN201710005964.9A CN201710005964A CN106791931B CN 106791931 B CN106791931 B CN 106791931B CN 201710005964 A CN201710005964 A CN 201710005964A CN 106791931 B CN106791931 B CN 106791931B
- Authority
- CN
- China
- Prior art keywords
- data
- transcoding
- stream
- access
- flow
- 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
- 238000000034 method Methods 0.000 title claims abstract description 61
- 230000008569 process Effects 0.000 claims description 34
- 101150060512 SPATA6 gene Proteins 0.000 claims description 17
- 238000012545 processing Methods 0.000 claims description 8
- 238000004140 cleaning Methods 0.000 claims description 7
- 238000001514 detection method Methods 0.000 claims description 7
- 238000012544 monitoring process Methods 0.000 abstract description 6
- 230000005540 biological transmission Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 7
- 238000004590 computer program Methods 0.000 description 6
- 241001415846 Procellariidae Species 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
- H04N21/234309—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4 or from Quicktime to Realvideo
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/254—Management at additional data server, e.g. shopping server, rights management server
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/258—Client or end-user data management, e.g. managing client capabilities, user preferences or demographics, processing of multiple end-users preferences to derive collaborative data
- H04N21/25808—Management of client data
- H04N21/25816—Management of client data involving client authentication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/643—Communication protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/81—Monomedia components thereof
- H04N21/8166—Monomedia components thereof involving executable data, e.g. software
- H04N21/8173—End-user applications, e.g. Web browser, game
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/85—Assembly of content; Generation of multimedia applications
- H04N21/854—Content authoring
- H04N21/8547—Content authoring involving timestamps for synchronizing content
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/18—Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/61—Network physical structure; Signal processing
- H04N21/6156—Network physical structure; Signal processing specially adapted to the upstream path of the transmission network
- H04N21/6175—Network physical structure; Signal processing specially adapted to the upstream path of the transmission network involving transmission via Internet
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Graphics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请的目的是提供一种数据流转码的方法及设备,本申请通过基于获取用户设备的访问请求生成标记化的访问认证;通过ffmpeg将获取到的实时流传输协议的视频数据流转码为预设视频格式的数据流,将所述预设视频格式的数据流转码为流媒体网络传输协议的待显示数据流;接着,基于所述标记化的访问认证将所述待显示数据流发送至所述用户设备,从而通过将实时流传输协议的视频数据流转换为对浏览器更友好的流媒体网络传输协议的待显示数据流,以便于实现基于浏览器的视频监控系统,并提供了相应的标记化的访问认证策略,使得上层应用程序可以在任意位置访问流媒体服务。
Description
技术领域
本申请涉及计算机领域,尤其涉及一种数据流转码的方法及设备。
背景技术
将日常事物连接到互联网技术迅速发展,智慧园区的建设越来越多的满足用户设备的需求。而智慧园区的建设对于视频监控有天然的需求,是智慧园区系统的基础功能,这就需要提供此功能的基础构架是高效的、稳定的及广泛适用的。目前,视频的监控是通过将实时流传输协议(RTSP)的数据流在视频界面进行显示,给用户展示所监控的对象,而RTSP不是基于超文本传输协议(HTTP)的,对浏览器不是非常友好。另一方面,目前的采用FFServer流媒体服务所提供的访问认证策略是基于IP地址的,这使得上层应用程序对于多媒体流数据的使用是受限于其所部署的服务器的IP地址,这对于智慧园区场景下的流媒体服务是不可容忍的。
申请内容
本申请的一个目的是提供一种数据流转码的方法及设备,解决将RTSP流转码为对浏览器更友好的HLS(流媒体网路传输协议)流的问题。
根据本申请的一个方面,提供了一种数据流转码的方法,所述方法包括:
基于获取用户设备的访问请求生成标记化的访问认证;
通过ffmpeg将所述访问请求对应的实时流传输协议的视频数据流转码为预设视频格式的数据流,将所述预设视频格式的数据流转码为流媒体网络传输协议的待显示数据流;
基于所述标记化的访问认证将所述待显示数据流发送至所述用户设备。
进一步地,所述基于获取用户设备的访问请求生成标记化的访问认证包括:
获取用户设备的访问请求时的当前时间的时间戳;
将所述访问请求对应的访问密钥及所述当前时间的时间戳进行哈希处理,得到哈希序列;
将所述哈希序列与所述当前时间的时间戳拼接后的字符序列进行数据编码,并对所述数据编码后的字符序列进行标记,生成标记化的访问认证。
进一步地,通过ffmpeg将获取到的实时流传输协议的视频数据流转码为预设视频格式的数据流之前,还包括:
根据所述用户设备请求的身份标识从数据库中获取所述访问请求对应的实时流传输协议的地址信息,其中,所述转码推流包括将所述实时流传输协议的视频数据流转码为预设视频格式的数据流。
进一步地,所述方法还包括:
将所述转码推流的日志和所述转码推流所在进程的识别号记录至对应的系统日志文件夹中。
进一步地,所述预设视频格式的数据流包括实时消息传输协议的数据流。
进一步地,基于所述标记化的访问认证将所述待显示数据流发送至所述用户设备,包括:
通过所述标记化的访问认证访问所述流媒体网络传输协议的索引文件,其中,所述索引文件包括所述待显示数据流;
将所述待显示数据流发送至所述用户设备。
进一步地,所述方法还包括:
根据预设的时间阈值判断最近一次检测时间段内,是否存在至少一次对所述流媒体网络传输协议的索引文件的访问,
若不存在,则查询所述转码推流所在进程的识别号,根据所述识别号结束所述转码推流所在的进程,并删除所述识别号所在的系统日志文件夹。
根据本申请的另一方面,还提供了一种数据流转码的设备,所述设备包括:
生成装置,用于基于获取用户设备的访问请求生成标记化的访问认证;
转码装置,用于通过ffmpeg将所述访问请求对应的实时流传输协议的视频数据流转码为预设视频格式的数据流,将所述预设视频格式的数据流转码为流媒体网络传输协议的待显示数据流;
发送装置,用于基于所述标记化的访问认证将所述待显示数据流发送至所述用户设备。
进一步地,所述生成装置用于:
获取用户设备的访问请求时的当前时间的时间戳;
将所述访问请求对应的访问密钥及所述当前时间的时间戳进行哈希处理,得到哈希序列;
将所述哈希序列与所述当前时间的时间戳拼接后的字符序列进行数据编码,并对所述数据编码后的字符序列进行标记,生成标记化的访问认证。
进一步地,所述设备还包括:
地址获取装置,用于根据所述用户设备请求的身份标识从数据库中获取所述访问请求对应的实时流传输协议的地址信息,其中,所述转码推流包括将所述实时流传输协议的视频数据流转码为预设视频格式的数据流。
进一步地,所述设备还包括:
记录装置,用于将所述转码推流的日志和所述转码推流所在进程的识别号记录至对应的系统日志文件夹中。
进一步地,所述预设视频格式的数据流包括实时消息传输协议的数据流。
进一步地,所述发送装置用于:
通过所述标记化的访问认证访问所述流媒体网络传输协议的索引文件,其中,所述索引文件包括所述待显示数据流;
将所述待显示数据流发送至所述用户设备。
进一步地,所述设备还包括:
超时清理装置,用于根据预设的时间阈值判断最近一次检测时间段内,是否存在至少一次对所述流媒体网络传输协议的索引文件的访问,
若不存在,则查询所述转码推流所在进程的识别号,根据所述识别号结束所述转码推流所在的进程,并删除所述识别号所在的系统日志文件夹。
与现有技术相比,本申请通过基于获取用户设备的访问请求生成标记化的访问认证;通过ffmpeg将获取到的实时流传输协议的视频数据流转码为预设视频格式的数据流,将所述预设视频格式的数据流转码为流媒体网络传输协议的待显示数据流;接着,基于所述标记化的访问认证将所述待显示数据流发送至所述用户设备,从而通过将实时流传输协议的视频数据流转换为对浏览器更友好的流媒体网络传输协议的待显示数据流,以便于实现基于浏览器的视频监控系统,并提供了相应的标记化的访问认证策略,使得上层应用程序可以在任意位置访问流媒体服务。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1示出根据本申请一个方面的一种数据流转码的方法流程示意图;
图2示出本申请的一实施例的一种数据流转码的架构图;
图3示出根据本申请另一个方面的一种数据流转码的设备的结构示意图。
附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
下面结合附图对本申请作进一步详细描述。
在本申请一个典型的配置中,终端、服务网络的设备和可信方均包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flashRAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
图1示出根据本申请一个方面的一种数据流转码的方法流程示意图,所述方法包括:步骤S11~步骤S13,
在步骤S11中,基于获取用户设备的访问请求生成标记化的访问认证;在此,从用户设备中获取用户设备的访问请求,根据访问请求采集到当前时间的时间戳、访问密钥等相关参数,对所采集到的一些相关参数进行处理并编码,生成标记化的访问认证,以访问索引文件找到需要访问的数据流。其中,标记化的访问认证是从输入字符流中生成标记的过程,生成的标记记作token。在本申请一实施例中,获取用户设备对房间编号为A的视频监控的访问请求,则将开始访问时的当前时间的时间戳或可容忍的稍微有点延迟的时间戳和房间A的访问密钥等相关参数进行处理并编码,生成token,使得用户设备上的上层应用程序在任意位置访问流媒体服务,即不受限于其所部署的服务器的IP地址。
在步骤S12中,通过ffmpeg将所述访问请求对应的实时流传输协议的视频数据流转码为预设视频格式的数据流,将所述预设视频格式的数据流转码为流媒体网络传输协议的待显示数据流;在一实施例中,获取到访问请求从对应的实时流传输协议(RTSP)流获取到视频流,将视频流进行转码,将其转换为智慧园区系统要求的预设的视频格式。优选地,所述预设视频格式的数据流包括实时消息传输协议的数据流,智慧园区系统中开源流媒体模块要求的视频格式为实时消息传输协议的数据流(RTMP),则首先将RTSP流转码为RTMP流;可以理解,HLS是基于HTTP的流媒体网路传输协议,浏览器使用HTTP与服务器端通信,而RTSP在体系结构上位于实时传输协议(RTP)和实时传输控制协议(RTCP)之上,使用TCP(传输控制协议)和UDP(传输层协议)完成数据传输,因此需要将转码后的RTMP流进一步地转码为对浏览器更友好的HLS流。需要说明的是,所述ffmpeg是一套可以用来记录、转换数字音频、视频,并能将其转换为流的开源计算机程序。
在步骤S13中,基于所述标记化的访问认证将所述待显示数据流发送至所述用户设备。在此,根据生成的token进行访问HLS流的索引文件,将索引文件下的HLS待显示数据流发送至用户设备,在用户设备的视频界面上进行显示。
优选地,在步骤S11中,获取用户设备的访问请求时的当前时间的时间戳;将所述访问请求对应的访问密钥及所述当前时间的时间戳进行哈希处理,得到哈希序列;将所述哈希序列与所述当前时间的时间戳拼接后的字符序列进行数据编码,并对所述数据编码后的字符序列进行标记,生成标记化的访问认证。在本申请一实施例中,采用了token认证方式,根据用户设备的访问请求获得当前时间的时间戳,访问密钥(ACCESSKEY)等参数进行哈希处理,再与当前时间的时间戳拼接后进行数据编码,得到token。需要说明的是,上述时间戳(timestamp)为一个字符序列,唯一标识某一时刻的时间;分配一个唯一的访问密钥(ACCESSKEY)来访问系统提供的一些应用程序接口;数据编码优选为用于传输8字节代码的base64编码。
优选地,步骤S12之前,所述方法还包括:步骤S12’,根据所述用户设备请求的身份标识从数据库中获取所述访问请求对应的实时流传输协议的地址信息,其中,所述转码推流包括将所述实时流传输协议的视频数据流转码为预设视频格式的数据流。在此,启动一个进程进行转码推流的服务,从数据库(Redis)中获取访问请求对应的RTSP流的地址信息,以便根据地址信息从RTSP流中获得视频数据流。
优选,所述方法还包括:步骤S12”,将所述转码推流的日志和所述转码推流所在进程的识别号记录至对应的logs(系统日志)文件夹中。接上述实施例,在转码推流过程中,将转码推流的日志和转码推流所在的进程的pid信息记录在相对应的logs文件夹下,为超时清理功能提供可能,其中,pid为进程识别号。
优选地,在步骤S13中,通过所述标记化的访问认证访问所述流媒体网络传输协议的索引文件,其中,所述索引文件包括所述待显示数据流;将所述待显示数据流发送至所述用户设备。在此,通过生成的token可以访问HLS的索引文件,从索引文件中获得要播放的监控视频;具体地,索引文件为HLSm3u8索引文件,其中,m3u8是指一种可变长度字符编码UTF-8编码格式的播放多媒体列表的m3u文件。
优选地,所述方法还包括:步骤S14,根据预设的时间阈值判断最近一次检测时间段内,是否存在至少一次对所述流媒体网络传输协议的索引文件的访问,若不存在,则查询所述转码推流所在进程的识别号,根据所述识别号结束所述转码推流所在的进程,并删除所述识别号所在的logs文件夹。在此,由于应用软件在停止流媒体播放时可能忘记调用相应的停止推流应用程序接口(API),导致系统可能存在大量未被使用的转码进程,从而导致网络带宽和磁盘IO的巨大浪费,因此需要一个合理的超时清理机制,在本申请一实施例中,在启动转码推流时,开启一个计时器,在延迟一定时间后(设定一个时间阈值)检测对应数据流的m3u8索引文件是否在最近的一段时间内被访问,比如在延迟10s后检测对应数据流的m3u8索引文件是否在最近的3s内被访问过,若未被访问,将会找到数据流对应的转码推流所在的进程的pid,根据pid停止相应的进程,停止记录pid的文件也会被删除,从而节省网络带宽和磁盘IO的资源。
图2示出本申请一实施例中数据流转码的架构图,所述架构图基于OpenResty,复用了petrel中的模块,其中,OpenResty是基于高性能的HTTP服务器Nginx与轻量脚本语言Lua的高性能网页(web)平台,其内部集成了大量精良的Lua库、第三方模块以及大多数的依赖项;petrel是一种基于OpenResty的应用开发框架,使得模块可以被任意的拆分和组合;nginx-rtmp-module是一种Nginx的开源流媒体模块;bash为一种命令执行界面(unixshell);使用本实施例中的架构,利用Lua在系统的后端启动独立的进程将RTSP流通过ffmpeg转换为RTMP流,推送到以OpenResty和nginx-rtmp-module为基础构建的流媒体统一接入系统,然后由其提供HLS流服务,完成转码推流的过程,并提供了token的访问认证,使得上层应用程序可以在任意位置访问流媒体服务;进一步地,提供相应的超时清理机制,节省了网络带宽和磁盘IO的资源。
图3示出根据本申请另一个方面的一种数据流转码的设备的结构示意图,所述设备包括:生成装置11、转码装置12和发送装置13,其中,所述生成装置11,用于基于获取用户设备的访问请求生成标记化的访问认证;所述转码装置12,用于通过ffmpeg将所述访问请求对应的实时流传输协议的视频数据流转码为预设视频格式的数据流,将所述预设视频格式的数据流转码为流媒体网络传输协议的待显示数据流;所述发送装置13,用于基于所述标记化的访问认证将所述待显示数据流发送至所述用户设备。
具体地,生成装置11,用于基于获取用户设备的访问请求生成标记化的访问认证;在此,从用户设备中获取用户设备的访问请求,根据访问请求采集到当前时间的时间戳、访问密钥等相关参数,对所采集到的一些相关参数进行处理并编码,生成标记化的访问认证,以访问索引文件找到需要访问的数据流。其中,标记化的访问认证是从输入字符流中生成标记的过程,生成的标记记作token。在本申请一实施例中,获取用户设备对房间编号为A的视频监控的访问请求,则将开始访问时的当前时间的时间戳或可容忍的稍微有点延迟的时间戳和房间A的访问密钥等相关参数进行处理并编码,生成token,使得用户设备上的上层应用程序在任意位置访问流媒体服务,即不受限于其所部署的服务器的IP地址。
具体地,转码装置12,用于通过ffmpeg将所述访问请求对应的实时流传输协议的视频数据流转码为预设视频格式的数据流,将所述预设视频格式的数据流转码为流媒体网络传输协议的待显示数据流;在一实施例中,获取到访问请求从对应的实时流传输协议(RTSP)流获取到视频流,将视频流进行转码,将其转换为智慧园区系统要求的预设的视频格式。优选地,所述预设视频格式的数据流包括实时消息传输协议的数据流,智慧园区系统中开源流媒体模块要求的视频格式为实时消息传输协议的数据流(RTMP),则首先将RTSP流转码为RTMP流;可以理解,HLS是基于HTTP的流媒体网路传输协议,浏览器使用HTTP与服务器端通信,而RTSP在体系结构上位于实时传输协议(RTP)和实时传输控制协议(RTCP)之上,使用TCP(传输控制协议)和UDP(传输层协议)完成数据传输,因此需要将转码后的RTMP流进一步地转码为对浏览器更友好的HLS流。需要说明的是,所述ffmpeg是一套可以用来记录、转换数字音频、视频,并能将其转换为流的开源计算机程序。
具体地,发送装置13,用于基于所述标记化的访问认证将所述待显示数据流发送至所述用户设备。在此,根据生成的token进行访问HLS流的索引文件,将索引文件下的HLS待显示数据流发送至用户设备,在用户设备的视频界面上进行显示。
优选地,生成装置11,用于获取用户设备的访问请求时的当前时间的时间戳;将所述访问请求对应的访问密钥及所述当前时间的时间戳进行哈希处理,得到哈希序列;将所述哈希序列与所述当前时间的时间戳拼接后的字符序列进行数据编码,并对所述数据编码后的字符序列进行标记,生成标记化的访问认证。在本申请一实施例中,采用了token认证方式,根据用户设备的访问请求获得当前时间的时间戳,访问密钥(ACCESSKEY)等参数进行哈希处理,再与当前时间的时间戳拼接后进行数据编码,得到token。需要说明的是,上述时间戳(timestamp)为一个字符序列,唯一标识某一时刻的时间;分配一个唯一的访问密钥(ACCESSKEY)来访问系统提供的一些应用程序接口;数据编码优选为用于传输8字节代码的base64编码。
优选地,所述设备还包括:地址获取装置12’,用于根据所述用户设备请求的身份标识从数据库中获取所述访问请求对应的实时流传输协议的地址信息,其中,所述转码推流包括将所述实时流传输协议的视频数据流转码为预设视频格式的数据流。在此,启动一个进程进行转码推流的服务,从数据库(Redis)中获取访问请求对应的RTSP流的地址信息,以便根据地址信息从RTSP流中获得视频数据流。
优选,所述设备还包括:记录装置12”,用于将所述转码推流的日志和所述转码推流所在进程的识别号记录至对应的logs(系统日志)文件夹中。接上述实施例,在转码推流过程中,将转码推流的日志和转码推流所在的进程的pid信息记录在相对应的logs文件夹下,为超时清理功能提供可能,其中,pid为进程识别号。
优选地,发送装置13,用于通过所述标记化的访问认证访问所述流媒体网络传输协议的索引文件,其中,所述索引文件包括所述待显示数据流;将所述待显示数据流发送至所述用户设备。在此,通过生成的token可以访问HLS的索引文件,从索引文件中获得要播放的监控视频;具体地,索引文件为HLS m3u8索引文件,其中,m3u8是指一种可变长度字符编码UTF-8编码格式的播放多媒体列表的m3u文件。
优选地,所述设备还包括:超时清理装置14,用于根据预设的时间阈值判断最近一次检测时间段内,是否存在至少一次对所述流媒体网络传输协议的索引文件的访问,若不存在,则查询所述转码推流所在进程的识别号,根据所述识别号结束所述转码推流所在的进程,并删除所述识别号所在的logs文件夹。在此,由于应用软件在停止流媒体播放时可能忘记调用相应的停止推流应用程序接口(API),导致系统可能存在大量未被使用的转码进程,从而导致网络带宽和磁盘IO的巨大浪费,因此需要一个合理的超时清理机制,在本申请一实施例中,在启动转码推流时,开启一个计时器,在延迟一定时间后(设定一个时间阈值)检测对应数据流的m3u8索引文件是否在最近的一段时间内被访问,比如在延迟10s后检测对应数据流的m3u8索引文件是否在最近的3s内被访问过,若未被访问,将会找到数据流对应的转码推流所在的进程的pid,根据pid停止相应的进程,停止记录pid的文件也会被删除,从而节省网络带宽和磁盘IO的资源。
图2示出本申请一实施例中数据流转码的架构图,所述架构图基于OpenResty,复用了petrel中的模块,其中,OpenResty是基于高性能的HTTP服务器Nginx与轻量脚本语言Lua的高性能网页(web)平台,其内部集成了大量精良的Lua库、第三方模块以及大多数的依赖项;petrel是一种基于OpenResty的应用开发框架,使得模块可以被任意的拆分和组合;nginx-rtmp-module是一种Nginx的开源流媒体模块;bash为一种命令执行界面(unixshell);使用本实施例中的架构,利用Lua在系统的后端启动独立的进程将RTSP流通过ffmpeg转换为RTMP流,推送到以OpenResty和nginx-rtmp-module为基础构建的流媒体统一接入系统,然后由其提供HLS流服务,完成转码推流的过程,并提供了token的访问认证,使得上层应用程序可以在任意位置访问流媒体服务;进一步地,提供相应的超时清理机制,节省了网络带宽和磁盘IO的资源。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
需要注意的是,本申请可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(ASIC)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本申请的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本申请的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本申请的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。
另外,本申请的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本申请的方法和/或技术方案。而调用本申请的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据所述程序指令运行的计算机设备的工作存储器中。在此,根据本申请的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本申请的多个实施例的方法和/或技术方案。
对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其他的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
Claims (12)
1.一种数据流转码的方法,其中,所述方法包括:
获取用户设备的访问请求时的当前时间的时间戳;
将所述访问请求对应的访问密钥及所述当前时间的时间戳进行哈希处理,得到哈希序列;
将所述哈希序列与所述当前时间的时间戳拼接后的字符序列进行数据编码,并对所述数据编码后的字符序列进行标记,生成标记化的访问认证;
通过ffmpeg将所述访问请求对应的实时流传输协议的视频数据流转码为预设视频格式的数据流,将所述预设视频格式的数据流转码为流媒体网络传输协议的待显示数据流;
基于所述标记化的访问认证将所述待显示数据流发送至所述用户设备。
2.根据权利要求1所述的方法,其中,通过ffmpeg将所述访问请求对应的实时流传输协议的视频数据流转码为预设视频格式的数据流之前,还包括:
根据所述用户设备请求的身份标识从数据库中获取所述访问请求对应的实时流传输协议的地址信息,其中,所述转码推流包括将所述实时流传输协议的视频数据流转码为预设视频格式的数据流。
3.根据权利要求2所述的方法,其中,所述方法还包括:
将所述转码推流的日志和所述转码推流所在进程的识别号记录至对应的系统日志文件夹中。
4.根据权利要求1或2所述的方法,其中,所述预设视频格式的数据流包括实时消息传输协议的数据流。
5.根据权利要求1所述的方法,其中,基于所述标记化的访问认证将所述待显示数据流发送至所述用户设备,包括:
通过所述标记化的访问认证访问所述流媒体网络传输协议的索引文件,其中,所述索引文件包括所述待显示数据流;
将所述待显示数据流发送至所述用户设备。
6.根据权利要求3或5所述的方法,其中,所述方法还包括:
根据预设的时间阈值判断最近一次检测时间段内,是否存在至少一次对所述流媒体网络传输协议的索引文件的访问,
若不存在,则查询所述转码推流所在进程的识别号,根据所述识别号结束所述转码推流所在的进程,并删除所述识别号所在的系统日志文件夹。
7.一种数据流转码的设备,其中,所述设备包括:
生成装置,用于获取用户设备的访问请求时的当前时间的时间戳,将所述访问请求对应的访问密钥及所述当前时间的时间戳进行哈希处理,得到哈希序列,将所述哈希序列与所述当前时间的时间戳拼接后的字符序列进行数据编码,并对所述数据编码后的字符序列进行标记,生成标记化的访问认证;
转码装置,用于通过ffmpeg将所述访问请求对应的实时流传输协议的视频数据流转码为预设视频格式的数据流,将所述预设视频格式的数据流转码为流媒体网络传输协议的待显示数据流;
发送装置,用于基于所述标记化的访问认证将所述待显示数据流发送至所述用户设备。
8.根据权利要求7所述的设备,其中,所述设备还包括:
地址获取装置,用于根据所述用户设备请求的身份标识从数据库中获取所述访问请求对应的实时流传输协议的地址信息,其中,所述转码推流包括将所述实时流传输协议的视频数据流转码为预设视频格式的数据流。
9.根据权利要求8所述的设备,其中,所述设备还包括:
记录装置,用于将所述转码推流的日志和所述转码推流所在进程的识别号记录至对应的系统日志文件夹中。
10.根据权利要求7或8所述的设备,其中,所述预设视频格式的数据流包括实时消息传输协议的数据流。
11.根据权利要求7所述的设备,其中,所述发送装置用于:
通过所述标记化的访问认证访问所述流媒体网络传输协议的索引文件,其中,所述索引文件包括所述待显示数据流;
将所述待显示数据流发送至所述用户设备。
12.根据权利要求9或11所述的设备,其中,所述设备还包括:
超时清理装置,用于根据预设的时间阈值判断最近一次检测时间段内,是否存在至少一次对所述流媒体网络传输协议的索引文件的访问,
若不存在,则查询所述转码推流所在进程的识别号,根据所述识别号结束所述转码推流所在的进程,并删除所述识别号所在的系统日志文件夹。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710005964.9A CN106791931B (zh) | 2017-01-05 | 2017-01-05 | 一种数据流转码的方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710005964.9A CN106791931B (zh) | 2017-01-05 | 2017-01-05 | 一种数据流转码的方法及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106791931A CN106791931A (zh) | 2017-05-31 |
CN106791931B true CN106791931B (zh) | 2019-11-15 |
Family
ID=58949514
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710005964.9A Active CN106791931B (zh) | 2017-01-05 | 2017-01-05 | 一种数据流转码的方法及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106791931B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111698526A (zh) * | 2020-06-10 | 2020-09-22 | 中邮建技术有限公司 | 一种通过扫描二维码查看视频直播的实现方法和系统 |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109936768A (zh) * | 2017-12-19 | 2019-06-25 | 中国电信股份有限公司 | 实现利用终端观看iptv直播节目的方法和系统 |
CN108429922B (zh) * | 2018-01-03 | 2021-09-03 | 平安科技(深圳)有限公司 | 视频文件处理方法、应用服务器及计算机可读存储介质 |
CN108259995B (zh) * | 2018-01-16 | 2020-07-24 | 威创集团股份有限公司 | 一种预览信号源的方法、装置及设备 |
CN109743643B (zh) * | 2019-01-16 | 2022-04-01 | 成都合盛智联科技有限公司 | 楼宇对讲系统的处理方法及装置 |
CN110446114B (zh) * | 2019-08-19 | 2021-08-31 | 广州视源电子科技股份有限公司 | 多媒体数据的处理装置、方法、电子设备及存储介质 |
CN111787361B (zh) * | 2020-07-13 | 2022-02-11 | 安徽云森物联网科技有限公司 | 一种rtsp视频流传输方法、系统、设备及可存储介质 |
CN112929607A (zh) * | 2021-01-29 | 2021-06-08 | 三一重工股份有限公司 | 实现多源视频流Web互操作性的系统及方法 |
CN113691832A (zh) * | 2021-08-24 | 2021-11-23 | 深圳市新龙鹏科技有限公司 | 一种视频数据ip化方法及系统 |
CN113810272A (zh) * | 2021-09-29 | 2021-12-17 | 周明升 | 一种智慧园区数据接入网关 |
CN114245179A (zh) * | 2021-12-24 | 2022-03-25 | 天地伟业技术有限公司 | 一种音视频转换方法、装置及电子设备 |
CN114401254B (zh) | 2022-03-22 | 2022-11-25 | 北京百度网讯科技有限公司 | 流媒体服务的处理方法、装置、电子设备及存储介质 |
CN115277651B (zh) * | 2022-06-22 | 2024-05-24 | 肯特智能技术(深圳)股份有限公司 | 基于xml文件的配置式流媒体软件方法及系统 |
CN115174992A (zh) * | 2022-07-06 | 2022-10-11 | 深圳市瑞驰信息技术有限公司 | 一种基于nginx实现ts视频播放的方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102916989A (zh) * | 2011-08-02 | 2013-02-06 | 腾讯科技(深圳)有限公司 | 一种视频下载方法、服务端及客户端 |
CN103501321A (zh) * | 2013-09-23 | 2014-01-08 | 浙江工业大学 | 远程多媒体网络传输平台 |
WO2014100524A1 (en) * | 2012-12-21 | 2014-06-26 | Ustudio, Inc. | Media distribution and management platform |
CN105577819A (zh) * | 2016-01-26 | 2016-05-11 | 杭州碧创科技有限公司 | 一种虚拟化桌面的分享系统、分享方法以及分享装置 |
-
2017
- 2017-01-05 CN CN201710005964.9A patent/CN106791931B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102916989A (zh) * | 2011-08-02 | 2013-02-06 | 腾讯科技(深圳)有限公司 | 一种视频下载方法、服务端及客户端 |
WO2014100524A1 (en) * | 2012-12-21 | 2014-06-26 | Ustudio, Inc. | Media distribution and management platform |
CN103501321A (zh) * | 2013-09-23 | 2014-01-08 | 浙江工业大学 | 远程多媒体网络传输平台 |
CN105577819A (zh) * | 2016-01-26 | 2016-05-11 | 杭州碧创科技有限公司 | 一种虚拟化桌面的分享系统、分享方法以及分享装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111698526A (zh) * | 2020-06-10 | 2020-09-22 | 中邮建技术有限公司 | 一种通过扫描二维码查看视频直播的实现方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN106791931A (zh) | 2017-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106791931B (zh) | 一种数据流转码的方法及设备 | |
US11716371B2 (en) | Systems and methods for automatically generating top level index files | |
US8843596B2 (en) | Conversion between streaming media communication protocols | |
Ameigeiras et al. | Analysis and modelling of YouTube traffic | |
US20150372927A1 (en) | Method, Device, and System for Acquiring Streaming Media Data | |
WO2014015738A1 (zh) | 播放流媒体的方法、装置及系统 | |
CN104320679B (zh) | 一种基于hls协议的用户信息获取方法和服务器 | |
CN105975470B (zh) | 历史记录的处理方法及装置 | |
CN103531218B (zh) | 一种在线多媒体文件编辑方法及系统 | |
CN111770067B (zh) | 一种基于物联网的安防视频采集方法、设备及系统 | |
WO2015047984A1 (en) | Systems and methods for selective retrieval of adaptive bitrate streaming media | |
US10880024B2 (en) | Reception device, transmission device, and data processing method | |
CN101600092A (zh) | 网络视频录像的生成和播放方法及系统 | |
CN110740386A (zh) | 直播切换方法、装置及存储介质 | |
Mandula et al. | Research and implementation of a mobile video streaming application for ubiquitous learning | |
CN112995698A (zh) | 一种视频播放方法、客户端、服务平台及智能会议系统 | |
CN108174284B (zh) | 一种基于Android系统的解码视频的方法 | |
TWI536817B (zh) | 網路互動協定資料記錄的方法以及裝置 | |
US9641908B2 (en) | Method and system for transferring real-time audio/video stream | |
US9705836B2 (en) | Method, server and SNS system for message interaction | |
CN105992016A (zh) | 一种hls在线转码方法及系统 | |
CN111565168B (zh) | 一种对象存储方法、系统、存储介质及电子设备 | |
JP2007524167A (ja) | ストリーミングサービスにおけるアセット情報の送信 | |
CN116261021B (zh) | 一种视频流播放方法、装置、电子设备及存储介质 | |
WO2012041039A1 (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |