CN114040251A - 音视频播放方法、***、存储介质及计算机程序产品 - Google Patents

音视频播放方法、***、存储介质及计算机程序产品 Download PDF

Info

Publication number
CN114040251A
CN114040251A CN202111094908.XA CN202111094908A CN114040251A CN 114040251 A CN114040251 A CN 114040251A CN 202111094908 A CN202111094908 A CN 202111094908A CN 114040251 A CN114040251 A CN 114040251A
Authority
CN
China
Prior art keywords
audio
code stream
browser
stream data
video
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
CN202111094908.XA
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.)
Beijing Kuangshi Technology Co Ltd
Beijing Megvii Technology Co Ltd
Original Assignee
Beijing Kuangshi Technology Co Ltd
Beijing Megvii 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 Beijing Kuangshi Technology Co Ltd, Beijing Megvii Technology Co Ltd filed Critical Beijing Kuangshi Technology Co Ltd
Priority to CN202111094908.XA priority Critical patent/CN114040251A/zh
Publication of CN114040251A publication Critical patent/CN114040251A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • H04N21/440218Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/439Processing of audio elementary streams
    • H04N21/4398Processing of audio elementary streams involving reformatting operations of audio signals
    • 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/637Control signals issued by the client directed to the server or network components
    • H04N21/6371Control signals issued by the client directed to the server or network components directed to network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/8166Monomedia components thereof involving executable data, e.g. software
    • H04N21/8173End-user applications, e.g. Web browser, game

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本发明的实施例提供了一种音视频播放方法、***、存储介质及计算机程序产品。该方法包括:监听本地端口,并经由本地端口接收浏览器的连接请求;基于连接请求,建立与浏览器的通信连接;经由通信连接,接收浏览器发送的音视频信号的播放请求指令;根据播放请求指令,获取音视频信号的取流地址;建立与取流地址的网络连接并自取流地址获取音视频信号的码流数据;以及经由通信连接,将码流数据发送给浏览器,以由浏览器播放音视频信号。上述方案能够支持各种主流浏览器。同时,无需远端服务器的参与即可实现上述方案。

Description

