CN113473237A - 一种视频通话方法、装置及设备 - Google Patents

一种视频通话方法、装置及设备 Download PDF

Info

Publication number
CN113473237A
CN113473237A CN202010358006.1A CN202010358006A CN113473237A CN 113473237 A CN113473237 A CN 113473237A CN 202010358006 A CN202010358006 A CN 202010358006A CN 113473237 A CN113473237 A CN 113473237A
Authority
CN
China
Prior art keywords
data stream
rtsp data
video call
rtsp
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.)
Granted
Application number
CN202010358006.1A
Other languages
English (en)
Other versions
CN113473237B (zh
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.)
Hisense Co Ltd
Original Assignee
Hisense 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 Hisense Co Ltd filed Critical Hisense Co Ltd
Priority to CN202010358006.1A priority Critical patent/CN113473237B/zh
Publication of CN113473237A publication Critical patent/CN113473237A/zh
Application granted granted Critical
Publication of CN113473237B publication Critical patent/CN113473237B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/47End-user applications
    • H04N21/478Supplemental services, e.g. displaying phone caller identification, shopping application
    • H04N21/4788Supplemental services, e.g. displaying phone caller identification, shopping application communicating with other users, e.g. chatting
    • 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/431Generation of visual interfaces for content selection or interaction; Content or additional data rendering
    • H04N21/4312Generation of visual interfaces for content selection or interaction; Content or additional data rendering involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations
    • 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/432Content retrieval operation from a local storage medium, e.g. hard-disk
    • 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/44016Processing 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 splicing one content stream with another content stream, e.g. for substituting a video clip
    • 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/443OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
    • H04N21/4438Window management, e.g. event handling following interaction with the user interface
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Telephonic Communication Services (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本申请公开了一种视频通话方法、装置及设备,用于解决现有重新将被停止进行视频通话的第一RTSP数据流接入视频通话中时耗时较多,降低用户体验的问题。本申请中第一RTSP数据流被第二RTSP数据流替换后,电子设备在接收到停止显示该第二RTSP数据流的第一停止指令时,因为第一RTSP数据流的缓存空间依然在缓存该第一RTSP数据流,因此可以直接从该缓存空间中获取该第一RTSP数据流对应的第一视频帧,并拼接显示,从而可以重新快速将第一RTSP数据流接入视频通话中,提高了用户体验。

Description

一种视频通话方法、装置及设备
技术领域
本申请涉及视频通话技术领域,尤其涉及一种视频通话方法、装置、***、设备及介质。
背景技术
随着视频通话技术的发展,在现有家庭中,智能管家服务器已经可以实现通过智能电视的显示界面进行实时的视频通话。
例如:爸爸通过客厅的图像采集设备与爷爷奶奶进行视频通话。妈妈正在厨房忙着做饭,无法抽身来到客厅。如果此时想要将厨房的图像采集设备的实时流媒体会话协议(Real Time Streaming Protocol,RTSP)数据流接入视频通话中,来获取妈妈在厨房的视频画面时,爸爸可以通过语音向智能管家服务器输入视频通话指令“接入厨房的图像采集设备”。智能管家服务器向厨房的图像采集设备发送拉取其RTSP数据流的通知,厨房的图像采集设备在接收到智能管家服务器发送的通知后,可以提示用户是否接入视频通话。如果接收到同意接入视频通话的信息,厨房的图像采集设备则会将RTSP数据流发送给智能管家服务器,智能管家服务器开始拉取厨房的图像采集设备的RTSP数据流,并将其RTSP数据流中的视频帧拼接到视频通话显示窗口,并在智能电视的显示界面中进行显示。
或者,爸爸、妈妈通过客厅的图像采集设备分别与爷爷奶奶家、叔叔伯伯家进行视频通话。各位亲朋好友想要观看女儿的钢琴表演。而钢琴不在客厅,或者不在客厅的图像采集设备的最佳观影位置,钢琴在琴房或者在女儿的卧室等其他家居场景,以钢琴在琴房为例进行举例说明,此时如果想将琴房的图像采集设备的RTSP数据流接入视频通话时,爸爸可以通过语音向智能管家服务器输入视频通话指令“接入琴房的图像采集设备”。智能管家服务器向琴房的图像采集设备发送拉取其RTSP数据流的通知,琴房的图像采集设备在接收到智能管家服务器发送的通知后,可以提示用户是否接入视频通话。如果接收到同意接入视频通话的信息,琴房的图像采集设备则会将RTSP数据流发送给智能管家服务器,智能管家服务器开始拉取琴房的图像采集设备的RTSP数据流,并将其RTSP数据流中的视频帧拼接到视频通话显示窗口,并在智能电视的显示界面中进行显示。
图1为现有技术提供的一种实现视频通话的***架构示意图,如图1所示:图像采集设备将RTSP数据流发送给智能管家服务器,同时云端服务器在接收到其他用户的RTSP数据流后,也将RTSP数据流发送给智能管家服务器,智能管家服务器对获取到的RTSP数据流中的视频帧进行处理,并将RTSP数据流中的音频帧和处理后的视频帧发送给智能电视显示视频通话的内容。
当进行多人视频通话时,以六人视频通话为例,图2为现有技术提供的一种实现视频通话的RTSP数据流的流向示意图,智能管家服务器从本地的图像采集设备获取到一路RTSP数据流,而其他的五路RTSP数据流需要从云端服务器中获取,六路RTSP数据流中的视频帧都在智能管家服务器中进行解码,解码后获得颜色编码(Luminance BandwidthChrominance,YUV)格式的视频帧,智能管家服务器实现六路YUV格式的视频帧的缩放和拼接,拼接为六宫格画面的YUV格式的视频帧,将拼接后的YUV格式的视频帧发送给高速通讯模块,通过该高速通讯模块发送到互联网电视(Over-The-Top TV,OTT)盒子,OTT盒子再通过高清多媒体接口(High Definition Multimedia Interface,HDMI)线发送给智能电视,通过智能电视的显示界面中进行显示。
然而,由于受到云端负荷和带宽等限制,接入视频通话的RTSP数据流的数量是有一定限制的。目前在当接入视频通话的RTSP数据流的数量达到预设的数量阈值后,如果需要将用户家中其他的图像采集设备的RTSP数据流接入到视频通话中时,智能管家服务器就需要先停止接收当前进行视频通话的第一图像采集设备的第一RTSP数据流,然后拉取待接入视频通话的第二图像采集设备的第二RTSP数据流,使第二RTSP数据流接入视频通话中。这样就会导致在第二RTSP数据流停止进行视频通话后,如果第一RTSP数据流还需接入视频通话,智能管家服务器还需要重新拉取第一RTSP数据流,使第一RTSP数据流接入视频通话中,而重新拉取第一RTSP数据流的过程会耗费一定的时间,从而降低用户体验。
发明内容
本申请提供了一种视频通话方法、装置、***、设备及介质,用于解决现有重新将被停止进行视频通话的第一RTSP数据流接入视频通话中时耗时较多,降低用户体验的问题。
第一方面,本申请提供了一种视频通话方法,所述方法包括:
接收第一停止指令;根据所述第一停止指令中携带的停止进行视频通话的第二图像采集设备的信息,停止接收所述第二图像采集设备采集的第二RTSP数据流;
根据所述第一停止指令,从存储第一RTSP数据流的缓存空间中获取对应的第一视频帧,其中,所述第一RTSP数据流为被第二RTSP数据流替换的数据流,将所述第一视频帧拼接到视频通话显示窗口所述第二RTSP数据流对应的显示位置并显示。
第二方面,本申请还提供了一种视频通话装置,所述装置包括:
接收单元,用于接收第一停止指令;根据所述第一停止指令中携带的停止进行视频通话的第二图像采集设备的信息,停止接收所述第二图像采集设备采集的第二RTSP数据流;
处理单元,用于根据所述第一停止指令,从存储第一RTSP数据流的缓存空间中获取对应的第一视频帧,其中,所述第一RTSP数据流为被第二RTSP数据流替换的数据流,将所述第一视频帧拼接到视频通话显示窗口所述第二RTSP数据流对应的显示位置并显示。
第三方面,本申请还提供了一种视频通话***,所述***包括上述任一所述的应用于电子设备的视频通话装置,以及用于将所述电子设备拼接到视频通话显示窗口的视频帧进行显示的智能电视。
第四方面,本申请还提供了一种电子设备,所述电子设备至少包括处理器和存储器,所述处理器用于执行存储器中存储的计算机程序时实现上述任一所述视频通话方法的步骤。
第五方面,本申请还提供了一种计算机可读存储介质,其存储有计算机程序,所述计算机程序被处理器执行时实现上述任一所述视频通话方法的步骤。
由于在本申请中,第一RTSP数据流被第二RTSP数据流替换后,电子设备在接收到停止显示该第二RTSP数据流的第一停止指令时,因为第一RTSP数据流的缓存空间依然在缓存该第一RTSP数据流,因此可以直接从该缓存空间中获取该第一RTSP数据流对应的第一视频帧,并拼接显示,从而可以重新快速将第一RTSP数据流接入视频通话中,提高了用户体验。
附图说明
图1为现有技术提供的一种实现视频通话的***架构示意图;
图2为现有技术提供的一种实现视频通话的RTSP数据流的流向示意图;
图3为本申请一些实施例提供的一种视频通话过程示意图;
图4为本申请一些实施例提供的电子设备拉取RTSP数据流的过程示意图;
图5为本申请一些实施例提供的一种两路视频通话实时RTSP数据流的Gstreamer管道解析流程框图示意图;
图6为本申请一些实施例提供的第一种视频通话的详细实施过程示意图;
图7为本申请一些实施例提供的家庭账户与子账户之间的关系示意图;
图8为本申请一些实施例提供的第二种视频通话的详细实施过程示意图;
图9为本申请一些实施例提供的第三种视频通话的详细实施过程示意图;
图10为本申请一些实施例提供的在第一RTSP数据流进行视频通话的基础上增加第二RTSP数据流进行视频通话的示意图;
图11为本申请一些实施例提供的第四种视频通话的详细实施过程示意图;
图12为本申请一些实施例提供的第一RTSP数据流被第二RTSP数据流替换后的示意图;
图13为本申请一些实施例提供的一种视频通话装置结构示意图;
图14为本申请一些实施例提供的一种电子设备结构示意图;
图15为本申请一些实施例提供的一种视频通话***结构示意图。
具体实施方式
第一RTSP数据流被第二RTSP数据流替换后,为了重新快速将第一RTSP数据流接入视频通话中,本申请提供了一种视频通话方法、装置、***、设备及介质。
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步的详细描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在实际应用过程中,电子设备可以分别拉取本地一个或多个图像采集设备的RTSP数据流,并接收云端服务器发送的一路或多路RTSP数据流,将多路RTSP数据流中的视频帧拼接到智能电视的视频通话显示窗口进行视频通话。在本申请中电子设备可以在第一RTSP数据流被第二RTSP数据流替换后,在接收到停止显示该第二RTSP数据流的第一停止指令时,从存储第一RTSP数据流的缓存空间中获取对应的第一视频帧,将第一视频帧拼接到智能电视的视频通话显示窗口第二RTSP数据流对应的显示位置并显示,以重新快速将第一RTSP数据流接入视频通话中。
实施例1:
图3为本申请一些实施例提供的一种视频通话过程示意图,该过程包括以下步骤:
S301:接收第一停止指令;根据所述第一停止指令中携带的停止进行视频通话的第二图像采集设备的信息,停止接收所述第二图像采集设备采集的第二RTSP数据流。
在本申请中,该视频通话方法应用于电子设备,该电子设备可以是智能管家服务器、也可以是其他智能设备。当电子设备为智能管家服务器时,智能管家服务器为位于本地的服务器。电子设备是基于Gstreamer框架的,其中,Gstreamer框架是一个创建流媒应用程序的框架,Gstreamer框架是基于插件的,插件可以方便地接入到该Gstreamer管道中,实现对代码的复用。
电子设备可以接收第一停止指令,第一停止指令可以是电子设备接收到对自身的触发操作后生成的指令,也可以是接收的其他智能设备发送的。而且,第一停止指令中携带有停止进行视频通话的第二图像采集设备的信息,以使电子设备可以获知停止接收哪个图像采集设备的RTSP数据流。其中该第二图像采集设备的信息可以是:第二图像采集设备所在房间的名称,如厨房、卧室等,或者还可以是第二图像采集设备的IP地址等信息中的一种或多种。
该第一停止指令可以是语音指令,当电子设备接收到该第一停止指令后,可以采用语音识别技术对第一停止指令进行语义识别,从而识别第一停止指令中携带的停止进行视频通话的第二图像采集设备的信息。
为了使电子设备可以根据图像采集设备的信息,确定该图像采集设备及其RTSP数据流,电子设备中可以预先保存图像采集设备的信息以及图像采集设备的RTSP数据流标识地址的对应关系。因为图像采集设备的信息可以是房间名称和/或图像采集设备的IP地址,因此可以保存图像采集设备所在房间名称、图像采集设备的IP地址和图像采集设备的RTSP数据流标识地址的对应关系,其中不同图像采集设备的IP地址不同,又因为图像采集设备的RTSP数据流标识地址中包括该图像采集设备的IP地址,所以不同图像采集设备对应的RTSP数据流标识地址也不同,可以根据图像采集设备的RTSP数据流标识地址中包含的图像采集设备的IP地址来区分不同的RTSP数据流。
因此当电子设备接收到第一停止指令后,根据第一停止指令中携带的停止进行视频通话的第二图像采集设备的信息,及保存的图像采集设备所在房间名称、图像采集设备的IP地址和图像采集设备的RTSP数据流标识地址的对应关系,确定第二图像采集设备的RTSP数据流的标识地址后。从而根据确定的第二RTSP数据流标识地址,停止接收第二图像采集设备采集的第二RTSP数据流。
S302:根据所述第一停止指令,从存储第一RTSP数据流的缓存空间中获取对应的第一视频帧,其中,所述第一RTSP数据流为被第二RTSP数据流替换的数据流,将所述第一视频帧拼接到视频通话显示窗口所述第二RTSP数据流对应的显示位置并显示。
本申请中,电子设备分别拉取本地一个或多个图像采集设备的RTSP数据流,并接收云端服务器发送的一路或多路RTSP数据流进行视频通话为现有技术,在此不再赘述。
图像采集设备可以是智感器、摄像头、摄像机等设备,图像采集设备采集到RTSP数据流后,可以通过有线传输和无线传输等方式,将RTSP数据流发送给电子设备。
图4为本申请提供的电子设备拉取RTSP数据流的过程示意图,如图4所示,每个本地图像采集设备可以通过网络(路由器)接入家庭局域网内,从而与电子设备连接,电子设备可以通过网络拉取本地图像采集设备的RTSP数据流,可以将本地RTSP数据流传送到云端服务器,也可以从云端服务器中获取RTSP数据流。
为了可以对接收的每个图像采集设备的RTSP数据流进行缓存,电子设备中分别为每个接收到的RTSP数据流设置有一一对应的缓存空间,因为每个图像采集设备的IP地址是不同的,电子设备可以根据图像采集设备的IP地址来区分不同图像采集设备的RTSP数据流对应的缓存空间。
电子设备接收到的RTSP数据流可能是本地图像采集设备发送的RTSP数据流,也可能云端服务器发送的RTSP数据流,图5为本申请一些实施例提供的一种两路视频通话实时RTSP数据流的Gstreamer管道解析流程框图示意图,如图5所示,电子设备中接收到的RTSP数据流中,其中一路RTSP数据流为从本地图像采集设备(如智感器)中获取的RTSP数据流,另一路RTSP数据流为从云端服务器中获取的RTSP数据流,两路RTSP数据流分别经过源(rtspsrc)、实时传输协议(Real-time Transport Protocol,RTP)数据包解析(rtph264depay)、编码格式解析器(h264parse)、解码器(omxh264dec)及显示插件(appsink插件)等步骤,生成解码后的两路的YUV格式的视频帧,缓存在各自对应的缓存空间中,电子设备从对应的缓存空间中获取视频帧,将该两路RTSP数据流的YUV格式的视频帧拼接为两宫格画面的YUV格式的视频帧,将该两宫格画面的YUV格式的视频帧通过高速通行模块发送到OTT机顶盒端,在智能电视显示界面中进行显示。
在本申请中,第一RTSP数据流被第二RTSP数据流替换后,电子设备并没有停止拉取第一RTSP数据流,而是一直在接收第一RTSP数据流,并将其缓存在第一RTSP数据流对应的缓存空间中。从而在接收到第一停止指令后,可以针对存储第一RTSP数据流的缓存空间,从第一RTSP数据流的缓存空间中获取对应的视频帧,将第一RTSP数据流的视频帧拼接到视频通话显示窗口第二RTSP数据流对应的位置并显示,以使第一RTSP数据流快速重新接入视频通话。
具体地,可以利用现有技术将第一RTSP数据流的视频帧拼接到视频通话显示窗口第二RTSP数据流对应的显示位置并显示,例如可以利用opencv接口从第一RTSP数据流对应的缓存空间获取解码后的YUV格式的视频帧,进而将该视频帧拼接到视频通话显示窗口第二RTSP数据流对应的显示位置并显示,在此不再赘述。
另外,电子设备的Gstreamer管道中用于视频通话时的音频帧和视频帧的拉取、解码、缩放、拼接和数据发送,也可以将该管道称为视频通话播放管道。图像采集设备的RTSP数据流中可以包含视频帧和/或音频帧,为了方便理解,在本申请中,用视频帧代表RTSP数据流中的视频帧和/或音频帧,例如在本申请中,RTSP数据流的视频帧拼接在视频通话显示窗口并显示,表示RTSP数据流中的视频帧显示在视频通话显示窗口,和/或音频帧在视频通话中进行播放。
由于在本申请中,第一RTSP数据流被第二RTSP数据流替换后,电子设备在接收到停止显示该第二RTSP数据流的第一停止指令时,因为第一RTSP数据流的缓存空间依然在缓存该第一RTSP数据流,因此可以直接从该缓存空间中获取对应第一RTSP数据流的第一视频帧,并拼接显示,从而可以重新快速将第一RTSP数据流接入视频通话中,提高了用户体验。
为了减少第一RTSP数据流重新接入视频通话的时耗,在上述各实施例的基础上,在本申请中,所述从存储第一RTSP数据流的缓存空间中获取对应的第一视频帧之前,所述方法还包括:
将接收所述第一RTSP数据流的Gstreamer管道中的临时消耗插件替换为显示插件。
在本申请中,电子设备是基于Gstreamer框架的,当电子设备拉取多个RTSP数据流接入视频通话时,可以分别为每个RTSP数据流创建一个对应的Gstreamer管道来接收RTSP数据流。
在第一RTSP数据流被第二RTSP数据流替换之后,因为第一RTSP数据流可以只消耗而不显示,所以可以采用临时消耗插件来消耗第一RTSP数据流,以实现既可以实时消耗第一RTSP数据流,使第一RTSP数据流重新接入到视频通话时不会有时延,又可以使第一RTSP数据流不显示。当第二RTSP数据流停止进行视频通话时,即电子设备接收到第一停止指令时,为了使被替换的第一RTSP数据流重新接入视频通话,可以将第一RTSP数据流的Gstreamer管道中的临时消耗插件替换为显示插件,从而使第一RTSP数据流通过显示插件解码为YUV格式的视频帧,可以从第一RTSP数据流对应的缓存空间获取解码后的YUV格式的第一视频帧,从而使第一RTSP数据流的第一视频帧可以显示在视频通话显示窗口。
在本申请中,显示插件可以为appsink插件。appsink插件作为显示插件将第一RTSP数据流解码为YUV格式的视频帧为现有技术,在此不再赘述。
在本申请中,第一RTSP数据流被第二RTSP数据流替换后,第一RTSP数据流的缓存空间依然在缓存该第一RTSP数据流,电子设备在接收到停止显示该第二RTSP数据流的第一停止指令时,可以将第一RTSP数据流的Gstreamer管道中的临时消耗插件替换为显示插件,并从第一RTSP数据流的缓存空间中获取该第一RTSP数据流解码为YUV格式的第一视频帧,并拼接显示,从而可以重新快速将第一RTSP数据流接入视频通话中,提高了用户体验。
在现有技术中当接入视频通话的RTSP数据流的数量达到预设的数量阈值后,如果想要将第二RTSP数据流接入视频通话,需要先停止接收第一RTSP数据流,之后拉取第二RTSP数据流,到此时大概需要消耗200ms左右的时间。在进行第二RTSP数据流拉取时,第二RTSP数据流的Gstreamer管道中插件创建、解码等大概需要消耗14ms左右的时间,到此时大概需要消耗214ms左右的时间。待第二RTSP数据流停止进行视频通话后,重新拉取第一RTSP数据流时,也大概需要消耗200ms左右的时间,拉取第二RTSP数据流及第二RTSP数据流停止进行视频通话后,拉取第一RTSP数据流的总消耗时长为414ms左右。在进行第一RTSP数据流拉取时,第一RTSP数据流的Gstreamer管道中插件创建、解码等大概需要消耗14ms左右的时间,到此时大概需要消耗428ms的时间。即现有技术在将第二RTSP数据流替换第一RTSP数据流接入视频通话,并在第二RTSP数据流停止进行视频通话后,再重新拉取第一RTSP数据流,将第一RTSP数据流重新接入视频通话的整个过程中,大概共需要消耗428ms左右的时间。
而本申请中即使第一RTSP数据流被替换后不在显示窗口显示,但是该第一RTSP数据流还一直被缓存,待第二RTSP数据流停止视频通话后,不需要重新拉取第一RTSP数据流,至少可以节省重新拉取第一RTSP数据流过程中大概需要消耗的200ms左右的时间。具体地,本申请中只在拉取第二RTSP数据流的过程中,大概需要消耗200ms左右的时间,在进行第二RTSP数据流拉取时,第二RTSP数据流的Gstreamer管道中插件创建、解码等大概需要消耗14ms左右的时间,到此时大概需要消耗214ms左右的时间。待第二RTSP数据流停止进行视频通话后,将第一RTSP数据流重新接入视频通话时,第一RTSP数据流的Gstreamer管道中插件创建、解码等大概需要消耗14ms左右的时间,到此时大概需要消耗228ms左右的时间。即本申请中在将第二RTSP数据流替换第一RTSP数据流接入视频通话,并在第二RTSP数据流停止进行视频通话后,将第一RTSP数据流重新接入视频通话的整个过程中,大概共需要消耗228ms左右的时间。由此可以看出,本申请相比现有技术可以大幅减少将第一RTSP数据流重新接入视频通话过程中的时耗,提高用户体验。
为了更顺利的实现将第一RTSP数据流的Gstreamer管道中的临时消耗插件替换为显示插件,在上述各实施例的基础上,在本申请中,将所述临时消耗插件替换为所述显示插件之前,所述方法还包括:
将所述Gstreamer管道的状态设置为暂停状态;
将所述临时消耗插件替换为所述显示插件之后,所述方法还包括:
将所述Gstreamer管道的状态设置为运行状态。
因此插件替换只有在管道处于暂停状态(GST_STATE_PAUSED)时才能实现,因此在将第一RTSP数据流的Gstreamer管道中的临时消耗插件替换为显示插件之前,可以先将Gstreamer管道的状态设置为暂停状态,在Gstreamer管道处于暂停状态时,将该管道中的临时消耗插件替换为显示插件。在临时消耗插件替换为显示插件之后,为了方便进行后续第一RTSP数据流的视频帧的拼接和显示,再将该第一RTSP数据流的Gstreamer管道设置为运行状态(GST_STATE_PLAYING),实现从第一RTSP数据流对应的缓存空间获取解码后的YUV格式的第一视频帧,并进行后续将第一RTSP数据流的第一视频帧进行拼接和显示的步骤。
具体地,可以通过应用程序调用gst_element_set_state接口函数来实现Gstreamer管道在不同状态之间的切换,例如可以在将临时消耗插件替换为显示插件之前,通过应用程序调用gst_element_set_state接口函数将Gstreamer管道的状态设置为暂停状态。在将临时消耗插件替换为显示插件之后,同样可以通过gst_element_set_state接口函数将Gstreamer管道的状态切换回运行状态。
图6为本申请一些实施例提供的第一种视频通话的详细实施过程示意图,该过程包括:
S601:接收携带有停止进行视频通话的第二图像采集设备的信息的第一停止指令,停止接收第二RTSP数据流。
S602:根据第一停止指令,将第一RTSP数据流的Gstreamer管道的状态设置为暂停状态。
S603:将第一RTSP数据流的Gstreamer管道中的fakesink插件替换为appsink插件。
S604:将第一RTSP数据流的Gstreamer管道的状态设置为运行状态。
S605:从第一RTSP数据流对应的缓存空间获取解码后的YUV格式的第一视频帧。
S606:将获取的解码后的YUV格式的第一视频帧拼接到视频通话显示窗口第二RTSP数据流对应的显示位置并显示。
为了实现第二RTSP数据流的接入,在上述各实施例的基础上,在本申请中,接收第一停止指令之前,所述方法还包括:
接收视频通话指令,所述视频通话指令中携带待接入视频通话的第二图像采集设备的信息,接收所述第二图像采集设备发送的第二RTSP数据流;
根据所述视频通话指令,确定所述第二RTSP数据流替换的第一RTSP数据流,在对应的缓存空间缓存所述第一RTSP数据流及所述第二RTSP数据流,并从所述第二RTSP数据流对应的缓存空间获取对应的视频帧,将所述视频帧拼接到视频通话显示窗口所述第一RTSP数据流对应的显示位置并显示。
当需要接入新的RTSP数据流到视频通话中时,用户可以向电子设备发送视频通话指令,视频通话指令可以是电子设备接收到对自身的触发操作后生成的指令,也可以是接收的其他智能设备发送的。
为了方便电子设备获知将哪个RTSP数据流接入到视频通话中,该视频通话指令中携带有待接入视频通话的第二图像采集设备的信息。其中,图像采集设备的信息可以与上述各实施例中图像采集设备的信息相同,根据第二图像采集设备的信息,确定第二图像采集设备的RTSP数据流标识地址的过程也与上述各实施例相同,在此不再赘述。
为了方便处理,在本申请中图像采集设备的信息还可以包括图像采集设备对应的子账户的信息。在本申请中,如果本地安装了多个图像采集设备,可以分别为每个图像采集设备设置子账户,下面以电子设备为智能管家服务器为例,对为每个图像采集设备设置子账户的步骤进行详细说明:
首先,创建一个家庭账户。
该家庭账户与智能管家服务器一一对应,一般来说,一个自然家庭因为一般只有一个智能管家服务器,因此为该家庭配置一个家庭账户即可。
为了方便对位于该自然家庭中的各个图像采集设备进行管理,针对该家庭中存在的各图像采集设备,在家庭账户下为每个图像采集设备创建对应的子账户。每个子账户对应不同的图像采集设备,可以理解的,智能管家服务器中可以预先保存图像采集设备的子账户以及图像采集设备的RTSP数据流标识地址的对应关系。该子账户可以携带图像采集设备所在的房间名称,例如可以包括图像采集设备所在的房间名称,或者图像采集设备所在的房间名称的标识等。因为智能管家服务器中预先保存图像采集设备的子账户以及图像采集设备的RTSP数据流标识地址的对应关系,因此当该图像采集设备的信息还包括图像采集设备对应的子账户的信息时,可以根据该子账户确定与其对应的图像采集设备的RTSP数据流标识地址。
图7为本申请一些实施例提供的家庭账户与子账户之间的关系示意图,可以先创建一个家庭账户,之后在该家庭账户下为每个图像采集设备创建对应的子账户,为了标识子账户及其归属的家庭账户,子账户中可以同时包含该家庭账户及子账户的信息。例如,家庭账户为家庭A,则客厅的图像采集设备对应的子账户可以为:家庭A·客厅;厨房的图像采集设备的子账户可以为:家庭A·厨房;卧室的图像采集设备的子账户可以为:家庭A·卧室;琴房的图像采集设备的子账户可以为:家庭A·琴房等。
一般情况下,在本申请中可以根据实际需求,在子账户中预先配置主账户,或者默认将某一房间的图像采集设备对应的子账户作为主账户。该主账户可以优先进行视频通话,并且如果视频通话指令中没有包含被替换的第一图像采集设备的信息时,默认该主账户对应的图像采集设备为第一图像采集设备。另外,为了能够在第二RTSP数据流停止进行视频通话时,可以快速将第一图像采集设备的第一RTSP数据流重新接入视频通话中,一般该第一图像采集设备为该主账户对应的图像采集设备,因此视频通话指令中可以只包含第二图像采集设备的信息,此时默认第二图像采集设备替换第一图像采集设备。
一般情况可以将客厅中的图像采集设备对应的子账户设置为主账户,即家庭A·客厅为主账户。
该视频通话指令可以是语音指令,电子设备接收到该视频通话指令后,可以采用语音识别技术对视频通话指令进行语义识别,从而识别视频通话指令中携带的待接入视频通话的第二图像采集设备的信息。
电子设备在确定待接入视频通话的第二图像采集设备的信息后,可以向第二图像采集设备发送拉取其RTSP数据流的通知。第二图像采集设备接收到电子设备发送的拉取RTSP数据流的通知后,可以提示用户是否接入视频通话。具体地,第二图像采集设备可以通过语音的形式提示用户是否接入视频通话。第二图像采集设备接收到用户的选择后,可以将用户的选择发送给电子设备,电子设备可以根据用户的选择进行相对应的操作。
如果用户选择的是“同意第二图像采集设备的第二RTSP数据流接入视频通话”,第二图像采集设备则会将第二RTSP数据流发送给电子设备,电子设备开始接收第二图像采集设备发送的第二RTSP数据流,电子设备将第二RTSP数据流中的视频帧拼接到视频通话显示窗口,并在智能电视的显示界面中进行显示。
如果用户选择“不同意第二图像采集设备的第二RTSP数据流接入视频通话”,第二图像采集设备则不会将第二RTSP数据流发送给电子设备,电子设备不进行后续接收第二RTSP数据流的步骤,同时,电子设备也不进行后续将第二RTSP数据流的视频帧拼接到视频通话显示窗口的步骤。
当接收到视频通话指令时,可能当前接入视频通话的RTSP数据流的数量已经达到预设的数量阈值,根据视频通话指令中携带的待接入视频通话的第二图像采集设备的信息,需要确定第二RTSP数据流替换哪个RTSP数据流。
在本申请中,在显示第二RTSP数据流之前,确定被第二RTSP数据流替换的第一RTSP数据流。如果视频通话指令中只包含第二图像采集设备的信息,此时默认将预先设置的主账户对应的RTSP数据流作为被替换的第一RTSP数据流。如果视频通话指令中也包含第一图像采集设备的信息,可以将视频通话指令中包含的第一图像采集设备的RTSP数据流作为被替换的第一RTSP数据流。
并且为了保证后续被替换的第一RTSP数据流可以快速重新接入视频通话中,将接收到的该第一RTSP数据流继续缓存到其对应的缓存空间。
另外接收到第二RTSP数据流后,为了方便后续将第二RTSP数据流的第二视频帧拼接到视频通话显示窗口,对该第二RTSP数据流解码后将其保存到该第二RTSP数据流对应的缓存空间,在拼接时,从该第二RTSP数据流对应的缓存空间获取该第二RTSP数据流解码后的YUV格式的视频帧,替换第一RTSP数据流,拼接在视频通话显示窗口第一RTSP数据流对应的显示位置并显示。
为了进一步提高用户体验,在上述实施例的基础上,在本申请中,所述根据所述视频通话指令,确定所述第二RTSP数据流替换的第一RTSP数据流包括:
若所述视频通话指令为替换指令,所述替换指令中携带将第一图像采集设备替换为所述第二图像采集设备的信息,将所述第一图像设备采集的RTSP数据流作为被替换的第一RTSP数据流。
在本申请中,为了方便确定被替换的第一RTSP数据流,该视频通话指令可以是替换指令,该替换指令中携带将第一图像采集设备替换为第二图像采集设备的信息。例如替换指令为“将客厅的图像采集设备替换为厨房的图像采集设备”,则电子设备可以确定被替换的第一RTSP数据流对应的房间名称为客厅,从而根据预先保存的图像采集设备的信息以及图像采集设备的RTSP数据流标识地址的对应关系,将客厅的图像采集设备的RTSP数据流作为被替换的第一RTSP数据流。同时,也可以根据该替换指令,确定待接入视频通话的第二图像采集设备的房间名称为厨房,从而确定待接入视频通话的第二RTSP数据流。
为了进一步提高用户体验,在上述各实施例的基础上,在本申请中,所述根据所述视频通话指令,确定所述第二RTSP数据流替换的第一RTSP数据流包括:
若所述视频通话指令为接入指令,判断当前接入的视频通话的RTSP数据流的数量达到预设的数量阈值时,确定所述第二RTSP数据流替换预先设置的第一RTSP数据流。
由于受到云端负荷和带宽等限制,接入视频通话的RTSP数据流的数量是有一定限制的,所以可以预先设置可以同时接入视频通话中的RTSP数据流的数量阈值。在本申请中,可以在接入视频通话中的RTSP数据流的数量达到数量阈值时,将第二RTSP数据流替换预先设置的第一RTSP数据流接入视频通话。值的说明的是,在接入视频通话中的RTSP数据流的数量没有达到数量阈值时,可以采用第二RTSP数据流替换预先设置的第一RTSP数据流接入视频通话的方式,也可以直接将第二RTSP数据流和接入视频通话,此时该第二RTSP数据流与第一RTSP数据流都被接入视频通话,具体可以根据用户需求灵活选择。
在本申请中,当视频通话指令是接入指令时,电子设备可以先判断当前接入的视频通话的RTSP数据流的数量是否达到预设的数量阈值,若是,确定第二RTSP数据流替换预先设置的主账户对应的第一RTSP数据流。
可以理解地,若电子设备判断当前接入的视频通话的RTSP数据流的数量没有达到预设的数量阈值,可以基于现有技术将第二RTSP数据流接入到视频通话中,在此不再赘述。
图8为本申请一些实施例提供的第二种视频通话的详细实施过程示意图,该过程包括:
S801:接收到接入指令,其中该接入指令中携带待进行视频通话的第二图像采集设备的信息,接收第二图像采集设备发送的第二RTSP数据流。
S802:判断当前接入的视频通话的RTSP数据流的数量是否达到预设的数量阈值,若是,则进行S803,若否,则进行S804。
S803:确定第二RTSP数据流替换预先设置的第一RTSP数据流,将接收的第二RTSP数据流的第二视频帧拼接到视频通话显示窗口第一RTSP数据流对应的显示位置并显示。
S804:确定视频通话显示窗口中的空闲显示区域,将接收的第二RTSP数据流的视频帧拼接到该视频通话显示窗口的空闲显示区域并显示。
其中,将第二RTSP数据流的视频帧拼接到该视频通话显示窗口的空闲显示区域并显示时,第一RTSP数据流不受该第二RTSP数据流接入视频通话的影响,第一RTSP数据流的第一视频帧和第二RTSP数据流的第二视频帧都被拼接到视频通话显示窗口。
图9为本申请一些实施例提供的第三种视频通话的详细实施过程示意图,该过程包括:
S901:接收到接入指令,接入指令中携带待进行视频通话的第二图像采集设备的信息,接收第二图像采集设备发送的第二RTSP数据流。
S902:判断当前接入的视频通话的RTSP数据流的数量是否达到预设的数量阈值,若是,进行S903,若否,进行S907。
S903:确定第二RTSP数据流替换预先设置的第一RTSP数据流,在对应的缓存空间缓存第一RTSP数据流及第二RTSP数据流,并从第二RTSP数据流对应的缓存空间获取对应的视频帧,将第二RTSP数据流的视频帧拼接到视频通话显示窗口第一RTSP数据流对应的显示位置并显示。
S904:接收到第一停止指令,第一停止指令中携带停止进行视频通话的第二图像采集设备的信息。
S905:停止接收第二RTSP数据流。
S906:根据第一停止指令,从第一RTSP数据流对应的缓存空间获取第一视频帧,将第一RTSP数据流的第一视频帧拼接到视频通话显示窗口第二RTSP数据流对应的显示位置并显示。
S907:确定视频通话显示窗口中的空闲显示区域,将第二RTSP数据流的视频帧拼接到该视频通话显示窗口的空闲显示区域并显示。
图10为本申请一些实施例提供的在第一RTSP数据流进行视频通话的基础上增加第二RTSP数据流进行视频通话的示意图,其中图中左侧(图中所示左右)为第一RTSP数据流进行视频通话的示意图,图中右侧(图中所示左右)为在第一RTSP数据流视频通话的基础上增加第二RTSP数据流进行视频通话的示意图。
为了更好的对第一RTSP数据流进行缓存,在上述各实施例的基础上,在本申请中,所述根据所述视频通话指令,确定所述第二RTSP数据流替换的第一RTSP数据流之后,所述方法还包括:
将接收所述第一RTSP数据流的Gstreamer管道中用于显示所述第一RTSP数据流的视频帧的显示插件替换为临时消耗插件。
在本申请中,因为电子设备是基于Gstreamer框架的,在第一RTSP数据流被第二RTSP数据流替换之前,通过采用显示插件接收第一RTSP数据流的Gstreamer管道中的第一RTSP数据流的视频帧,以使第一RTSP数据流的视频帧可以显示在视频通话显示窗口。而在第一RTSP数据流被第二RTSP数据流替换之后,第一RTSP数据流只缓存而不显示,此时可以采用临时消耗插件替换显示插件来消耗第一RTSP数据流,以实现既可以实时消耗第一RTSP数据流,使第一RTSP数据流重新接入到视频通话时不会有时延,又可以使第一RTSP数据流不显示。在临时消耗插件替换显示插件后,消耗第一RTSP数据流的过程中,并不会将第一RTSP数据流解码为YUV格式的视频帧。
在本申请中,临时消耗插件为fakesink插件。由于fakesink插件可以接收Gstreamer框架中管道上的任何数据流,并且fakesink插件只接收管道上数据流中的视频帧而对视频帧不进行显示,所以调用fakesink插件替换显示插件消耗数据流时,不会中断对第一RTSP数据流的接收,并且会将接收到的第一RTSP数据流全部消耗,因此可以使第一RTSP数据流重新接入到视频通话时不会有时延。
为了实现将显示插件替换为临时消耗插件,在上述各实施例的基础上,在本申请中,将所述显示插件替换为所述临时消耗插件之前,所述方法还包括:
将所述Gstreamer管道的状态设置为暂停状态;
将所述显示插件替换为所述临时消耗插件之后,所述方法还包括:
将所述Gstreamer管道的状态设置为运行状态。
因此插件替换只有在管道处于暂停状态时才能实现,因此在将第一RTSP数据流的Gstreamer管道中的显示插件替换为临时消耗插件之前,可以先将Gstreamer管道的状态设置为暂停状态,在Gstreamer管道处于暂停状态时,将该管道中用于显示所述第一RTSP数据流的视频帧的显示插件替换为临时消耗插件,在显示插件替换为临时消耗插件之后,为了方便进行后续第一RTSP数据流的缓存和消耗,再将该第一RTSP数据流的Gstreamer管道设置为运行状态。
具体的,电子设备可以通过应用程序调用gst_element_set_state接口函数来实现Gstreamer管道在不同状态之间的切换,例如在将显示插件替换为临时消耗插件之前,可以通过应用程序调用gst_element_set_state接口函数将Gstreamer管道的状态设置为暂停状态,在显示插件替换为临时消耗插件之后,同样可以通过gst_element_set_state接口函数将Gstreamer管道的状态设置为运行状态。
图11为本申请一些实施例提供的第四种视频通话的详细实施过程示意图,该过程包括:
S1101:接收视频通话指令,视频通话指令中携带待接入视频通话的第二图像采集设备的信息,接收第二图像采集设备发送的第二RTSP数据流。
其中,为第二RTSP数据流创建一个对应的Gstreamer管道来接收该第二RTSP数据流。
S1102:根据视频通话指令,在对应的缓存空间缓存第二RTSP数据流。
S1103:根据接收到的视频通话指令,确定第二RTSP数据流替换的第一RTSP数据流,将第一RTSP数据流的Gstreamer管道的状态设置为暂停状态。
S1104:将第一RTSP数据流的Gstreamer管道中的appsink插件替换为fakesink插件。
S1105:将第一RTSP数据流的Gstreamer管道的状态设置为运行状态,在对应的缓存空间继续缓存第一RTSP数据流。
S1106:从第二RTSP数据流对应的缓存空间获取解码后的YUV格式的第二视频帧,将第二视频帧拼接到视频通话显示窗口第一RTSP数据流对应的显示位置并显示。
值的说明的是,上述视频通话过程所包含的步骤只是一种举例说明,本申请对S1101-S102与S1103-S1105之间的先后顺序不做限定,即接收到视频通话指令后,是先缓存第二RTSP数据流,还是先确定第二RTSP数据流替换的第一RTSP数据流两个步骤之间的先后顺序不做限定。
其中,图12为本申请一些实施例提供的第一RTSP数据流被第二RTSP数据流替换后的示意图,图中左侧(图中所述左右)为第一RTSP数据流进行视频通话,图中右侧(图中所述左右)为第一RTSP数据流被第二RTSP数据流替换后,第二RTSP数据流进行视频通话。
另外,Gstreamer管道的状态还包括现有技术中的空(NULL)状态,和准备就绪(READY)状态,因为和本申请关系不大,在此不再赘述。
基于相同的技术构思,本申请还提供一种视频通话装置,该对象推送装置可实现前述实施例中电子设备所执行的流程。
图13为本申请一些实施例提供的一种视频通话装置结构示意图,如图13所示,在上述各实施例的基础上,本申请提供的一种视频通话装置,所述装置包括:
接收单元1301,用于接收第一停止指令;根据所述第一停止指令中携带的停止进行视频通话的第二图像采集设备的信息,停止接收所述第二图像采集设备采集的第二RTSP数据流;
处理单元1302,用于根据所述第一停止指令,从存储第一RTSP数据流的缓存空间中获取对应的第一视频帧,其中,所述第一RTSP数据流为被第二RTSP数据流替换的数据流,将所述第一视频帧拼接到视频通话显示窗口所述第二RTSP数据流对应的显示位置并显示。
在某些实施例中,所述接收单元1301,还用于接收第一停止指令之前,接收视频通话指令,所述视频通话指令中携带待接入视频通话的第二图像采集设备的信息,接收所述第二图像采集设备发送的第二RTSP数据流;
所述处理单元1302,还用于确定所述第二RTSP数据流替换的第一RTSP数据流,在对应的缓存空间缓存所述第一RTSP数据流及所述第二RTSP数据流,并从所述第二RTSP数据流对应的缓存空间获取对应的第二视频帧,将所述第二视频帧拼接到视频通话显示窗口所述第一RTSP数据流对应的显示位置并显示。
在某些实施例中,所述处理单元1302,具体用于若所述视频通话指令为接入指令,判断当前接入的视频通话的RTSP数据流的数量达到预设的数量阈值时,确定所述第二RTSP数据流替换预先设置的第一RTSP数据流。
在某些实施例中,所述处理单元1302,具体用于若所述视频通话指令为替换指令,所述替换指令中携带将第一图像采集设备替换为所述第二图像采集设备的信息,将所述第一图像设备采集的RTSP数据流作为被替换的第一RTSP数据流。
在某些实施例中,所述处理单元1302,还用于根据所述视频通话指令,确定所述第二RTSP数据流替换的第一RTSP数据流之后,将接收所述第一RTSP数据流的Gstreamer管道中用于显示所述第一RTSP数据流的视频帧的显示插件替换为临时消耗插件。
在某些实施例中,所述处理单元1302,还用于将所述显示插件替换为所述临时消耗插件之前,将所述Gstreamer管道的状态设置为暂停状态;
将所述显示插件替换为所述临时消耗插件之后,将所述Gstreamer管道的状态设置为运行状态。
在某些实施例中,所述处理单元1302,还用于从存储第一RTSP数据流的缓存空间中获取对应的第一视频帧之前,将接收所述第一RTSP数据流的Gstreamer管道中的临时消耗插件替换为显示插件。
在某些实施例中,所述处理单元1302,还用于将所述临时消耗插件替换为所述显示插件之前,将所述Gstreamer管道的状态设置为暂停状态;
将所述临时消耗插件替换为所述显示插件之后,将所述Gstreamer管道的状态设置为运行状态。
在本申请中该视频通话装置所涉及的与本申请提供的技术方案相关的概念,解释和详细说明及其它步骤请参见前述方法或其它实施例中关于这些内容的描述,此处不做赘述。
图14为本申请一些实施例提供的一种电子设备结构示意图,在上述各实施例的基础上,本申请还提供了一种电子设备,如图14所示,包括:处理器1401、通信接口1402、存储器1403和通信总线1404,其中,处理器1401,通信接口1402,存储器1403通过通信总线1404完成相互间的通信;
所述存储器1403中存储有计算机程序,当所述程序被所述处理器1401执行时,使得所述处理器1401以完成上述方法中电子设备执行相应功能的步骤。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口1402用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选地,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述处理器可以是通用处理器,包括中央处理器、网络处理器(NetworkProcessor,NP)等;还可以是数字指令处理器(Digital Signal Processing,DSP)、专用集成电路、现场可编程门陈列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。
在上述各实施例的基础上,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有可由电子设备执行的计算机程序,计算机可执行指令用于使计算机执行前述方法部分所执行的流程。
上述计算机可读存储介质可以是电子设备中的处理器能够存取的任何可用介质或数据存储设备,包括但不限于磁性存储器如软盘、硬盘、磁带、磁光盘(MO)等、光学存储器如CD、DVD、BD、HVD等、以及半导体存储器如ROM、EPROM、EEPROM、非易失性存储器(NANDFLASH)、固态硬盘(SSD)等。
图15为本申请一些实施例提供的一种视频通话***结构示意图,在上述各实施例的基础上,本申请提供了一种视频通话***,包括:上述实施例中任一所述的应用于电子设备1500的视频通话装置,以及用于将所述电子设备1500拼接到视频通话显示窗口的视频帧进行显示的智能电视1600。
电子设备1500,用于接收第一停止指令,根据所述第一停止指令中携带的停止进行视频通话的第二图像采集设备的信息,停止接收所述第二图像采集设备采集的第二RTSP数据流;根据所述第一停止指令,从存储第一RTSP数据流的缓存空间中获取对应的第一视频帧,其中,所述第一RTSP数据流为被第二RTSP数据流替换的数据流,将所述第一视频帧拼接到智能电视1600的视频通话显示窗口所述第二RTSP数据流对应的显示位置并显示。
其中,电子设备的具体功能参见上述描述,在此不再赘述。
智能电视1600为现有技术中可以将电子设备1500拼接到视频通话显示窗口的视频帧进行显示的智能电视,在此不再赘述。
由于在本申请中,第一RTSP数据流被第二RTSP数据流替换后,电子设备在接收到停止显示该第二RTSP数据流的第一停止指令时,因为第一RTSP数据流的缓存空间依然在缓存该第一RTSP数据流,因此可以直接从该缓存空间中获取该第一RTSP数据流对应的第一视频帧,并拼接显示,从而可以重新快速将第一RTSP数据流接入视频通话中,提高了用户体验。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (10)

1.一种视频通话方法,其特征在于,所述方法包括:
接收第一停止指令;根据所述第一停止指令中携带的停止进行视频通话的第二图像采集设备的信息,停止接收所述第二图像采集设备采集的第二RTSP数据流;
根据所述第一停止指令,从存储第一RTSP数据流的缓存空间中获取对应的第一视频帧,其中,所述第一RTSP数据流为被第二RTSP数据流替换的数据流,将所述第一视频帧拼接到视频通话显示窗口所述第二RTSP数据流对应的显示位置并显示。
2.根据权利要求1所述的方法,其特征在于,所述接收第一停止指令之前,所述方法还包括:
接收视频通话指令,所述视频通话指令中携带待接入视频通话的第二图像采集设备的信息,接收所述第二图像采集设备发送的第二RTSP数据流;
根据所述视频通话指令,确定所述第二RTSP数据流替换的第一RTSP数据流,在对应的缓存空间缓存所述第一RTSP数据流及所述第二RTSP数据流,并从所述第二RTSP数据流对应的缓存空间获取对应的第二视频帧,将所述第二视频帧拼接到视频通话显示窗口所述第一RTSP数据流对应的显示位置并显示。
3.根据权利要求2所述的方法,其特征在于,所述根据所述视频通话指令,确定所述第二RTSP数据流替换的第一RTSP数据流包括:
若所述视频通话指令为接入指令,判断当前接入的视频通话的RTSP数据流的数量达到预设的数量阈值时,确定所述第二RTSP数据流替换预先设置的第一RTSP数据流。
4.根据权利要求2所述的方法,其特征在于,所述根据所述视频通话指令,确定所述第二RTSP数据流替换的第一RTSP数据流包括:
若所述视频通话指令为替换指令,所述替换指令中携带将第一图像采集设备替换为所述第二图像采集设备的信息,将所述第一图像设备采集的RTSP数据流作为被替换的第一RTSP数据流。
5.根据权利要求2-4任一项所述的方法,其特征在于,所述根据所述视频通话指令,确定所述第二RTSP数据流替换的第一RTSP数据流之后,所述方法还包括:
将接收所述第一RTSP数据流的Gstreamer管道中用于显示所述第一RTSP数据流的视频帧的显示插件替换为临时消耗插件。
6.根据权利要求5所述的方法,其特征在于,将所述显示插件替换为所述临时消耗插件之前,所述方法还包括:
将所述Gstreamer管道的状态设置为暂停状态;
将所述显示插件替换为所述临时消耗插件之后,所述方法还包括:
将所述Gstreamer管道的状态设置为运行状态。
7.根据权利要求1所述的方法,其特征在于,所述从存储第一RTSP数据流的缓存空间中获取对应的第一视频帧之前,所述方法还包括:
将接收所述第一RTSP数据流的Gstreamer管道中的临时消耗插件替换为显示插件。
8.根据权利要求7所述的方法,其特征在于,将所述临时消耗插件替换为所述显示插件之前,所述方法还包括:
将所述Gstreamer管道的状态设置为暂停状态;
将所述临时消耗插件替换为所述显示插件之后,所述方法还包括:
将所述Gstreamer管道的状态设置为运行状态。
9.一种视频通话装置,其特征在于,所述装置包括:
接收单元,用于接收第一停止指令;根据所述第一停止指令中携带的停止进行视频通话的第二图像采集设备的信息,停止接收所述第二图像采集设备采集的第二RTSP数据流;
处理单元,用于根据所述第一停止指令,从存储第一RTSP数据流的缓存空间中获取对应的第一视频帧,其中,所述第一RTSP数据流为被第二RTSP数据流替换的数据流,将所述第一视频帧拼接到视频通话显示窗口所述第二RTSP数据流对应的显示位置并显示。
10.一种电子设备,其特征在于,所述电子设备至少包括处理器和存储器,所述处理器用于执行存储器中存储的计算机程序时实现如权利要求1-8中任一所述视频通话方法的步骤。
CN202010358006.1A 2020-04-29 2020-04-29 一种视频通话方法、装置及设备 Active CN113473237B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010358006.1A CN113473237B (zh) 2020-04-29 2020-04-29 一种视频通话方法、装置及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010358006.1A CN113473237B (zh) 2020-04-29 2020-04-29 一种视频通话方法、装置及设备

Publications (2)

Publication Number Publication Date
CN113473237A true CN113473237A (zh) 2021-10-01
CN113473237B CN113473237B (zh) 2022-05-27

Family

ID=77865920

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010358006.1A Active CN113473237B (zh) 2020-04-29 2020-04-29 一种视频通话方法、装置及设备

Country Status (1)

Country Link
CN (1) CN113473237B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050237379A1 (en) * 2004-04-23 2005-10-27 Brooksby Scot L System and method for collection and redistribution of video conferences
CN101317363A (zh) * 2006-05-26 2008-12-03 华为技术有限公司 终端通话过程中的媒体流替换方法及***
CN104184982A (zh) * 2013-05-28 2014-12-03 华为技术有限公司 音视频通信方法、***、终端设备及音视频通话服务中心
CN108063908A (zh) * 2017-12-20 2018-05-22 维沃移动通信有限公司 一种视频通话方法、装置及移动终端

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050237379A1 (en) * 2004-04-23 2005-10-27 Brooksby Scot L System and method for collection and redistribution of video conferences
CN101317363A (zh) * 2006-05-26 2008-12-03 华为技术有限公司 终端通话过程中的媒体流替换方法及***
CN104184982A (zh) * 2013-05-28 2014-12-03 华为技术有限公司 音视频通信方法、***、终端设备及音视频通话服务中心
CN108063908A (zh) * 2017-12-20 2018-05-22 维沃移动通信有限公司 一种视频通话方法、装置及移动终端

Also Published As

Publication number Publication date
CN113473237B (zh) 2022-05-27

Similar Documents

Publication Publication Date Title
CN109257646B (zh) 视频处理方法、装置、电子设备及计算机可读介质
CN110557670B (zh) 在网页页面中播放视频的方法、装置、终端和存储介质
CN110636346B (zh) 一种码率自适应切换方法、装置、电子设备及存储介质
CN111147947B (zh) 一种基于websocket的flv视频传输及网页播放的方法
CN105359544B (zh) 数字视频流传输中的特技播放
CN113473126B (zh) 视频流的处理方法、装置、电子设备及计算机可读介质
US11356739B2 (en) Video playback method, terminal apparatus, and storage medium
CN112653700A (zh) 一种基于webrtc网页视频通信的方法
WO2017080175A1 (zh) 用于多机位的视频播放器、播放***及播放方法
WO2018192183A1 (zh) 无线传屏中视频文件的处理方法及装置
KR20180102501A (ko) 홈 시네마 시스템 디바이스들
WO2024139129A1 (zh) 一种多媒体播放方法、浏览器及电子设备
CN113141522A (zh) 资源传输方法、装置、计算机设备及存储介质
CN103957445A (zh) 一种基于应用虚拟化技术的视频重定向***及方法
CN113473237B (zh) 一种视频通话方法、装置及设备
CN112714341B (zh) 信息获取方法、云化机顶盒***、实体机顶盒及存储介质
CN109120881B (zh) 一种多方会议控制方法、***及终端
CN103826158A (zh) 一种网络直播装置和方法
CN114374869B (zh) 一种全景视频播放方法、装置及计算机存储介质
CN113709447B (zh) 一种终端设备播放性能的检测方法和装置
CN114339284A (zh) 直播延迟的监控方法、设备、存储介质及程序产品
CN112055238B (zh) 视频播放的控制方法、设备及***
WO2016107174A1 (zh) 多媒体文件数据的处理方法及***、播放器和客户端
CN113747181A (zh) 基于远程桌面的网络直播方法、直播***及电子设备
CN116781973B (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