CN113727113B - 视频解码方法、推流方法及系统 - Google Patents
视频解码方法、推流方法及系统 Download PDFInfo
- Publication number
- CN113727113B CN113727113B CN202010457049.5A CN202010457049A CN113727113B CN 113727113 B CN113727113 B CN 113727113B CN 202010457049 A CN202010457049 A CN 202010457049A CN 113727113 B CN113727113 B CN 113727113B
- Authority
- CN
- China
- Prior art keywords
- stream
- video
- cloud server
- browser
- decoder
- 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 81
- 238000012545 processing Methods 0.000 claims abstract description 13
- VYZAMTAEIAYCRO-UHFFFAOYSA-N Chromium Chemical compound [Cr] VYZAMTAEIAYCRO-UHFFFAOYSA-N 0.000 claims description 18
- 229910052804 chromium Inorganic materials 0.000 claims description 14
- 239000011651 chromium Substances 0.000 claims description 14
- 230000004044 response Effects 0.000 claims description 14
- 238000009877 rendering Methods 0.000 claims description 4
- 238000004891 communication Methods 0.000 description 11
- 238000005516 engineering process Methods 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000006835 compression Effects 0.000 description 3
- 238000007906 compression Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 239000008186 active pharmaceutical agent Substances 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
-
- 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/21—Server components or server architectures
- H04N21/218—Source of audio or video content, e.g. local disk arrays
- H04N21/2187—Live feed
-
- 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/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/41—Structure of client; Structure of client peripherals
- H04N21/426—Internal components of the client ; Characteristics thereof
-
- 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/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/478—Supplemental services, e.g. displaying phone caller identification, shopping application
- H04N21/4781—Games
-
- 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/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/478—Supplemental services, e.g. displaying phone caller identification, shopping application
- H04N21/4782—Web browsing, e.g. WebTV
-
- 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
- H04N21/6437—Real-time Transport Protocol [RTP]
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本发明提供了一种视频解码方法、推流方法及系统,方法应用于浏览器,其中,浏览器配置有HEVC解码器的支持信息,浏览器的WebRTC项目中配置有H265接口,通过ICE协议与云服务器建立WebRTC连接;接收云服务器发送的目标视频的SRTP流,SRTP流为云服务器将获取的目标视频的H265码流进行处理得到的数据流;解密SRTP流,得到RTP流;解析RTP流,确定RTP流的RTP负载类型为H265格式;调用预设的H265解码器对RTP流进行解码,得到目标视频对应的图片数据;H265解码器为基于HEVC解码器完成H265格式初始化后的解码器。本申请能够通过WebRTC传输H265视频并实现解码。
Description
技术领域
本发明涉及编解码技术领域,尤其是涉及一种视频解码方法、推流方法及系统。
背景技术
RTMP(Real Time Messaging Protocol,实时消息传输协议)基于TCP(Transmission Control Protocol,传输控制协议),传输成本高,在弱网环境丢包率高的情况下问题显著,它是Adobe 私有协议,Adobe 已经不再更新。而对于自己开发基于UDP(User Datagram Protocol,用户数据报协议)的私有协议来说,开发成本高,不能与社区进行演进,只有公司几个发开人员进行维护,存在BUG的可能性较大。由于RTMP与UDP私有协议的固有缺陷,目前采用WebRTC(Web Real-Time Communication,web实时通信技术)来传输视频流。但是,目前WebRTC只支持H264、VP8、VP9三种编解码,并不支持H265编解码。
发明内容
本发明的目的在于提供一种视频解码方法、推流方法及系统,可以通过WebRTC传输H265视频并实现解码。
本发明实施例提供一种视频解码方法,方法应用于浏览器,其中,浏览器配置有HEVC解码器的支持信息,浏览器的WebRTC项目中配置有H265接口,方法包括:通过ICE协议与云服务器建立WebRTC连接;接收云服务器发送的目标视频的SRTP流,SRTP流为云服务器将获取的目标视频的H265码流进行处理得到的数据流;解密SRTP流,得到RTP流;解析RTP流,确定RTP流的RTP负载类型为H265格式;调用预设的H265解码器对RTP流进行解码,得到目标视频对应的图片数据;H265解码器为基于HEVC解码器完成H265格式初始化后的解码器。
进一步的,在接收云服务器发送的目标视频的SRTP流的步骤之前,还包括:接收云服务器发送的参数协商请求;参数协商请求中携带有目标视频的H265格式参数信息;向云服务器发送参数协商请求对应的响应结果;响应结果中预先添加有支持H265格式的应答支持;基于参数协商请求和响应结果进行HEVC解码器的H265格式的初始化。
进一步的,上述解析H265码流,确定H265码流的负载类型为H265格式的步骤,包括:对H265码流进行解析,得到解析信息;基于解析信息,判断RTP协议中的负载类型值是否表征预设的H265负载类型;H265负载类型为云服务器预先约定的;如果是,确定H265码流的负载类型为H265格式。
进一步的,在得到目标视频对应的图片数据的步骤之后,还包括:对目标视频对应的图片数据进行渲染处理;将渲染处理后的图片进行显示。
第二方面,本申请实施例还提供一种视频推流方法,方法应用于云服务器,云服务器中预存有H265视频的推流参数,方法包括:获取目标视频的视频流;如果视频流的客户端为目标浏览器,对视频流进行H265视频编码,得到H265码流;目标浏览器配置有HEVC解码器的支持信息,目标浏览器的WebRTC项目中配置有H265接口;将H265码流转换为SRTP流,以及将SRTP流发送至目标浏览器,以使目标浏览器基于SRTP流,调用预设的H265解码器对H265码流进行解码,得到目标视频对应的图片数据;H265解码器为基于HEVC解码器完成H265格式初始化后的解码器。
进一步的,上述云服务器包括主云服务器和媒体服务器;主云服务器用于获取目标视频的H265码流并发送至媒体服务器,媒体服务器用于与目标浏览器进行通信。
进一步的,上述获取目标视频的视频流为通过主云服务器获取目标视频的视频流;将H265码流转换为SRTP流的步骤之前,方法还包括:通过主云服务器将H265码流发送至媒体服务器。
进一步的,上述将H265码流转换为SRTP流,以及将SRTP流发送至目标浏览器的步骤为媒体服务器将H265码流转换为SRTP流,以及将SRTP流发送至目标浏览器。
第三方面,本申请实施例还提供一种视频解码系统,系统包括:云服务器和浏览器;云服务器通过ICE协议与浏览器进行WebRTC连接;云服务器用于执行如第一方面所述的视频推流方法;浏览器用于执行如第二方面所述的视频解码方法。
进一步的,上述云服务器包括:主云服务器和媒体服务器。
第四方面,本申请实施例还提供一种电子设备,包括处理器和存储器,存储器存储有能够被处理器执行的计算机可执行指令,处理器执行计算机可执行指令以实现第一方面或第二方面任一项所述的方法。
第五方面,本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质存储有计算机可执行指令,计算机可执行指令在被处理器调用和执行时,计算机可执行指令促使处理器实现第一方面或第二方面任一项所述的方法。
本发明实施例提供的视频解码方法中,浏览器首先通过ICE协议与云服务器建立WebRTC连接;然后接收云服务器发送的目标视频的SRTP流,该SRTP流为云服务器将获取的目标视频的H265码流进行处理得到的数据流;通过解密SRTP流,得到RTP流;然后解析RTP流,确定RTP流的RTP负载类型为H265格式;最后调用预设的H265解码器对RTP流进行解码,得到目标视频对应的图片数据;由于该H265解码器为基于HEVC解码器完成H265格式初始化后的解码器,且上述浏览器配置有HEVC解码器的支持信息,浏览器的WebRTC项目中配置有H265接口,因此,可以通过WebRTC传输H265视频并实现H265视频解码。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种视频解码方法的流程图;
图2为本发明实施例提供的一种视频推流方法的流程图;
图3为本发明实施例提供的一种视频解码系统的结构框图;
图4为本发明实施例提供的一种电子设备的结构图。
具体实施方式
下面将结合实施例对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
首先介绍一下本申请的背景技术:云游戏是一种以云计算为基础的游戏方式,在云游戏模式下,所有游戏都在云端服务器运行,并将渲染完毕后的游戏画面压缩编码后通过网络传输给用户操作。如何将画面传输给客户端成为实现云游戏需要考虑的核心技术所在。其中画面压缩编码也称视频编码,经过编码的视频到达客户端后需要进行解码才能得到画面。目前常见的视频编码有MPEG系列与H.26X系列。
H.265(HEVC,High Efficiency Video Coding,高效率视频编码),是新一代视频编码技术。它围绕现有视频编码标准H.264,保留原来的某些技术,使用新技术对某些方面进行改进优化,如码流、编码质量、延时等,提高压缩效率、增强鲁棒性和错误恢复能力、减少实时的时延、降低复杂度等。H.265与H.264的区别,就在于H.265压缩效率更高,传输码率更低,视频画质更优,实现监控视频传输带宽减半、存储减半、成本减半,带给人们更优质的体验。
WebRTC,即Web Real-Time Communication,web实时通信技术,在浏览器及移动应用中实现了音视频的实时通信,应用范围广、方便无需安装插件及客户端就能通过浏览器实现实时通信。WebRTC 提供了在 Web、iOS、Android、Mac、Windows、Linux 在内的所有平台的 API,保证了 API 在所有平台的一致性。广泛的通用性使得WebRTC成为未来打造实时通信的技术首选。
Chromium 是Google发起的开源浏览器项目,是Google Chrome浏览器背后的引擎,其目的是为了创建一个安全、稳定和快速的通用浏览。新功能会率先在Chromium上实现,待验证后才会应用在Chrome上,故Chrome的功能会相对落后但较稳定。Chromium的更新速度很快,每隔数小时即有新的开发版本发布。同时也有很多桌面应用以Chromium为内核,利用Chromiumm提供的丰富功能,如Electron。
考虑到RTMP与UDP私有协议的固有缺陷,目前采用WebRTC来传输视频流。但是Chromium引擎下WebRTC只支持H264、VP8、VP9三种编解码,并不支持H265编解码。基于此,本发明实施例提供一种H265视频的解码方法、推流方法、装置及系统,以实现在Chromium引擎下基于WebRTC对H265视频解码。
为便于对本实施例进行理解,首先对本申请实施例所公开的一种视频解码方法进行详细介绍。
图1示出了本发明实施例提供的一种视频解码方法的流程图,该方法应用于浏览器,其中,浏览器配置有HEVC解码器的支持信息,浏览器的WebRTC项目中配置有H265接口,上述方法包括以下步骤:
步骤S102,通过ICE协议与云服务器建立WebRTC连接。
步骤S104,接收云服务器发送的目标视频的SRTP流。
上述SRTP流为云服务器将获取的目标视频的H265码流进行处理得到的数据流;上述目标视频可以为云游戏视频,也可以是直播视频。
具体实现的时候,在传输该SRTP流之前,云服务器和浏览器之间已经通过ICE协议建立了WebRTC连接。在进行连接的基础上,云服务器获取目标视频的视频流,然后将其编码为H265码流,发送给上述浏览器。
步骤S106,解密SRTP流,得到RTP流。
浏览器在接收到上述云服务器发送的目标视频的SRTP流后,进行解密操作,得到RTP流。
步骤S108,解析RTP流,确定RTP流的RTP负载类型为H265格式。
具体实现时,首先对H265码流进行解析,得到解析信息;基于解析信息,判断RTP协议中的负载类型值是否表征预设的H265负载类型;H265负载类型为云服务器预先约定的;如果是,确定H265码流的负载类型为H265格式。
由于H265视频特殊化了RTP Payload Format ,RTP负载格式,因此,可以在关键的处理入口rtp_video_stream_receiver.cc的OnReceivedPayloadData处增加一个 if(pakcet.code() == KVideoCodecH265) 的判断,在判断中处理RTP Payload Format。这个是chromium中的一处判断代码,RTP中,有一个字段用来标识此RTP流承载的是什么类型的数据。如果云服务器已经设置了这个字段payload_type值,因此,浏览器解析到这个值时,就可以判断RTP流的RTP负载类型为H265格式。
步骤S110,调用预设的H265解码器对RTP流进行解码,得到目标视频对应的图片数据;H265解码器为基于HEVC解码器完成H265格式初始化后的解码器。
如果上述解析后,确定RTP流的RTP负载类型是H265格式,那么就可以通过预设的H265解码器对RTP流进行解码,得到目标视频对应的图片数据。这里预设的H265解码器为基于HEVC解码器完成H265格式初始化后的解码器。要H265格式初始化就需要首先完成云服务器和浏览器之间,交换一次answer和offer。在answer和offer已经商定好了编解码格式,而且,浏览器配置有HEVC解码器的支持信息,且浏览器的WebRTC项目中配置有H265接口,因此,可以调用HEVC解码器,进而通过该解码器实现H265视频的解码。
本申请实施例提供的视频解码方法中,浏览器首先通过ICE协议与云服务器建立WebRTC连接;然后接收云服务器发送的目标视频的SRTP流,该SRTP流为云服务器将获取的目标视频的H265码流进行处理得到的数据流;通过解密SRTP流,得到RTP流;然后解析RTP流,确定RTP流的RTP负载类型为H265格式;最后调用预设的H265解码器对RTP流进行解码,得到目标视频对应的图片数据;由于该H265解码器为基于HEVC解码器完成H265格式初始化后的解码器,且上述浏览器配置有HEVC解码器的支持信息,浏览器的WebRTC项目中配置有H265接口,因此,可以通过WebRTC传输H265视频并实现H265视频解码。
根据webrtc的设定,在传输视频流之前,浏览器和云服务器需要交换一次answer和offer,即完成SDP(Session Description protocol,应答支持)。下面详细说明一下浏览器和云服务器之间交换answer和offer及解码器初始化过程。
(1)接收云服务器发送的参数协商请求;参数协商请求中携带有目标视频的H265格式参数信息。
具体的,云服务器向浏览器发offer, offer中包含媒体中音视频相关的信息,offer中就包含了H265格式的相关信息,如rtpmap等。
offer:该会话描述对象描述首次握手的请求/响应。会话过程从发送方到接收方。这里重点关注的是,应答中编解码能力,比如:
a=rtpmap:96 H264/90000;
a=fmtp:96;
packetization-mode=1;level-asymmetry-allowed=1;profile-level-id=42e01f;
因此在offer中添加H265格式:
a=rtpmap:100 H265/90000;
(2)向云服务器发送参数协商请求对应的响应结果;响应结果中预先添加有支持H265格式的应答支持;
具体的,浏览器接收到offer后,对信息进行记录,并发送回复的answer SDP。answer:SDP协议请求内容包含在属性sdp中。换言之,此会话描述描述了商定的配置,并将被发送以完成协商。
(3)基于参数协商请求和响应结果进行HEVC解码器的H265格式的初始化。也就是根据前两步中协商的信息初始化H265相关的解码器。
在另一种实施方式中,在得到目标视频对应的图片数据的步骤之后,还包括以下步骤:对目标视频对应的图片数据进行渲染处理;将渲染处理后的图片进行显示。
在一种优选实施方式中,上述浏览器为安装有Chromium引擎的浏览器,下面以安装有Chromium引擎的浏览器为例,进行视频解码过程的说明:
安装有Chromium引擎的浏览器中,预先对Chromium引擎的支持electron源码进行了重编译,如在Chromium引擎的ffmpeg项目中配置了HEVC解码器的支持信息;在Chromium引擎的WebRTC项目中配置了H265接口。
具体为在WebRTC项目中 modules/video_coding/codecs/目录下添加h265目录,实现webrtc的接口,并实现H265DecoderImpl类。由于chromium中第三方库ffmpeg默认没有开启HEVC支持,这里修改了chromium 下ffmpeg的构建配置,添加HEVC的支持。具体为在codec_list.c中的codec_list数组中添加ff_hevc_decoder解码器,同时修改make文件添加hevc解码功能文件。
基于上述修改,安装有Chromium引擎的浏览器首先通过ICE协议与云服务器建立WebRTC连接;然后接收云服务器发送的目标视频的SRTP流;然后解密SRTP流,得到RTP流;进一步,解析RTP流,确定RTP流的RTP负载类型为H265格式时,调用预设的H265解码器对RTP流进行解码,得到目标视频对应的图片数据;由于该H265解码器为基于HEVC解码器完成H265格式初始化后的解码器。因此,通过上述electron源码的重编译和解码器的初始化,可以实现在Chromium引擎下通过WebRTC传输H265视频流并进行解码。
基于上述浏览器侧的方法实施例,本申请实施例还提供一种视频推流方法,该方法应用于云服务器,云服务器中预存有H265视频的推流参数,该视频推流方法包括以下步骤,参见图2所示:
步骤S202,获取目标视频的视频流;
步骤S204,如果视频流的客户端为目标浏览器,对视频流进行H265视频编码,得到H265码流;目标浏览器配置有HEVC解码器的支持信息,目标浏览器的WebRTC项目中配置有H265接口;
这里对视频流进行H265视频编码可以通过软件或硬件的方式实现,比如:通过ffmpeg或者GPU图形处理器对视频流进行H265视频编码。
步骤S206,将H265码流转换为SRTP流,以及将SRTP流发送至目标浏览器,以使目标浏览器基于SRTP流,调用预设的H265解码器对H265码流进行解码,得到目标视频对应的图片数据;H265解码器为基于HEVC解码器完成H265格式初始化后的解码器。
目标浏览器在接收到云服务器发送的加密的SRTP流后,进一步可以进行解密、解析、解码等操作,具体的实现过程可以参见上述方法实施例,在此不再赘述。
本申请实施例提供的视频推流方法,通过预先在云服务器中修改或设置的参数,可以实现H265视频的推流过程。
在一种优选的实施方式中,上述云服务器可以包括主云服务器和媒体服务器;主云服务器用于获取目标视频的H265码流并发送至媒体服务器,媒体服务器用于与浏览器进行通信。上述获取目标视频的视频流可以为:通过主云服务器获取目标视频的视频流;上述将H265码流转换为SRTP流的步骤之前,方法还包括:通过主云服务器将H265码流发送至媒体服务器。上述将H265码流转换为SRTP流,以及将SRTP流发送至目标浏览器的步骤可以为:通过媒体服务器将H265码流转换为SRTP流,以及将SRTP流发送至目标浏览器。
具体实施时,首先,主云服务器获取目标视频的视频流,然后将其编码为H265码流,并向媒体服务器发送该H265码流。在媒体服务器接收到该目标视频的H265码流后,进一步将其包装为SRTP流,也就是对其进行了加密,提高了该数据的安全性,最后将包装成的SRTP流发送给目标浏览器,比如安装有Chromium引擎浏览器,这样,就完成了云服务器的推流过程,然后浏览器再进行解码过程,可参见上述视频解码方法的实施例,在此不再赘述。
基于上述方法实施例,本申请实施例还提供一种视频解码系统,参见图3所示的视频解码系统的结构框图,该系统包括:云服务器32和浏览器34;云服务器32通过ICE协议与浏览器34进行WebRTC连接;云服务器32用于执行上述视频推流方法;浏览器34用于执行上述视频解码方法。
在一种优选的实施方式中,上述云服务器32包括:主云服务器322和媒体服务器324。主云服务器322用于获取目标视频的H265码流并发送至媒体服务器324,媒体服务器324用于与浏览器34进行通信。
为了让WebRTC支持H265的解码渲染,修改了云服务器的编码推流部分,WebRTCICE建立中的SDP应答部分,RTP负载解析部分,chromium H265软解码部分和Electron重编译,通过这些修改可以实现在Chromium引擎下通过WebRTC传输H265视频流并进行解码。
本申请实施例提供的系统,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,系统的实施例部分未提及之处,可参考前述方法实施例中相应内容。
本申请实施例还提供了一种电子设备,如图4所示,为该电子设备的结构示意图,其中,该电子设备包括处理器41和存储器40,该存储器40存储有能够被该处理器41执行的计算机可执行指令,该处理器41执行该计算机可执行指令以实现上述方法。
在图4示出的实施方式中,该电子设备还包括总线42和通信接口43,其中,处理器41、通信接口43和存储器40通过总线42连接。
其中,存储器40可能包含高速随机存取存储器(RAM,Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口43(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。总线42可以是ISA(IndustryStandard Architecture,工业标准体系结构)总线、PCI(Peripheral ComponentInterconnect,外设部件互连标准)总线或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。所述总线42可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
处理器41可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器41中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器41可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital SignalProcessor,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器41读取存储器中的信息,结合其硬件完成前述实施例的方法的步骤。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令在被处理器调用和执行时,该计算机可执行指令促使处理器实现上述方法,具体实现可参见前述方法实施例,在此不再赘述。
本申请实施例所提供的方法、装置和电子设备的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述方法,具体实现可参见方法实施例,在此不再赘述。
除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对步骤、数字表达式和数值并不限制本申请的范围。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (11)
1.一种视频解码方法,其特征在于,所述方法应用于安装有Chromium引擎的浏览器,其中,所述浏览器配置有HEVC解码器的支持信息,所述浏览器的WebRTC项目中配置有H265接口,所述方法包括:
通过ICE协议与云服务器建立WebRTC连接;
接收云服务器发送的目标视频的SRTP流,所述SRTP流为所述云服务器将获取的目标视频的H265码流进行处理得到的数据流;
解密所述SRTP流,得到RTP流;
对所述H265码流进行解析,得到解析信息;基于所述解析信息,判断RTP协议中的负载类型值是否表征预设的H265负载类型;所述H265负载类型为所述云服务器预先约定的;如果是,确定所述H265码流的负载类型为H265格式;
调用预设的H265解码器对所述RTP流进行解码,得到所述目标视频对应的图片数据;所述H265解码器为基于HEVC解码器完成H265格式初始化后的解码器。
2.根据权利要求1所述的方法,其特征在于,在接收云服务器发送的目标视频的SRTP流的步骤之前,还包括:
接收所述云服务器发送的参数协商请求;所述参数协商请求中携带有目标视频的H265格式参数信息;
向所述云服务器发送所述参数协商请求对应的响应结果;所述响应结果中预先添加有支持H265格式的应答支持;
基于所述参数协商请求和所述响应结果进行HEVC解码器的H265格式的初始化。
3.根据权利要求1所述的方法,其特征在于,在得到所述目标视频对应的图片数据的步骤之后,还包括:
对所述目标视频对应的图片数据进行渲染处理;
将渲染处理后的图片进行显示。
4.一种视频推流方法,其特征在于,所述方法应用于云服务器,所述云服务器中预存有H265视频的推流参数,所述方法包括:
获取目标视频的视频流;
如果所述视频流的客户端为目标浏览器,对所述视频流进行H265视频编码,得到H265码流;所述目标浏览器安装有Chromium引擎,配置有HEVC解码器的支持信息,所述浏览器的WebRTC项目中配置有H265接口;
将所述H265码流转换为SRTP流,以及将所述SRTP流发送至所述目标浏览器,以使所述目标浏览器解密所述SRTP流,得到RTP流;对所述H265码流进行解析,得到解析信息;基于所述解析信息,判断RTP协议中的负载类型值是否表征预设的H265负载类型;所述H265负载类型为所述云服务器预先约定的;如果是,确定所述H265码流的负载类型为H265格式;调用预设的H265解码器对所述RTP流进行解码,得到所述目标视频对应的图片数据;所述H265解码器为基于HEVC解码器完成H265格式初始化后的解码器。
5.根据权利要求4所述的方法,其特征在于,所述云服务器包括主云服务器和媒体服务器;所述主云服务器用于获取目标视频的H265码流并发送至所述媒体服务器,所述媒体服务器用于与所述目标浏览器进行通信。
6.根据权利要求5所述的方法,其特征在于,所述获取目标视频的视频流为通过所述主云服务器获取目标视频的视频流;所述将所述H265码流转换为SRTP流的步骤之前,所述方法还包括:
通过所述主云服务器将所述H265码流发送至所述媒体服务器。
7.根据权利要求6所述的方法,其特征在于,所述将所述H265码流转换为SRTP流,以及将所述SRTP流发送至所述目标浏览器的步骤为所述媒体服务器将所述H265码流转换为SRTP流,以及将所述SRTP流发送至所述目标浏览器。
8.一种视频解码系统,其特征在于,所述系统包括:云服务器和安装有Chromium引擎的浏览器;
所述云服务器通过ICE协议与浏览器进行WebRTC连接;
所述云服务器用于执行如权利要求4-7任一项所述的视频推流方法;
所述浏览器用于执行如权利要求1-3任一项所述的视频解码方法。
9.根据权利要求8所述的系统,其特征在于,所述云服务器包括:主云服务器和媒体服务器。
10.一种电子设备,其特征在于,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的计算机可执行指令,所述处理器执行所述计算机可执行指令以实现权利要求1-3或4-7任一项所述的方法。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令在被处理器调用和执行时,计算机可执行指令促使处理器实现权利要求1-3或4-7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010457049.5A CN113727113B (zh) | 2020-05-26 | 2020-05-26 | 视频解码方法、推流方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010457049.5A CN113727113B (zh) | 2020-05-26 | 2020-05-26 | 视频解码方法、推流方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113727113A CN113727113A (zh) | 2021-11-30 |
CN113727113B true CN113727113B (zh) | 2024-06-21 |
Family
ID=78672168
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010457049.5A Active CN113727113B (zh) | 2020-05-26 | 2020-05-26 | 视频解码方法、推流方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113727113B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023184206A1 (en) * | 2022-03-30 | 2023-10-05 | Intel Corporation | Enhanced presentation of tiles of residual sub-layers in low complexity enhancement video coding encoded bitstream |
CN115460187A (zh) * | 2022-09-02 | 2022-12-09 | 北京斯年智驾科技有限公司 | 一种视频实时传输方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108809924A (zh) * | 2017-05-02 | 2018-11-13 | 韩华泰科株式会社 | 执行网络实时通信的方法和装置 |
CN109906107A (zh) * | 2016-06-13 | 2019-06-18 | 索尼互动娱乐有限责任公司 | 基于浏览器的云游戏 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150082021A1 (en) * | 2013-09-13 | 2015-03-19 | Qualcomm Incorporated | Mobile proxy for webrtc interoperability |
DE102013018624A1 (de) * | 2013-11-06 | 2015-05-07 | Unify Gmbh & Co. Kg | Verfahren zum sicheren und dynamischen Nachladen von zusätzlicher Software von einem WebRTC-Server in einen WebRTC-Client |
CN105530453B (zh) * | 2015-12-29 | 2019-06-28 | 苏州科达科技股份有限公司 | 用于WebRTC的视频数据发送方法及装置、接收方法及装置 |
CN106209996A (zh) * | 2016-06-27 | 2016-12-07 | 网易(杭州)网络有限公司 | 通信处理方法和装置 |
GB2567249A (en) * | 2017-10-09 | 2019-04-10 | Canon Kk | New sample sets and new down-sampling schemes for linear component sample prediction |
CN108337528B (zh) * | 2018-01-17 | 2021-04-16 | 浙江大华技术股份有限公司 | 一种预览视频的方法及设备 |
CN108712654B (zh) * | 2018-05-18 | 2020-04-14 | 网宿科技股份有限公司 | 一种音视频流的转码方法及设备 |
CN109257344B (zh) * | 2018-09-06 | 2021-01-26 | 广州高清视信数码科技股份有限公司 | 一种基于Docker容器技术的WebRTC媒体网关及其互通方法 |
US10970029B2 (en) * | 2018-10-15 | 2021-04-06 | Symphony Communication Services Holdings Llc | Dynamic user interface and module facilitating content sharing in a distributed computing environment |
-
2020
- 2020-05-26 CN CN202010457049.5A patent/CN113727113B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109906107A (zh) * | 2016-06-13 | 2019-06-18 | 索尼互动娱乐有限责任公司 | 基于浏览器的云游戏 |
CN108809924A (zh) * | 2017-05-02 | 2018-11-13 | 韩华泰科株式会社 | 执行网络实时通信的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113727113A (zh) | 2021-11-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113727113B (zh) | 视频解码方法、推流方法及系统 | |
CN111372128A (zh) | 视频播放的方法、装置、计算机设备及可读存储介质 | |
WO2021083083A1 (zh) | 一种升级方法、系统、服务器及终端设备 | |
CN113766317A (zh) | 视频传输方法、装置、电子设备和存储介质 | |
US10819951B2 (en) | Recording video from a bitstream | |
CN105159643A (zh) | 基于二维码的无线传屏认证方法及系统 | |
CN105872651A (zh) | 图像处理方法及装置 | |
CN105141567A (zh) | 终端应用和服务端的交互数据处理方法及系统、交互方法 | |
CN114221909B (zh) | 数据传输方法、装置、终端及存储介质 | |
CN108809924B (zh) | 执行网络实时通信的方法和装置 | |
CN113691484A (zh) | 用于协议适配的装置和方法 | |
CN110798651A (zh) | 视频会议方法、装置、设备及存储介质 | |
KR20190003729A (ko) | 컨텐트 분산 네트워크들에서 엠펙 미디어 전송 통합을 위한 방법 및 장치 | |
WO2019007027A1 (zh) | 视频播出方法、系统、电子设备及可读取存储介质 | |
CN108650264B (zh) | 数据传输方法、装置、设备及计算机可读存储介质 | |
CN114710568B (zh) | 音视频数据通信方法、设备及存储介质 | |
CN106506263B (zh) | 应用程序信息获取系统、设备、装置及方法 | |
CN114679608B (zh) | Vr视频加密播放方法、服务器、用户端、系统、电子设备和介质 | |
CN112823349A (zh) | 数据处理方法、装置、电子设备以及存储介质 | |
CN113794931A (zh) | 视频播放方法、系统以及电子设备 | |
CN111586344B (zh) | 一种网络摄像机的消息发送方法及装置 | |
CN106790132A (zh) | 基于rtmp的无插件预览视频方法 | |
CN114513544B (zh) | 局域网无线投屏方法、设备及计算机可读存储介质 | |
CN111757120A (zh) | 一种数据解码方法、电子设备及机器可读存储介质 | |
CN114503569A (zh) | 用于实时视频通信的av1编解码器 |
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 |