音视频播放方法、***、存储介质及计算机程序产品
技术领域
本发明涉及音视频播放领域,更具体地涉及一种音视频播放方法、***、存储介质及计算机程序产品。
背景技术
目前,浏览器播放音视频主要通过以下两种方法。第一种方法是在浏览器中嵌入ActiveX控件。利用ActiveX控件对音视频进行解码并显示。第二种方法是增加客户端的后台服务以将各种音视频编码数据转码成H264视频编码格式或AAC音频编码格式。针对转码后的音视频数据进行封装,转为fragment mp4格式。之后浏览器使用扩展MSE的Video标签对封装后的音视频进行播放。
虽然上述方法均可以实现在浏览器上播放音视频,但仍然存在诸多问题。对于第一种方法,只能在具备IE引擎的浏览器例如IE11、360浏览器上实现,而在具备Chrome引擎的浏览器上不能实现。即第一种方法不能跨浏览器使用。对于第二种方法,后台服务要执行音视频解码、编码以及封装等操作,这不仅增加了音视频编码资源的消耗,还对前端视频流进行了二次处理,造成了一定的播放延迟。当出现播放路数较多的情况,后台服务的性能消耗也相应地成倍增加。
因此,亟需一种新的音视频播放方法以解决上述问题。
发明内容
考虑到上述问题而提出了本发明。根据本发明的一个方面,提供了一种音视频播放方法,包括:监听本地端口,并经由本地端口接收浏览器的连接请求;基于连接请求,建立与浏览器的通信连接;经由通信连接,接收浏览器发送的音视频信号的播放请求指令;根据播放请求指令,获取音视频信号的取流地址;建立与取流地址的网络连接并自取流地址获取音视频信号的码流数据;以及经由通信连接,将码流数据发送给浏览器,以由浏览器播放音视频信号。
示例性地,所述方法还包括:根据所述播放请求指令,获取所述音视频信号的输出方式;在所述自所述取流地址获取所述音视频信号的码流数据之后,并且在所述将所述码流数据发送给所述浏览器之前,根据所述输出方式对所述码流数据进行处理,以获得符合所述输出方式的码流数据。
示例性地,在自取流地址获取音视频信号的码流数据之后,并且在将码流数据发送给浏览器之前,所述方法还包括:对于码流数据的格式是H264编码格式的视频数据的情况,将码流数据封装为fmp4格式的码流数据;由浏览器播放音视频信号包括:使用符合媒体源扩展规范的视频标签播放码流数据。
示例性地,在自取流地址获取音视频信号的码流数据之后,并且在将码流数据发送给浏览器之前,所述方法还包括:对于码流数据的格式是非H264编码格式的视频数据的情况,将码流数据进行解码,以获得码流数据的明亮度和色度信息;将所述码流数据发送给所述浏览器,以由浏览器播放音视频信号包括:将码流数据的明亮度和色度信息发送给浏览器,以由浏览器进行明亮度和色度渲染。
示例性地,在自取流地址获取音视频信号的码流数据之后,并且在将码流数据发送给浏览器之前,所述方法还包括:对于码流数据是音频数据的情况,将码流数据解码为脉冲编码调制的码流数据。
示例性地,所述方法还包括:根据播放请求指令,获取音视频信号的取流协议;自取流地址获取音视频信号的码流数据包括:基于取流协议,自取流地址获取码流数据。
示例性地,在建立与取流地址的网络连接并自取流地址获取音视频信号的码流数据之后,所述方法还包括:确定是否成功获取码流数据;对于未成功获取码流数据的情况,再次执行建立与取流地址的网络连接并自取流地址获取音视频信号的码流数据,直至成功获取码流数据。
示例性地,所述方法还包括:经由通信连接,接收浏览器发送的音视频信号的播放控制指令;根据播放控制指令,控制浏览器播放音视频信号。
示例性地,播放控制指令包括以下指令中的一种或多种:暂停播放指令、恢复播放指令、视频录像指令和视频电子放大指令。
示例性地,所述方法还包括:响应于浏览器断开通信连接的操作,断开网络连接并停止自取流地址获取音视频信号的码流数据;以及清空所缓存的码流数据。
根据本发明另一方面,还提供一种音视频播放***,包括处理器和存储器。其中,存储器中存储有计算机程序指令,计算机程序指令被处理器运行时用于执行如上所述的音视频播放方法。
示例性地,计算机程序指令构成一个播放组件,其中,播放组件在安装完成后,启动后台进程并保持常驻运行。
根据本发明的又一方面,还提供了一种存储介质。在存储介质上存储了程序指令。程序指令在运行时用于执行如上所述的音视频播放方法。
根据本发明的再一方面,还提供了一种计算机程序产品,包括程序指令。程序指令在运行时用于执行如上所述的音视频播放方法。
根据上述技术方案,本申请的音视频播放方法不仅对音视频信号的码流数据的格式不做任何限制,支持多种码流数据的格式以及不同分辨率的音视频信号,而且能够支持各种主流浏览器。同时,由于该方案运行在本地客户端,无需远端服务器的参与即可实现上述方案;由此,不仅有效避免了现有技术中需要部署远端服务器仍然难以满足多路视频播放需求的弊端,而且避免了播放延迟。
附图说明
通过结合附图对本发明实施例进行更详细的描述,本发明的上述以及其它目的、特征和优势将变得更加明显。附图用来提供对本发明实施例的进一步理解,并且构成说明书的一部分,与本发明实施例一起用于解释本发明,并不构成对本发明的限制。在附图中,相同的参考标号通常代表相同部件或步骤。
图1示出了用于实现根据本发明实施例的音视频播放方法和装置的示例电子设备的示意性框图;
图2示出了根据本发明一个实施例的音视频播放方法的示意性流程图;
图3示出了根据本发明另一实施例的音视频播放方法的示意性流程图;
图4示出了根据本发明一个实施例的音视频播放方法的示意性时序图;
图5示出了根据本发明一个实施例的音视频播放装置的示意性框图;
图6示出了根据本发明一个实施例的音视频播放***的示意性框图。
具体实施方式
为了使得本发明的目的、技术方案和优点更为明显,下面将参照附图详细描述根据本发明的示例实施例。显然,所描述的实施例仅仅是本发明的一部分实施例,而不是本发明的全部实施例,应理解,本发明不受这里描述的示例实施例的限制。基于本发明中描述的实施例,本领域技术人员在没有付出创造性劳动的情况下所得到的所有其它实施例都应落入本发明的保护范围之内。
首先,参照图1来描述用于实现根据本发明实施例的音视频播放方法和装置的示例电子设备100。
如图1所示,电子设备100包括一个或多个处理器102、一个或多个存储装置104。可选地,电子设备100还可以包括输入装置106和输出装置108,这些组件通过总线***110和/或其它形式的连接机构(未示出)互连。应当注意,图1所示的电子设备100的组件和结构只是示例性的,而非限制性的,根据需要,电子设备也可以具有其他组件和结构。
处理器102可以采用微处理器、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)中的至少一种硬件形式来实现。处理器102也可以是中央处理单元(CPU)、图形处理器(GPU)、专用的集成电路(ASIC)或者具有数据处理能力和/或指令执行能力的其它形式的处理单元中的一种或几种的组合,并且可以控制电子设备100中的其它组件以执行期望的功能。
存储装置104可以包括一个或多个计算机程序产品。计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器102可以运行该程序指令,以实现下文所述的本发明实施例中(由处理器实现)的客户端功能以及/或者其它期望的功能。在计算机可读存储介质中还可以存储各种应用程序和各种数据,例如所述应用程序使用和/或产生的各种数据等。
输入装置106可以是用户用来输入指令的装置,并且可以包括键盘、鼠标、麦克风、触摸屏等中的一个或多个。
输出装置108可以向外部(例如用户)输出各种信息(例如图像和/或声音),并且可以包括显示器、扬声器等中的一个或多个。可选地,输入装置106和输出装置108可以集成在一起,采用同一交互装置(例如触摸屏)实现。
示例性地,用于实现根据本发明实施例的音视频播放方法和装置的示例电子设备可以在诸如个人计算机、平板电脑或智能手机等的设备上实现。
为了至少部分地解决上述技术问题,根据本发明的实施例提供一种音视频播放方法。图2示出了根据本发明一个实施例的音视频播放方法200的示意性流程图。下面将参考图2描述根据本发明实施例的音视频播放方法。该方法可以利用一个播放组件实现,下面以此为例对音视频播放方法200进行说明。当用户打开浏览器的视频播放页面时,可以提示用户下载安装该播放组件。当播放组件安装完成后,可以在客户端上无感知地启动后台应用进程,并且保持常驻运行,进而实现视频播放功能。
如图2所示,方法200包括以下步骤。
步骤S210,监听本地端口,并经由本地端口接收浏览器的连接请求。
示例性地,本地端口可以是指本地客户端例如计算机上的端口,例如80端口或433端口等。可以通过监听本地端口,实时接收浏览器的连接请求。具体地,前述播放组件的本地应用进程在后台运行时可以启用双向通信(Websocket)服务,以实现对本地端口的监听。可以理解,Websocket服务监听哪个本地端口可以根据具体情况具体设置。当用户利用浏览器打开与本地应用进程关联的音视频播放页面时,浏览器发出连接请求。本地应用进程可以经由本地端口接收到该连接请求。
步骤S220,基于连接请求,建立与浏览器的通信连接。
可以理解,本地应用进程一旦接收到连接请求,就立即响应该请求,与浏览器建立起通信连接关系。
通过步骤S210和步骤S220这两个步骤可以建立起浏览器与本地应用进程之间的连接。浏览器与本地应用进程之间的连接关系可以遵循Websocket协议。
步骤S230,经由步骤S220所建立的通信连接,接收浏览器发送的音视频信号的播放请求指令。该播放请求指令用于请求播放特定的音视频信号。当浏览器与本地应用进程建立起通信连接之后,本地应用进程可以接收浏览器发送的播放请求指令。与连接请求类似地,播放请求指令也可以经由本地端口进行传输。
步骤S240,根据播放请求指令,获取音视频信号的取流地址。
示例性地,播放请求指令可以包括关于音视频信号的取流地址的信息。取流地址可以是进程间通信(Inter-Process Communication)或其他提供视频流平台的网络地址。取流地址可以是例如实时流传输协议(Real Time Streaming Protocol,RTSP)地址、Websocket取流地址等。可以理解,对于每一个音视频信号而言有且仅有一个取流地址。
步骤S250,建立与取流地址的网络连接并自取流地址获取音视频信号的码流数据。
本地应用进程在获取了音视频信号的取流地址后可以建立与取流地址的网络连接。之后本地应用进程可以访问该取流地址并获取期望的音视频信号的码流数据以完成取流。码流数据可以指承载音视频信号的数据,其可以以音视频文件的形式存在。对于视频的码流数据,可以分为H264编码格式和非H264编码格式。
步骤S260,经由与浏览器的通信连接,将码流数据发送给浏览器,以由浏览器播放音视频信号。
本地应用进程在获取码流数据之后可以经由与浏览器的通信连接将该码流数据发送给浏览器。类似地,码流数据也可以通过本地端口发送,例如基于本地的环回地址。浏览器在接收到码流数据之后可以对对应的音视频信号进行播放。
根据上述技术方案,本申请的音视频播放方法不仅对音视频信号的码流数据的格式不做任何限制,支持多种码流数据的格式以及不同分辨率的音视频信号,而且能够支持各种主流浏览器。同时,由于该方案运行在本地客户端,无需远端服务器的参与即可实现上述方案;由此,不仅有效避免了现有技术中需要部署远端服务器仍然难以满足多路视频播放需求的弊端,而且避免了播放延迟。
示例性地,方法200还可以包括:根据播放请求指令,获取音视频信号的取流协议。其中,取流协议可以是国标G28181协议、RTSP协议等标准取流协议。取流协议还可以是第三方自定义的第三方取流协议。换言之,该实施例中,播放组件可以扩展其取流方式,例如可以是利用下载并安装的第三方设备厂家的软件开发工具包(SDK)所获取的取流方式。步骤S250可以包括:基于取流协议,自取流地址获取音视频信号的码流数据。可以理解,本地应用进程可以根据不同的取流协议自取流地址获取码流数据。基于第三方取流协议,本地应用进程可以获取第三方的具有私有编码格式的码流数据,以进行音视频播放。
上述技术方案可以利用主流的取流协议满足多数用户的需求。同时还考虑到用户可能播放第三方音视频信号的情况,上述技术方案具有可扩展性,支持第三方开发的取流方式,可以解决第三方音视频信号的播放问题。极大地提升了用户的使用体验。
示例性地,方法200还可以包括:根据播放请求指令,获取音视频信号的输出方式。音视频信号的输出方式可以表示音视频信号的输出格式。
在自取流地址获取音视频信号的码流数据之后,并且在将码流数据发送给浏览器之前,即在步骤S250和步骤S260之间还可以存在步骤S255。在步骤S255中,根据所获取的输出方式对码流数据进行处理,以获得符合输出方式的码流数据。可以理解,在该技术方案中,对码流数据的格式没有固定要求。浏览器最终所播放的音视频信号的格式仅与播放请求指令中的音视频信号的输出方式有关。
由此,本申请的音视频播放方法支持多种格式的码流数据,有效保证了浏览器可播放的音视频信号的泛化性。此外,对音视频信号的处理是在本地客户端进行的,将音视频播放的压力分摊到各个客户端,而不依赖远端服务器,使端到端的延迟能够缩小到300ms以内。
在一个具体实施例中,步骤S255可以通过以下步骤实现:对于码流数据的格式是H264编码格式的视频数据的情况,将码流数据封装为fmp4格式的码流数据。
本地应用进程在获取到码流数据后首先判断其格式。在该实施例中,本地应用进程获取的码流数据的格式是H264编码格式。本领域普通技术人员可以理解,H264编码格式是一种针对数字视频的压缩格式。针对这一编码格式的码流数据,本地应用进程可以将其封装为fmp4格式的码流数据。其中,对H264编码格式的码流数据进行封装的具体方法可以利用现有的或未来开发的技术来实现,在本申请中不对其进行限定。
封装后的码流数据经由通信连接自本地应用进程传输至浏览器,以由浏览器播放音视频信号。在该实施例中,浏览器播放音视频信号可以是使用符合媒体源扩展规范(扩展MSE)的视频(video)标签播放码流数据。其中,媒体源扩展规范是为了让超文本标记语言(HTML)支持流媒体操作的一个标准。video标签用于定义视频。示例性地,浏览器通过Range请求拉取码流数据,之后通过MediaSource对拉取到的码流数据进行处理。最后,将处理后的码流数据交给video标签。video标签对处理后的码流数据进行标识,以将其标记为视频。最终实现浏览器对该视频信号的播放。
根据上述技术方案,在本地实现对H264编码格式的视频数据的封装,不涉及远端服务器。因此,无需对远端服务器进行部署。此外,浏览器可以采用GPU硬解码、硬显示的方式,降低了CPU的使用率,避免了对***性能的影响。
在另一个具体实施例中,步骤S255还可以包括:对于码流数据的格式是非H264编码格式的视频数据的情况,将码流数据进行解码,以获得码流数据的明亮度和色度(YUV)信息。可以理解,非H264编码格式的视频数据是指除H264编码格式之外的其他编码格式的视频数据,例如,H265或MJPEG(Motion Joint Photographic Experts Group)等编码格式。如上所述,本地应用进程获取到码流数据后,可以首先判断其格式。在本实施例中,本地应用进程获取到的码流数据的格式是非H264编码格式。本地应用进程可以对码流数据进行软解码或硬解码,解码方法可以利用任何现有的或未来开发的技术实现,在此不做限定。对码流数据解码后,可以获得YUV信息。其中“Y”表示明亮度,也就是灰阶值。“U”和“V”表示色度,这些信息可以描述影像色彩以及饱和度,用于指定影像中像素的颜色。
在本实施例中,步骤S260将码流数据发送给浏览器以由浏览器播放音视频信号包括:将码流数据的YUV信息发送给浏览器,以由浏览器进行YUV渲染。
示例性地,浏览器可以通过WebGL(Web Graphics Library)利用码流数据的YUV信息进行YUV渲染。其中,WebGL是一种3D绘图协议。具体地可以通过以下步骤实现YUV渲染。1)初始化WebGL上下文initContextGL,获取webgl渲染上下文getContext();2)初始化着色器程序initProgram;3)初始化数据缓存initBuffers,其中包含顶点坐标系和纹理坐标系;4)创建纹理initTexture;5)初始化YUV纹理initTextures;6)上传YUV数据到纹理updateFrameData(width,height,data);7)显示帧数据SR_DisplayFrameData(width,height,data);8)设置显示区域SR_SetDisplayRect(stDisplayRect);9)释放显示资源SR_Destroy。根据上述步骤最终可以获得渲染后的多个视频帧,浏览器可以对多个视频帧进行顺序播放以实现对视频信号的播放。
上述技术方案中,将非H264格式的视频数据的YUV信息发送给浏览器,浏览器进行YUV渲染。在上述技术方案中,使用WebGL进行YUV渲染,这相当于GPU硬显示。由此,可以大幅降低浏览器的资源消耗。
在又一个具体实施例中,步骤S255还包括:对于码流数据是音频数据的情况,将码流数据解码为脉冲编码调制(PCM)的码流数据。音频数据的码流数据的格式可以为高级音频编码(Advanced Audio Coding,AAC)格式、G711编码格式等。经解码后的码流数据是时间连续,取值连续的模拟信号。PCM可以将该模拟信号变换成时间离散,取值离散的数字信号。之后,本地应用进程将其传输至浏览器,以实现浏览器对音频信号的播放。
在该技术方案中,可以将各种编码格式的音频数据的码流数据均转化为PCM编码格式。由此可以简化解码过程,并且保证浏览器获取的音频信号的格式是统一的,减轻了浏览器的工作负担。
图3示出了根据本发明另一个实施例的音视频播放方法的示意性流程图。如图3所示,浏览器与本地应用进程建立通信连接。本地应用进程经由该通信连接接收浏览器发送的播放请求指令,并获取了音视频信号的取流地址及输出方式。之后本地应用进程访问该取流地址,获取该音视频信号的码流数据。本地应用进程判断该码流数据是否是H264编码格式。当码流数据是非H264编码格式时,将其解码为YUV或PCM格式并发送至浏览器进行播放。当码流数据是H264编码格式时,将该码流数据封装为fmp4格式并发送至浏览器进行播放。前文已经对上述过程分别进行了详细阐述,为了简洁在此不再赘述。
示例性地,在步骤S250之后,方法200还包括:确定是否成功获取码流数据;对于未成功获取码流数据的情况,再次执行建立与取流地址的网络连接并自取流地址获取音视频信号的码流数据,直至成功获取码流数据。
首先本地应用进程判断是否成功地自取流地址获取到码流数据。可以理解,由于某种原因取流操作可能失败,例如,本地应用进程未能与取流地址成功建立起网络连接,取流地址不响应或网络连接错误等。当本地应用进程并未成功地自取流地址获取码流数据时,再次尝试建立与取流地址的网络连接。并在连接后再次获取码流数据。重复上述步骤,直至成功获取码流数据。在成功获取码流数据之后可以对码流数据进行相应地处理,最终实现对音视频信号的播放。
上述在取流失败的情况下,循环尝试取流的操作可以有效保证了音视频信号的准确及时地播放的概率,尽可能减少了播放失败的现象。
示例性地,音视频播放方法200还包括:经由通信连接,接收浏览器发送的音视频信号的播放控制指令。该步骤可以在浏览器播放音视频信号的过程中随时响应于用户的操作而发生。根据播放控制指令,控制浏览器播放音视频信号
播放控制指令用于控制音视频信号的播放。播放控制指令可以由用户经由例如鼠标、键盘等输入装置106输入至前端的浏览器中,之后浏览器经由通信连接将该播放控制指令发送至本地应用进程。播放控制指令可以包括以下指令中的一种或多种:暂停播放指令、恢复播放指令、视频录像指令和视频电子放大指令。根据播放控制指令,本地应用进程可以对码流数据进行相应的处理,以控制浏览器对音视频信号的播放情况。当本地应用进程接收到暂停播放指令时,可以暂停对码流数据的传输。即浏览器无法获得新的码流数据,也就无法继续播放音视频信号。对应地,恢复播放指令可以使暂停状态下的码流数据恢复传输,且开始传输点与暂停前保持一致,以保证浏览器播放音视频的连续性。视频录像指令可以表示在本地应用进程接收到这一指令时刻起开始对浏览器播放的视频进行录像。当本地应用进程再次接收到视频录像指令时,则立即停止录像过程。视频放大指令可以针对视频画面中的某一指定区域进行等比例放大,以保证放大图像不会失真。其中,视频放大指令中可以包含指定区域的坐标以及放大倍数。接收到视频放大指令之后可以根据其中的指定区域的坐标信息对视频画面进行裁剪,对裁剪后的图像按照放大倍数进行放大,以实现视频放大功能。
由此,基于播放控制指令可以实现用户对音视频信号播放情况的控制。保证了用户的观看收听体验。此外,用户可以根据需求向浏览器输入相应的播放控制指令。多种不同的播放控制指令可以极大地满足不同的用户需求,进一步保障了用户的使用体验。
示例性地,方法200还包括:响应于浏览器断开通信连接的操作,断开网络连接并停止自取流地址获取音视频信号的码流数据;清空所缓存的码流数据。
例如,断开通信连接可能通过用户关闭浏览器页面、停止当前音视频信号的播放等操作实现。当浏览器与本地应用进程断开通信连接时,本地应用进程同时断开与音视频信号的取流地址的网络连接。断开网络连接之后,本地应用进程则停止从该取流地址获取音视频信号的码流数据。可以表示对于该音视频信号而言,已经结束播放。由于内存是有限的,为了减小内存的占用,在每一个音视频信号播放完毕后,本地应用进程可以清空之前所缓存的码流数据,以便缓存新的音视频信号的码流数据。
由此,保证了本地应用进程的可用性,同时减少本地客户端的内存占用,保证了本地客户端的工作效率。
图4示出了根据本发明实施例的音视频播放方法的示意性时序图。如图4所示,首先浏览器响应用户的操作发送播放请求指令至本地应用进程。本地应用进程基于播放请求指令可以获取音视频信号的取流地址以及输出方式。之后本地应用进程连接该取流地址并基于相应的取流协议对音视频信号进行取流,以获取其码流数据。在此过程中,可能会发生取流失败的现象,本地应用进程可以循环执行上述取流操作,直至取流成功。取流成功后,本地应用进程根据音视频信号的输出方式对所获取的码流数据进行处理,以获取符合输出方式的码流数据。最后本地应用进程将处理后的码流数据发送给浏览器,由浏览器实现对音视频信号的播放。在播放过程中,可以响应于播放控制指令,控制音视频信号的播放情况。当音视频播放结束后或浏览器断开与本地应用进程的通信连接时,停止对音视频信号的播放。本地应用程序断开与取流地址的网络连接,停止取流。最后,本地应用进程将所缓存的码流数据清空,则完成一次音视频信号的播放过程。前文已经对上述过程分别进行了详细阐述,为了简洁在此不再赘述。
根据本发明的第二方面,提供一种音视频播放装置。图5示出了根据本发明一个实施例的音视频播放装置500的示意性框图。
如图5所示,装置500包括第一接收模块510、第一通信模块520、第二接收模块530、解析模块540、第二通信模块550和发送模块560。所述各个模块可分别执行上文中所述的音视频播放方法的各个步骤/功能。以下仅对该装置500的各部件的主要功能进行描述,而省略以上已经描述过的细节内容。
第一接收模块510用于监听本地端口,并经由本地端口接收浏览器的连接请求。
第一通信模块520用于基于连接请求,建立与浏览器的通信连接。
第二接收模块530用于经由通信连接,接收浏览器发送的音视频信号的播放请求指令
解析模块540用于根据播放请求指令,获取音视频信号的取流地址。
第二通信模块550用于建立与取流地址的网络连接并自取流地址获取音视频信号的码流数据。
发送模块560用于经由通信连接,将码流数据发送给浏览器,以由浏览器播放音视频信号。
上述第一接收模块510、第一通信模块520、第二接收模块530、解析模块540、第二通信模块550和发送模块560均可以由图1所示的电子设备中的处理器102运行存储装置104中存储的程序指令来实现。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
根据本发明的第三方面,提供一种音视频播放***。图6示出了根据本发明一个实施例的音视频播放***600的示意性框图。如图6所示,***600包括处理器610和存储器620。
存储器620中存储有计算机程序指令,计算机程序指令被处理器610运行时用于执行如上所述的音视频播放方法。
处理器610用于运行所述存储器620中存储的计算机程序指令,以执行根据本发明实施例的音视频播放方法的相应步骤,并且用于实现根据本发明实施例的音视频播放装置中的第一接收模块510、第一通信模块520、第二接收模块530、解析模块540、第二通信模块550和发送模块560。
示例性地,计算机程序指令构成一个播放组件。其中,播放组件在安装完成后,启动后台进程并保持常驻运行。
由此,可以实现对本地端口的实时监听,保证了音视频信号播放的实时性。
根据本发明的第四方面,提供一种存储介质。在存储介质上存储了程序指令,程序指令在运行时用于执行如上所述的音视频播放方法,并且用于实现根据本发明实施例的音视频播放装置中的相应模块。所述存储介质例如可以包括智能电话的存储卡、平板电脑的存储部件、个人计算机的硬盘、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、便携式紧致盘只读存储器(CD-ROM)、USB存储器、或者上述存储介质的任意组合。所述计算机可读存储介质可以是一个或多个计算机可读存储介质的任意组合。
根据本发明的第五方面,还提供了一种计算机程序产品,包括程序指令。程序指令在运行时用于执行如上所述的音视频播放方法。
尽管这里已经参考附图描述了示例实施例,应理解上述示例实施例仅仅是示例性的,并且不意图将本发明的范围限制于此。本领域普通技术人员可以在其中进行各种改变和修改,而不偏离本发明的范围和精神。所有这些改变和修改意在被包括在所附权利要求所要求的本发明的范围之内。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个设备,或一些特征可以忽略,或不执行。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本发明并帮助理解各个发明方面中的一个或多个,在对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该本发明的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如相应的权利要求书所反映的那样,其发明点在于可以用少于某个公开的单个实施例的所有特征的特征来解决相应的技术问题。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域的技术人员可以理解,除了特征之间相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的音视频播放装置中的一些模块的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
以上所述,仅为本发明的具体实施方式或对具体实施方式的说明,本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。本发明的保护范围应以权利要求的保护范围为准。

