CN117014658A - 基于特定网络环境下的视频流转码技术 - Google Patents

基于特定网络环境下的视频流转码技术 Download PDF

Info

Publication number
CN117014658A
CN117014658A CN202310762752.0A CN202310762752A CN117014658A CN 117014658 A CN117014658 A CN 117014658A CN 202310762752 A CN202310762752 A CN 202310762752A CN 117014658 A CN117014658 A CN 117014658A
Authority
CN
China
Prior art keywords
video stream
transcoding
camera
video
network environment
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.)
Pending
Application number
CN202310762752.0A
Other languages
English (en)
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.)
Jiangxi Guokang Information Technology Co ltd
Original Assignee
Jiangxi Guokang Information Technology 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 Jiangxi Guokang Information Technology Co ltd filed Critical Jiangxi Guokang Information Technology Co ltd
Priority to CN202310762752.0A priority Critical patent/CN117014658A/zh
Publication of CN117014658A publication Critical patent/CN117014658A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing 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/234309Processing 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/21Server components or server architectures
    • H04N21/218Source of audio or video content, e.g. local disk arrays
    • H04N21/2187Live feed
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network 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/63Control 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/643Communication protocols
    • H04N21/6437Real-time Transport Protocol [RTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Databases & Information Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本发明提出一种基于特定网络环境下的视频流转码技术,其特征是:在受到内部局域网网络安全限制,不对外开放UDP端口,且尽可能少的使用TCP端口的情况下,实现跨越互联网和局域网的RTSP协议视频监控直播,使用户可以在任何地方通过WEB前端页面实现对局域网内部的摄像头进行实时调阅查看监控。本发明的目的是通过一种新的技术方案解决在真实复杂的内部局域网环境下,传统监控系统存在的视频直播问题,提高监控系统的实用性、便利性和用户体验。

Description

基于特定网络环境下的视频流转码技术
技术领域
本发明涉及视频转码、网络安全、网络环境限制、WEB前端直播和服务器资源优化领域,具体涉及在受到内部局域网网络安全限制,不对外开放UDP端口,且尽可能少的使用TCP端口的情况下,实现跨越互联网和局域网的RTSP协议视频监控直播RTSP协议视频流转码为HLS协议视频流,在WEB前端对指定的摄像头进行实时调阅查看监控。
背景技术
随着视频监控技术的发展和普及,视频监控系统在安防领域的应用日益广泛。传统的监控系统通常使用RTSP协议进行视频流传输,但该协议在网络穿透时面临较大的技术挑战。此外,内部局域网基于网络安全的考虑, 会针对网络端口做出一系列的限制,例如不对外开放UDP端口,只开放少量的TCP端口导致在互联网环境下查看监控的更加有难度。为了解决这些问题,研究人员提出了许多技术方案,包括WebSocket协议、HTTP协议、网络穿透、端口映射、视频转码技术等。
业内针对RTSP协议视频流很多是直接使用WebSocket协议进行视频流传输和双向通信,该方案可以实现跨越互联网和局域网的监控直播。然而该方案也存在一些缺陷。首先,WebSocket协议在传输过程中可能会受到网络延迟、带宽限制等因素的影响,导致视频传输的稳定性和实时性下降。其次,该方案使用较多的端口进行数据传输,可能会受到内部局域网环境针对互联网开放端口的严格限制。本发明在该方案的基础上,采用了HTTP协议进行视频流传输,同时尽可能少地使用端口进行数据传输,以提高系统的稳定性和传输效率。
针对RTSP协议的视频流在WEB前端是无法直接播放的,通常情况下都需要对视频流进行转码后,才可以进行播放。目前已有的采用HTTP协议进行视频流传输的方案主要有两种:HTTP-FLV和HLS。其中,HTTP-FLV是一种将FLV格式的视频流通过HTTP协议传输的方案,可以实现实时的视频直播和点播,但随着FLASH技术的过时以及存在的安全性问题,主流浏览器早已不再继续支持。而HLS是一种将视频流切分成多个小片段并通过HTTP协议传输的方案,可以实现更好的安全性和稳定性,但也带来了更高的延迟。本发明在这些方案的基础上,采用了HLS协议进行视频流传输,并使用了多种技术手段进行优化和改进,以实现更好的视频传输效果和稳定性。
本发明在现有技术的基础上进行改进和优化,旨在真实复杂的内部局域网环境下,更好地满足现代社会对安防领域的需求。
发明内容
为了克服现有技术方案当中存在的缺陷和不足,本发明提出一种基于特定网络环境下的视频流转码技术,在受到内部局域网网络安全限制,不对外开放UDP端口,且尽可能少的使用TCP端口的情况下,实现跨越互联网和局域网的RTSP协议视频监控直播,使用户可以在任何地方通过WEB前端页面实现对局域网内部的摄像头进行实时调阅查看监控。
其具体采用一下技术方案:
一种基于特定网络环境下的视频流转码技术,其特征在于,包括如下步骤:
步骤S1:WEB前端请求播放某个指定的摄像头监控,把指定的摄像头id及用户Token通过HTTP接口传输给后台程序, 通知后台程序开启对应摄像头的视频流转码;
步骤S2:对于指定的转码视频流生成对应的文件路径。开始视频流转码时,按照摄像头的类型及通道号创建指定的路径;
步骤S3:对于指定的转码视频流,后台程序通过调用系统指令,传入转码子进程任务名称、RTSP协议视频流URL及转码后视频流文件生成路径参数,调用FFmpeg库开启子进程进行视频流转码;
步骤S4:转码成功后,后台会把转码后的视频流URL返回给WEB前端;
步骤S5:WEB前端通过HLS视频流控件对步骤S3返回的URL进行播放;
步骤S6:用户通过WEB前端页面关闭对应摄像头播放时,把指定的摄像头id及用户Token通过HTTP接口传输给后台程序,通知后台程序校验是否关闭对应摄像头的视频流转码;
步骤S7:后台程序校验是否已经无人在查看此摄像头了,确认后调用系统指令,传入子程序任务名称关闭对应摄像头的视频流转码;
步骤S8:关闭视频流转码后,按照摄像头的类型及通道号递归删除此摄像头的码流转码目录及子目录;
进一步地,使用Nginx配置静态文件反向代理,指定固定的HTTP端口对转码后的视频流文件进行端口映射,在不使用UDP端口转发的情况下,可有效地节约对公网环境映射的TCP端口;
进一步地,当多个用户通过平台前端访问查看同一摄像头时,只会存在一个视频流转码,节约服务器资源;
后台程序使用键值对集合来针对视频流转码进行管理。键为摄像头类型及通道号的拼接字符串,值为视频流转码对象,视频流转码对象包含转码后视频流文件路径、转码后的视频流URL、子进程任务名称、用户访问的Token集合等信息;
当用户通过WEB前端页面对应摄像头播放时,前端调用关闭转码HTTP接口,通知后台程序某个用户关闭了摄像头。后台程序从键值对集合中取出用户访问的Token集合并移除此用户Token,并校验Token集合是否为空,如果为空,则说明目前无人在查看此摄像头,就调用系统指令把对应摄像头的FFmpeg视频流转码进程给结束掉;
进一步地,后台程序需设置定时任务,去检测过长时间未结束的FFmpeg视频流转码进程,把超过限制时长且无人使用的FFmpeg视频流转码的子进程给结束掉,以保障服务器资源不被无效占用;
进一步地,在视频流转码时,使用FFmpeg库进行码流转换,将RTSP流转码为HLS流,生成m3u8的视频文件及ts切片视频文件;
采用H.264视频编码,转码生成的切片视频文件生成时长配置到低于1秒,设置最大循环数低于20个。可有效降低视频流的延迟及网络影响,也可有效地节约服务器的硬盘存储资源;
上述本申请提供了一种基于特定网络环境下的视频流转码技术,在真实复杂的内部局域网受到网络安全限制的情况下,实现跨越互联网和局域网的RTSP协议视频监控直播,使用户可以在任何地方通过WEB前端页面实现对局域网内部的摄像头进行实时调阅查看监控。解决了传统监控系统跨网络的摄像头视频流直播问题,提高监控系统的实用性、便利性和用户体验。
附图说明
图1是本发明实施例中基于特定网络环境下的视频流转码技术的开启指定摄像头的视频流转码流程示意图;
图2是本发明实施例中基于特定网络环境下的视频流转码技术的关闭指定摄像头的视频流转码流程示意图;
具体实施方式
为了使本申请的目的、技术方案和方案效果更加清楚明白,下面结合附图及实施例,对本发明作进一步的详细说明。显然一下所描述的实施例是本发明实施例中的一部分,仅用于说明本发明,但不用来限制本发明的范围。基于本发明中的实施例,本领域普通技术人员再没有做出创造性劳动前提下所获得所有其他实施例,都属于本发明保护的范围。
本发明提供的基于特定网络环境下的视频流转码技术,适用于大部分的浏览器,如IE8以上的版本、Chrome85以上的版本及Firefox75以上的版本,在任何地方可通过WEB前端页面的HLS协议视频流播放器进行正常播放。下述的实施例讲对基于特定网络环境下的视频流转码技术进行详细的说明。
在实施例中,如图1所示,对于基于特定网络环境下的视频流转码技术的开启指定摄像头的视频流转码,包括了以下步骤:
用户在WEB前端页面指定查看某个摄像头时,WEB前端向后台程序发送HTTP请求,包含摄像头id及用户Token信息;
后台程序通过HTTP请求参数获取到用户Token及摄像头id,通过摄像头id去数据库中查找摄像头类型及通道号;
其中,后台程序创建键值对集合对摄像头资源进行统一管理。键为摄像头类型及通道号的拼接字符串,值为摄像头视频流转码对象,视频流转码对象包含转码后视频流文件路径、转码后的视频流URL、转码子进程任务名称、用户访问的Token集合等信息;
在键值对集合中通过摄像头类型及通道号来查找,如果找到摄像头视频流转码对象,则从对象中取出转码后的视频流URL,返回给WEB前端页面的播放器控件进行播放;
在键值对集合中通过摄像头类型及通道号来查找,如果找不到对应的摄像头视频流转码对象,则创建一个新的摄像头视频流转码对象,把用户Token插入到对象中的用户访问的Token集合里,进行统一管理;
根据摄像头类型及通道号生成指定的转码文件存储路径,以及转码后的视频流URL,存储到之前新创建的摄像头视频流转码对象中;
根据生成的转码文件存储路径,判断真实的文件路径是否存在。如果已存在,则递归删除路径、子路径及其下的所有文件;
根据生成的转码文件存储路径,创建文件路径;
后台程序调用系统指令开启转码子进程,传入转码子进程的参数为:子进程任务名、RTSP协议视频流URL及转码后视频流文件生成路径,调用FFmpeg库开启子进程进行视频流转码;
系统指令执行成功,把转码子进程任务名存入摄像头视频流转码对象中,然后把对象存入到键值对集合中,键为摄像头类型及通道号的拼接字符串;
其中,FFmpeg转码指令会在指定的视频流文件存储路径中,生成m3u8描述文件及ts视频切片文件;
后台程序把转码成功的HLS协议视频流URL,通过接口响应返回给WEB前端页面,WEB前端把返回的URL传入HLS视频流控件进行播放;
系统指令如果执行失败,强制关闭转码子进程,返回转码失败的异常信息给WEB前端,WEB前端对用户进行异常提示。
在实施例中,如图2所示,对于基于特定网络环境下的视频流转码技术的关闭指定摄像头的视频流转码,包括了以下步骤:
用户在WEB前端页面关闭查看某个摄像头时,WEB前端向后台程序发送HTTP请求,包含摄像头id及用户Token信息;
后台程序通过HTTP请求参数获取到用户Token及摄像头id,通过摄像头id去数据库中查找摄像头类型及通道号;
根据摄像头类型及通道号的拼接字符串作为键,在键值对集合中查找摄像头视频流转码对象,如果找不到,说明摄像头已经关闭了转码,直接返回WEB前端,关闭转码成功;
找到摄像头视频流转码对象,把用户Token从对象中的用户Token集合中删除;
判断Token集合是否为空,如果不为空,则说明还有其他用户在查看摄像头,不能直接关闭转码子进程,返回WEB前端,关闭查看摄像头成功;
判断Token集合是否为空,如果为空,则调用系统指令,通过传入转码子进程任务名称关闭对应摄像头的视频流转码;
其中,从摄像头视频流转码对象中获取到视频流转码文件的存储路径,递归删除目录、子目录及其下的所有文件;
键值对集合根据摄像头类型及通道号的键,删除对应摄像头视频流转码对象;并返回WEB前端,关闭查看摄像头成功。
在实施例中,后台程序做一个定时任务,每隔5分钟执行一次;
其中,定时任务设置为:校验当前所有的摄像头视频流转码,确认是否存在没有任何用户在查看的摄像头或超过查看时长限制的摄像头,如果有,则通过转码子进程任务名称找到转码子进程,并把进程杀掉。然后再在后台程序的键值对集合中删除对应的摄像头视频流转码对象。
在实施例中,在Nginx配置静态文件反向代理,指定固定的HTTP端口对转码后的视频流文件进行端口映射,可有效减少对外部网络的TCP端口开放。
本发明是参照根据本发明实施例的方案和流程示意图来进行描述的。
最后说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何 修改或者等同替换,其均应涵盖在本发明的权利要求保护范围之内。因此,本申请专利的保护范围应以所述权利要求的保护范围为准。

Claims (8)

1.一种基于特定网络环境下的视频流转码技术,其特征在于,包括如下步骤:
步骤S1:WEB前端请求播放某个指定的摄像头监控,把指定的摄像头id及用户Token通过HTTP接口传输给后台程序, 通知后台程序开启对应摄像头的视频流转码;
步骤S2:对于指定的转码视频流生成对应的文件路径,开始视频流转码时,按照摄像头的类型及通道号创建指定的路径;
步骤S3:对于指定的转码视频流,后台程序通过调用系统指令,传入转码子进程任务名称、RTSP协议视频流URL及转码后视频流文件生成路径参数,调用FFmpeg库开启子进程进行视频流转码;
步骤S4:转码成功后,后台会把转码后的视频流URL返回给WEB前端;
步骤S5:WEB前端通过HLS视频流控件对步骤S3返回的URL进行播放;
步骤S6:用户通过WEB前端页面关闭对应摄像头播放时,把指定的摄像头id及用户Token通过HTTP接口传输给后台程序,通知后台程序校验是否关闭对应摄像头的视频流转码;
步骤S7:后台程序校验是否已经无人在查看此摄像头了,确认后调用系统指令,传入子程序任务名称关闭对应摄像头的视频流转码;
步骤S8:关闭视频流转码后,按照摄像头的类型及通道号递归删除此摄像头的码流转码目录及子目录。
2.根据权利要求1基于特定网络环境下的视频流转码技术,其特征在于:使用Nginx配置静态文件反向代理,指定固定的HTTP端口对转码后的视频流文件进行端口映射,在不使用UDP端口转发的情况下,可有效地节约对公网环境映射的TCP端口。
3.根据权利要求1基于特定网络环境下的视频流转码技术,其特征在于:当多个用户通过平台前端访问查看同一摄像头时,只会存在一个视频流转码,节约服务器资源。
4.根据权利要求3基于特定网络环境下的视频流转码技术,其特征在于:后台程序使用键值对集合来针对视频流转码进行管理,键为摄像头类型及通道号的拼接字符串,值为视频流转码对象,视频流转码对象包含转码后视频流文件路径、转码后的视频流URL、转码子进程任务名称、用户访问的Token集合等信息。
5.根据权利要求3基于特定网络环境下的视频流转码技术,其特征在于:当用户通过WEB前端页面对应摄像头播放时,前端调用关闭转码HTTP接口,通知后台程序某个用户关闭了摄像头,后台程序从键值对集合中取出用户访问的Token集合并移除此用户Token,并校验Token集合是否为空,如果为空,则说明目前无人在查看此摄像头,就调用系统指令把对应摄像头的FFmpeg视频流转码进程给结束掉。
6.根据权利要求3基于特定网络环境下的视频流转码技术,其特征在于:后台程序需设置定时任务,去检测过长时间未结束的FFmpeg视频流转码进程,把超过限制时长且无人使用的FFmpeg视频流转码的子进程给结束掉,以保障服务器资源不被无效占用。
7.根据权利要求1基于特定网络环境下的视频流转码技术,其特征在于:在视频流转码时,使用FFmpeg库进行码流转换,将RTSP流转码为HLS流,生成m3u8的视频文件及ts切片视频文件。
8.根据权利要求7基于特定网络环境下的视频流转码技术,其特征在于:采用H.264视频编码,转码生成的切片视频文件生成时长配置到低于1秒,设置最大循环数低于20个,可有效降低视频流的延迟及网络影响,也可有效的节约服务器的硬盘存储资源。
CN202310762752.0A 2023-06-27 2023-06-27 基于特定网络环境下的视频流转码技术 Pending CN117014658A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310762752.0A CN117014658A (zh) 2023-06-27 2023-06-27 基于特定网络环境下的视频流转码技术

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310762752.0A CN117014658A (zh) 2023-06-27 2023-06-27 基于特定网络环境下的视频流转码技术

Publications (1)

Publication Number Publication Date
CN117014658A true CN117014658A (zh) 2023-11-07

Family

ID=88568168

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310762752.0A Pending CN117014658A (zh) 2023-06-27 2023-06-27 基于特定网络环境下的视频流转码技术

Country Status (1)

Country Link
CN (1) CN117014658A (zh)

Similar Documents

Publication Publication Date Title
CN103460667B (zh) 使用字节范围请求的视频数据的网络流
US11374997B2 (en) Methods and systems for codec detection in video streams
US20110055386A1 (en) Network analytics management
CN110647698B (zh) 页面加载方法、装置、电子设备及可读存储介质
CN102740159A (zh) 媒体文件存储格式和自适应传送系统
US10476928B2 (en) Network video playback method and apparatus
JP2001034576A (ja) メディア処理システム及び方法
CN110769310B (zh) 一种基于视联网的视频处理方法和装置
CN109522032B (zh) 固件升级方法和装置
US9665646B1 (en) Method and system for providing bit rate adaptaion to video files having metadata
CN112584194A (zh) 视频码流的推送方法、装置、计算机设备和存储介质
US9641908B2 (en) Method and system for transferring real-time audio/video stream
CN115499230A (zh) 网络攻击检测方法和装置、设备及存储介质
CN101184002A (zh) 一种点对点流量深度监测方法和设备
Meyn Browser to browser media streaming with HTML5
CN111478882B (zh) 一种终端检测的方法和装置
CN109857419B (zh) 一种调度系统自动升级的方法和装置
CN117014658A (zh) 基于特定网络环境下的视频流转码技术
CN110109808B (zh) 一种日志处理的方法和装置
CN113329080B (zh) 基于WebSocket的视频播放方法、装置、电子设备及存储介质
CN113438503A (zh) 视频文件还原方法、装置、计算机设备和存储介质
CN113612811A (zh) 一种在多通道中客户端挂载的方法、系统、设备及介质
US12028396B2 (en) Methods and systems for codec detection in video streams
CN111478942B (zh) 请求处理方法、装置、电子设备及存储介质
CN111541864A (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
CB03 Change of inventor or designer information

Inventor after: Huang Xiao

Inventor after: Guo Yu

Inventor before: Guo Yu