Claims (14)

1.一种音视频播放方法,包括:
监听本地端口,并经由所述本地端口接收浏览器的连接请求;
基于所述连接请求,建立与所述浏览器的通信连接;
经由所述通信连接,接收所述浏览器发送的音视频信号的播放请求指令;
根据所述播放请求指令,获取所述音视频信号的取流地址;
建立与所述取流地址的网络连接并自所述取流地址获取所述音视频信号的码流数据;以及
经由所述通信连接,将所述码流数据发送给所述浏览器,以由所述浏览器播放所述音视频信号。
2.如权利要求1所述的方法,其中,所述方法还包括:
根据所述播放请求指令,获取所述音视频信号的输出方式;
在所述自所述取流地址获取所述音视频信号的码流数据之后,并且在所述将所述码流数据发送给所述浏览器之前,根据所述输出方式对所述码流数据进行处理,以获得符合所述输出方式的码流数据。
3.如权利要求1或2所述的方法,其中,在所述自所述取流地址获取所述音视频信号的码流数据之后,并且在所述将所述码流数据发送给所述浏览器之前,所述方法还包括:
对于所述码流数据的格式是H264编码格式的视频数据的情况,将所述码流数据封装为fmp4格式的码流数据;
所述由所述浏览器播放所述音视频信号包括:
使用符合媒体源扩展规范的视频标签播放所述码流数据。
4.如权利要求1或2所述的方法,其中,在所述自所述取流地址获取所述音视频信号的码流数据之后,并且在所述将所述码流数据发送给所述浏览器之前,所述方法还包括:
对于所述码流数据的格式是非H264编码格式的视频数据的情况,将所述码流数据进行解码,以获得所述码流数据的明亮度和色度信息;
所述将所述码流数据发送给所述浏览器,以由所述浏览器播放所述音视频信号包括:
将所述码流数据的明亮度和色度信息发送给所述浏览器,以由所述浏览器进行明亮度和色度渲染。
5.如权利要求1或2所述的方法,其中,在所述自所述取流地址获取所述音视频信号的码流数据之后,并且在所述将所述码流数据发送给所述浏览器之前,所述方法还包括:
对于所述码流数据是音频数据的情况,将所述码流数据解码为脉冲编码调制的码流数据。
6.如权利要求1至5任一项所述的方法,其中,所述方法还包括:根据所述播放请求指令,获取所述音视频信号的取流协议;
所述自所述取流地址获取所述音视频信号的码流数据包括:基于所述取流协议,自所述取流地址获取所述码流数据。
7.如权利要求1至6任一项所述的方法,其中,在所述建立与所述取流地址的网络连接并自所述取流地址获取所述音视频信号的码流数据之后,所述方法还包括:
确定是否成功获取所述码流数据;
对于未成功获取所述码流数据的情况,再次执行所述建立与所述取流地址的网络连接并自所述取流地址获取所述音视频信号的码流数据,直至成功获取所述码流数据。
8.如权利要求1至7任一项所述的方法,其中,所述方法还包括:
经由所述通信连接,接收所述浏览器发送的音视频信号的播放控制指令;
根据所述播放控制指令,控制所述浏览器播放所述音视频信号。
9.如权利要求8所述的方法,其中,所述播放控制指令包括以下指令中的一种或多种:暂停播放指令、恢复播放指令、视频录像指令和视频电子放大指令。
10.如权利要求1至9任一项所述的方法,其中,所述方法还包括:
响应于所述浏览器断开所述通信连接的操作,断开所述网络连接并停止所述自所述取流地址获取所述音视频信号的码流数据;以及
清空所缓存的码流数据。
11.一种音视频播放***,包括处理器和存储器,其中,所述存储器中存储有计算机程序指令,所述计算机程序指令被所述处理器运行时用于执行如权利要求1至10任一项所述的音视频播放方法。
12.如权利要求11所述的***,其中,所述计算机程序指令构成一个播放组件,其中,所述播放组件在安装完成后,启动后台进程并保持常驻运行。
13.一种存储介质,在所述存储介质上存储了程序指令,所述程序指令在运行时用于执行如权利要求1至10任一项所述的音视频播放方法。
14.一种计算机程序产品,包括程序指令,所述程序指令在运行时用于执行如权利要求1至10任一项所述的音视频播放方法。
CN202111094908.XA 2021-09-17 2021-09-17 音视频播放方法、***、存储介质及计算机程序产品 Pending CN114040251A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111094908.XA CN114040251A (zh) 2021-09-17 2021-09-17 音视频播放方法、***、存储介质及计算机程序产品

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111094908.XA CN114040251A (zh) 2021-09-17 2021-09-17 音视频播放方法、***、存储介质及计算机程序产品

Publications (1)

Publication Number Publication Date
CN114040251A true CN114040251A (zh) 2022-02-11

Family

ID=80134516

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111094908.XA Pending CN114040251A (zh) 2021-09-17 2021-09-17 音视频播放方法、***、存储介质及计算机程序产品

Country Status (1)

Country Link
CN (1) CN114040251A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114285836A (zh) * 2022-03-03 2022-04-05 苏州万店掌网络科技有限公司 一种视频播放方法、装置及介质
CN115209222A (zh) * 2022-06-15 2022-10-18 深圳市锐明技术股份有限公司 一种视频播放方法、装置、电子设备及可读存储介质
CN115904462A (zh) * 2023-02-10 2023-04-04 中航金网(北京)电子商务有限公司 应用程序的升级方法、装置、电子设备及可读存储介质
CN116055789A (zh) * 2023-03-24 2023-05-02 杭州星犀科技有限公司 基于安卓***的直播画面放大方法、***、设备和介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180086112A (ko) * 2017-01-20 2018-07-30 한화에어로스페이스 주식회사 웹 브라우저에서 미디어를 재생하고 탐색하는 장치 및 방법
CN111372128A (zh) * 2020-03-11 2020-07-03 北京旷视科技有限公司 视频播放的方法、装置、计算机设备及可读存储介质
CN112073809A (zh) * 2020-08-09 2020-12-11 富盛科技股份有限公司 一种支持浏览器播放任意编码格式视频的方法
CN112312221A (zh) * 2019-07-31 2021-02-02 广州弘度信息科技有限公司 一种音视频播放方法、存储介质及装置
CN112422508A (zh) * 2020-10-19 2021-02-26 武汉烽火众智数字技术有限责任公司 一种在浏览器网页中播放视频的方法及***

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180086112A (ko) * 2017-01-20 2018-07-30 한화에어로스페이스 주식회사 웹 브라우저에서 미디어를 재생하고 탐색하는 장치 및 방법
CN112312221A (zh) * 2019-07-31 2021-02-02 广州弘度信息科技有限公司 一种音视频播放方法、存储介质及装置
CN111372128A (zh) * 2020-03-11 2020-07-03 北京旷视科技有限公司 视频播放的方法、装置、计算机设备及可读存储介质
CN112073809A (zh) * 2020-08-09 2020-12-11 富盛科技股份有限公司 一种支持浏览器播放任意编码格式视频的方法
CN112422508A (zh) * 2020-10-19 2021-02-26 武汉烽火众智数字技术有限责任公司 一种在浏览器网页中播放视频的方法及***

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114285836A (zh) * 2022-03-03 2022-04-05 苏州万店掌网络科技有限公司 一种视频播放方法、装置及介质
CN115209222A (zh) * 2022-06-15 2022-10-18 深圳市锐明技术股份有限公司 一种视频播放方法、装置、电子设备及可读存储介质
CN115209222B (zh) * 2022-06-15 2024-02-09 深圳市锐明技术股份有限公司 一种视频播放方法、装置、电子设备及可读存储介质
CN115904462A (zh) * 2023-02-10 2023-04-04 中航金网(北京)电子商务有限公司 应用程序的升级方法、装置、电子设备及可读存储介质
CN116055789A (zh) * 2023-03-24 2023-05-02 杭州星犀科技有限公司 基于安卓***的直播画面放大方法、***、设备和介质
CN116055789B (zh) * 2023-03-24 2023-08-11 杭州星犀科技有限公司 基于安卓***的直播画面放大方法、***、设备和介质

Similar Documents

Publication Publication Date Title
CN114040251A (zh) 音视频播放方法、***、存储介质及计算机程序产品
CN109327727B (zh) 一种WebRTC中的直播流处理方法及推流客户端
US20220263885A1 (en) Adaptive media streaming method and apparatus according to decoding performance
US10567809B2 (en) Selective media playing method and apparatus according to live streaming and recorded streaming
CN110324671B (zh) 网页视频播放方法及装置、电子设备及存储介质
US8639086B2 (en) Rendering of video based on overlaying of bitmapped images
US10979785B2 (en) Media playback apparatus and method for synchronously reproducing video and audio on a web browser
CN113542757B (zh) 云应用的图像传输方法、装置、服务器及存储介质
WO2022257699A1 (zh) 图像画面显示方法、装置、设备、存储介质及程序产品
US20160248833A1 (en) System and method for playing a video on mobile web environments
EP2409223A2 (en) Hosted application platform with extensible media format
CN110505511B (zh) 一种在网页中播放视频的方法、装置、***及计算设备
CN113938470B (zh) 一种浏览器播放rtsp数据源的方法、装置以及流媒体服务器
CN112843676B (zh) 数据处理方法、装置、终端、服务器及存储介质
WO2017080175A1 (zh) 用于多机位的视频播放器、播放***及播放方法
CN111464828A (zh) 虚拟特效显示方法、装置、终端及存储介质
CN104010204B (zh) 图像信息处理方法及装置
CN114302176A (zh) 视频播放方法及装置
KR102417055B1 (ko) 비디오 스트림의 후속 프로세싱을 위한 방법 및 디바이스
CN111083527A (zh) 应用的视频播放方法、装置、存储介质及电子设备
CN116347158A (zh) 视频播放的方法、装置、电子设备及计算机可读存储介质
CN116170636A (zh) 直播视频播放方法及其装置、设备、介质
US10547878B2 (en) Hybrid transmission protocol
KR102247892B1 (ko) 클라우드 스트리밍 서비스 시스템, 어플리케이션 코드를 이용한 이미지 클라우드 스트리밍 서비스 방법 및 이를 위한 장치
CN114222185A (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