CN114363654A - 一种视频推流方法、装置、终端设备及存储介质 - Google Patents

一种视频推流方法、装置、终端设备及存储介质 Download PDF

Info

Publication number
CN114363654A
CN114363654A CN202210033822.4A CN202210033822A CN114363654A CN 114363654 A CN114363654 A CN 114363654A CN 202210033822 A CN202210033822 A CN 202210033822A CN 114363654 A CN114363654 A CN 114363654A
Authority
CN
China
Prior art keywords
camera
application
data stream
image data
window
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
CN202210033822.4A
Other languages
English (en)
Other versions
CN114363654B (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.)
Beijing ByteDance Network Technology Co Ltd
Original Assignee
Beijing ByteDance Network 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 ByteDance Network Technology Co Ltd filed Critical Beijing ByteDance Network Technology Co Ltd
Priority to CN202210033822.4A priority Critical patent/CN114363654B/zh
Publication of CN114363654A publication Critical patent/CN114363654A/zh
Priority to PCT/CN2023/070337 priority patent/WO2023134509A1/zh
Application granted granted Critical
Publication of CN114363654B publication Critical patent/CN114363654B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72403User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
    • 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/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/422Input-only peripherals, i.e. input devices connected to specially adapted client devices, e.g. global positioning system [GPS]
    • H04N21/4223Cameras
    • 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

Landscapes

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

Abstract

本公开实施例公开了一种视频推流方法、装置、终端设备及存储介质。该方法可包括:展示显示界面,其中,显示界面上设置有至少两个应用窗口;响应于由用户发起的针对于第一应用的摄像头第一打开请求,将已打开的物理摄像头拍摄到的图像数据流于第一应用的应用窗口中进行展示;响应于由用户发起的针对于第二应用的摄像头第二打开请求,将图像数据流于第二应用的应用窗口中进行展示。本公开实施例的技术方案,可以于同一时间在同一终端设备上的各应用的应用窗口中均展示物理摄像头拍摄到的图像数据流,这意味着在只需要准备一台终端设备的情况下,即可实现至少两个应用同时进行视频推流的效果,由此降低了视频推流的成本。

Description

一种视频推流方法、装置、终端设备及存储介质
技术领域
本公开实施例涉及应用程序开发技术领域,尤其涉及一种视频推流方法、装置、终端设备及存储介质。
背景技术
随着互联网技术的高速发展,手机直播变得越来越流行,很多平台都推出了与直播相关的服务,如通过直播分享生活、推广项目、售卖商品等。
为了提高直播效率,主播希望于同一时间在多个直播应用(Application,App)上进行直播。但是,现有的相关方案是需要主播准备多台手机方能实现,成本较高。
发明内容
本公开实施例提供了一种视频推流方法、装置、终端设备及存储介质,以实现在一台终端设备上允许至少两个应用同时进行视频推流的效果。
第一方面,本公开实施例提供了一种视频推流方法,可以包括:
展示显示界面,其中,显示界面上设置有至少两个应用窗口;
响应于由用户发起的针对于第一应用的摄像头第一打开请求,将已打开的物理摄像头拍摄到的图像数据流于第一应用的应用窗口中进行展示;
响应于由用户发起的针对于第二应用的摄像头第二打开请求,将图像数据流于第二应用的应用窗口中进行展示。
第二方面,本公开实施例还提供了一种视频推流装置,可以包括:
显示界面展示模块,用于展示显示界面,其中,显示界面上设置有至少两个应用窗口;
图像数据流第一展示模块,用于响应于由用户发起的针对于第一应用的摄像头第一打开请求,将已打开的物理摄像头拍摄到的图像数据流于第一应用的应用窗口中进行展示;
图像数据流第二展示模块,用于响应于由用户发起的针对于第二应用的摄像头第二打开请求,将图像数据流于第二应用的应用窗口中进行展示。
第三方面,本公开实施例还提供了一种终端设备,可以包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现本公开任意实施例所提供的视频推流方法。
第四方面,本公开实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现本公开任意实施例所提供的视频推流方法。
本公开实施例的技术方案,通过展示显示界面,其中,显示界面上设置有至少两个应用窗口;响应于由用户发起的针对第一应用的摄像头第一打开请求,将已打开的物理摄像头拍摄到的图像数据流于第一应用的应用窗口中进行展示;响应于由用户发起的针对于第二应用的摄像头第二打开请求,将图像数据流于第二应用的应用窗口中进行展示。上述技术方案,可以于同一时间在同一台终端设备上的各应用的应用窗口中均展示由物理摄像头拍摄到的图像数据流,这意味着在只需要准备一台终端设备的情况下,即可实现至少两个应用同时进行视频推流的效果,由此降低了视频推流的成本。
附图说明
结合附图并参考以下具体实施方式,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。贯穿附图中,相同或相似的附图标记表示相同或相似的元素。应当理解附图是示意性的,原件和元素不一定按照比例绘制。
图1是本公开实施例一中的一种视频推流方法的流程图;
图2是本公开实施例一中的一种视频推流方法中显示界面的示意图;
图3是本公开实施例二中的一种视频推流方法的流程图;
图4是本公开实施例二中的一种视频推流方法中虚拟摄像头的实现示意图;
图5是本公开实施例二中的一种视频推流方法中摄像头调度的流程图;
图6是本公开实施例三中的一种视频推流方法的流程图;
图7是本公开实施例三中的一种视频推流方法中显示界面的示意图;
图8是本公开实施例三中的一种视频推流方法中用户操作的流程图;
图9是本公开实施例四中的一种视频推流装置的结构框图;
图10是本公开实施例五中的一种终端设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
下述各实施例中,每个实施例中同时提供了可选特征和示例,实施例中记载的各个特征可进行组合,形成多个可选方案,不应将每个编号的实施例仅视为一个技术方案。
在介绍本公开实施例之前,先对本公开实施例的应用场景进行示例性说明:由于手机摄像头拍摄的图像数据流在同一时间只能被一个直播App获取以进行直播(即在同一时间只允许一个直播App打开手机摄像头来拍摄图像数据流),为了实现于同一时间在多个直播App上进行直播的效果,现有的相关方案需要主播准备多台手机,每台手机上只运行一个直播App,由此可以保证该直播App能够获取到该台手机上的手机摄像头拍摄的图像数据流,从而可以让不同手机上的手机摄像头拍摄的图像数据流被不同的直播App获取以进行直播。显然,上述方案存在视频推流成本较高的问题。
实施例一
图1是本公开实施例一中提供的一种视频推流方法的流程图。本实施例可适用于视频推流的情况,尤其适用于在同一时间让同一终端设备上的至少两个应用进行视频推流的情况。该方法可以由本公开实施例提供的视频推流装置来执行,该装置可以由软件和/或硬件的方式实现,该装置可以集成在终端设备上。
参见图1,本公开实施例的方法具体包括如下步骤:
S110、展示显示界面,其中,显示界面上设置有至少两个应用窗口。
其中,于终端设备的显示屏幕上展示显示界面,在该显示界面上可以设置有至少两个应用窗口,该应用窗口可以是用于展示某应用的应用内容的窗口。当然,这样的显示界面实现的前提可以是终端设备上的多开分屏功能(即允许于同一时间在显示界面上展示至少两个应用的功能)已被开启。上述终端设备可以是手机、平板电脑、笔记本电脑、台式电脑等,在此未做具体限定。
S120、响应于由用户发起的针对于第一应用的摄像头第一打开请求,将已打开的物理摄像头拍摄到的图像数据流于第一应用的应用窗口中进行展示。
其中,摄像头第一打开请求可以是由用户针对于运行在终端设备上的第一应用发起的用于请求打开终端设备上的某个摄像头的请求,该第一应用可以是存在摄像头打开需求的应用,即需在摄像头被打开后方能被有效运行的应用,如直播应用、图像拍摄应用、视频录制应用等,在此未做具体限定;物理摄像头可以是设置在终端设备上的在物理上实际存在的摄像头,如前置摄像头或后置摄像头。图像数据流(即视频数据)可以是由已打开的物理摄像头拍摄的数据流,将该图像数据流于第一应用的应用窗口(即至少两个应用窗口中与第一应用对应的应用窗口)中进行展示,由此实现了第一应用的视频推流的效果。
需要说明的是,物理摄像头的打开操作有可能是在接收到摄像头第一打开请求前执行的,也有可能是在接收到摄像头第一打开请求后执行的,在此未做具体限定。换言之,对摄像头第一打开请求进行响应后的结果并不是打开物理摄像头,只是将图像数据流展示于第一应用的应用窗口中。至于对摄像头第一打开请求进行响应后打开的是什么摄像头,在此未做具体限定。
S130、响应于由用户发起的针对于第二应用的摄像头第二打开请求,将图像数据流于第二应用的应用窗口中进行展示。
其中,摄像头第二打开请求可以是由用户针对于运行在终端设备上的第二应用发起的用于请求打开终端设备上的某摄像头的请求,需要说明的是,第一应用和第二应用是不同的应用,如一个是视频录制应用且另一个是直播应用、一个是A平台上的直播应用且另一个是B平台上的直播应用等;第一应用请求的摄像头和第二应用请求的摄像头可能相同或不同,在此未做具体限定。另外,物理摄像头的打开操作有可能是在接收到摄像头第二打开请求前执行的,也可能是在接收到摄像头第二打开请求后执行的,在此亦未做具体限定。再另外,摄像头第一打开请求的响应操作和摄像头第二打开请求的响应操作的执行顺序可先可后,在此亦未做具体限定。针对至少两个应用窗口中与第二应用对应的应用窗口,将图像数据流展示于该应用窗口中。
由上可知,第一应用的应用窗口和第二应用的应用窗口中展示的均是物理摄像头拍摄到的图像数据流,即在两个应用窗口中展示的是同一图像数据流,由此实现了在同一时间允许同一终端设备上的至少两个应用视频推流的效果。为了更好地理解上述技术方案的应用效果,下面结合具体示例对其进行示例性的说明。示例性的,如图2所示,在显示界面10上设置有四个应用窗口,应用窗口101是第一应用的应用窗口,应用窗口102是第二应用的应用窗口,应用窗口103是第三应用的应用窗口,并且应用窗口104是第四应用的应用窗口,各应用窗口中展示的均是同一图像数据集流。即,四个应用均能够获取到图像数据流,而不再是只有一个应用能够获取到图像数据流,由此达到了同时打开多个应用,将相同的图像数据流同时给到该多个应用上的效果。
本公开实施例的技术方案,通过展示显示界面,其中,显示界面上设置有至少两个应用窗口;响应于由用户发起的针对第一应用的摄像头第一打开请求,将已打开的物理摄像头拍摄到的图像数据流于第一应用的应用窗口中进行展示;响应于由用户发起的针对于第二应用的摄像头第二打开请求,将图像数据流于第二应用的应用窗口中进行展示。上述技术方案,可以于同一时间在同一台终端设备上的各应用的应用窗口中均展示由物理摄像头拍摄到的图像数据流,这意味着在只需要准备一台终端设备的情况下,即可实现至少两个应用同时进行视频推流的效果,由此降低了视频推流的成本。
一种可选的技术方案,在实施例一的基础上,上述视频推流方法,还可以包括:响应于摄像头第三打开请求,从摄像头第三打开请求中获取应用包名;若应用包名位于预设白名单中,则打开与摄像头第三打开请求对应的物理摄像头。其中,摄像头第三打开请求可以是由用户发起的针对于第四应用的用于打开物理摄像头的请求,该第四应用的应用类型与上述第一应用和/或第二应用的应用类型可能相同或是不同,如这三个应用都是直播应用、第一应用和第二应用是直播应用且第四应用是用于确定各直播应用的图像来源的应用等,在此并未做具体限定;应用包名可以是该第四应用的包名。如果应用包名位于预设白名单中,这说明该第四应用是能够打开物理摄像头的应用,则打开相应的物理摄像头,以使该第四应用能够获取到已打开的物理摄像头拍摄到的图像数据流,进而保证了该图像数据流能够展示在各应用窗口中。
另一种可选的技术方案,在实施例一的基础上,该至少两个应用窗口包括第一窗口和第二窗口,该第二窗口的数量是至少一个,将已打开的物理摄像头拍摄到的图像数据流于第一应用的应用窗口中进行展示,可包括:将第一窗口作为第一应用的应用窗口,将已打开的物理摄像头拍摄到的图像数据流于第一窗口中进行展示;将图像数据流于第二应用的应用窗口中进行展示,可包括:将第一窗口作为第二应用的应用窗口,将展示于第一窗口中的图像数据流展示于第二窗口中,并将第二应用的图像数据流于第一窗口进行展示。其中,第一窗口可以理解为主窗口,且第二窗口可以理解为副窗口,当前被响应的应用的图像数据流可以展示于主窗口中。在当前被响应的应用更新(即又有一个应用被响应)时,可以将上一响应的应用的图像数据流的展示窗口从主窗口变更为副窗口,然后将当前响应的应用的图像数据流展示于主窗口中,由此有效保证了在主窗口中始终展现当前响应的应用的图像数据流。
再一种可选的技术方案,在实施例一的基础上,显示界面上还设置有参数调整窗口,上述视频推流方法,还可以包括:响应于作用在参数调整窗口上的第三点击操作,对第一应用的应用窗口和/或第二应用的应用窗口中展示的图像数据流进行更新并展示,其中,更新后的图像数据流包括基于与第三点击操作对应的目标参数对图像数据流进行处理后得到的数据流。其中,参数调整窗口中可以设置有至少一个参数类型标识,如音效标识、声音标识、虚拟背景标识等,某参数类型标识被点击后,可以展示出与该参数类型标识对应的候选参数,如音效标识被点击后可以展示各种候选笑声参数、声音标识被点击后可以展示各种声音特效参数、虚拟背景被点击后可以展示各种候选背景参数等;当然,也可以直接展示与默认的参数类型标识对应的候选参数,在此未做具体限定。第三点击操作可以是作用在参数调整窗口上的用于选择某候选参数以得到目标参数的点击操作,可以基于由此得到的目标参数对图像数据流进行处理,如将与目标参数对应的目标数据流添加到图像数据流中,然后将处理后的图像数据流展示于第一应用的应用窗口和/或第二应用的应用窗口中,由此达到了展示出满足用户的实际需求的图像数据流的效果,从而提升了用户体验。
又一种可选的技术方案,考虑到本公开实施例可能涉及到的应用场景,在显示界面上还可以设置有提示窗口,在该提示窗口中可以展示有预先设置的多媒体数据,如文字数据、图片数据、视频数据等。这样一来,用户可以在多媒体数据的辅助下流利地展示自己想要展示的内容,从而提升了用户的使用体验。
实施例二
图3是本公开实施例二中提供的一种视频推流方法的流程图。本实施例以上述实施例中各个可选方案为基础进行优化。在本实施例中,可选的,在响应于由用户发起的针对于第一应用的摄像头第一打开请求后,上述视频推流方法,还可包括:打开可用摄像头,其中,可用摄像头属于虚拟摄像头;获取与可用摄像头匹配的视频数据,其中视频数据包括与可用摄像头匹配的已打开的物理摄像头拍摄到的图像数据流;相应的,将已打开的物理摄像头拍摄到的图像数据流于第一应用的应用窗口中进行展示,可包括:将视频数据发送给已打开的可用摄像头,以使请求到可用摄像头的第一应用获取到视频数据,并将获取得到的视频数据于所述第一应用的应用窗口中进行展示。其中,与上述各实施例相同或相应的术语的解释在此不再赘述。
相应的,如图3所示,本实施例的方法具体可以包括如下步骤:
S210、展示显示界面,其中,显示界面上设置有至少两个应用窗口。
S220、响应于由用户发起的针对于第一应用的摄像头第一打开请求,打开可用摄像头,其中,可用摄像头属于虚拟摄像头。
其中,虚拟摄像头可以是终端设备上的在物理中并未实际存在的摄像头,即无法直接拍摄到图像数据流的摄像头,但是其在被打开后可以共享物理摄像头拍摄到的图像数据流。可用摄像头可以是各虚拟摄像头中目前处于可用状态的摄像头,该可用状态可以理解为在终端设备中存在且还未被除第一应用之外的其余应用请求到的状态。当然,可用摄像头是否为用户针对于第一应用发起摄像头第一打开请求时所请求的摄像头,在此未做具体限定。
S230、获取与可用摄像头匹配的视频数据,其中,视频数据包括与可用摄像头匹配的已打开的物理摄像头拍摄到的图像数据流。
其中,视频数据可以是与可用摄像头匹配的数据流,即能够被可用摄像头获取到的数据流,实际应用中,其可以包括与可用摄像头匹配的已打开的物理摄像头拍摄到的图像数据流。这里强调与可用摄像头匹配的物理摄像头是因为不同的虚拟摄像头所对应的物理摄像头可能相同或是不同。
S240、将视频数据发送给已打开的可用摄像头,以使请求到可用摄像头的第一应用获取到视频数据,并将获取到的视频数据于第一应用的应用窗口中进行展示。
其中,将视频数据发送给已打开的可用摄像头,这样一来,请求到该可用摄像头的第一应用就能够获取到该视频数据,从而可以将获取到的视频数据于第一应用的应用窗口中进行展示。
S250、响应于由用户发起的针对于第二应用的摄像头第二打开请求,将图像数据流于第二应用的应用窗口中进行展示。
其中,实际应用中,可选的,将图像数据流于第二应用的应用窗口中进行展示的过程,与将图像数据流(即包括该图像数据流的视频数据)于第一应用的应用窗口中进行展示的过程,可以相同或是不同,在此未做具体限定。需要说明的是,如果二者的展示过程相同,类似于物理摄像头,每个虚拟摄像头也只能被一个应用请求到,那么第一应用请求到的可用摄像头和第二应用请求到的可用摄像头是不同的虚拟摄像头。
本公开实施例的技术方案,通过在终端设备上虚拟至少两个虚拟摄像头,让该至少两个虚拟摄像头共享由物理摄像头拍摄到的图像数据流,这样一来,当各应用从各虚拟摄像头中分别匹配到相应的可用摄像头后,可以通过打开该可用摄像头来获取到图像数据流,由此达到了在各应用的应用窗口中均对同一图像数据流进行展示的效果。
一种可选技术方案,在实施例二的基础上,物理摄像头的物理摄像头模块和虚拟摄像头的虚拟摄像头模块均部署在安卓***的硬件抽象层中,虚拟摄像头是通过设置在安卓***的框架层中的相机服务来被打开的。其中,物理摄像头模块可以是用于实现物理摄像头的相应功能的代码段,虚拟摄像头模块可以是用于实现虚拟摄像头的相应功能的代码段,这两个模块都可部署在安卓***的硬件抽象层(Hardware Abstraction Layer,HAL)中。在此基础上,虚拟摄像头可以是通过设置在安卓***的框架(Framework)层中的相机服务(CameraSerivce)来被打开的,由此实现了在终端设备中部署和应用虚拟摄像头的效果。为了更好地理解虚拟摄像头的实现过程,下面结合具体示例来阐述。
示例性的,如图4所示,安装在安卓***中的应用在打开任意摄像头时,均可以通过设置在Framework中的相机服务(CameraSerivce)来实现;HAL可用于负责管理硬件设备;相机硬件抽象层服务(CameraHalProvider)是HAL中的服务,上面和Framework中的CameraService进行对接,下面负责管理具体的摄像头设备;内置的物理摄像头模块(InternalCamera)一般可包含前置摄像头(摄像头ID:0)和后置摄像头(摄像头ID:1)这两个;虚拟摄像头模块(EmuCamera)可以根据实际需求设置若虚拟摄像头,本示例以4个虚拟摄像头(摄像头ID:0、摄像头ID:1、摄像头ID:2和摄像头ID:3)为例。Framework中的摄像头ID和HAL中的摄像头ID间具有映射关系,以便CameraSerivce在工作时确定打开哪个摄像头。
另一种可选的技术方案,在实施例二的基础上,在打开可用摄像头之前,上述视频推流方法,还可包括:从摄像头第一打开请求中获取摄像头标识,并确定与摄像头标识对应的待请求摄像头是否为物理摄像头;如果否,则判断该摄像头标识是否可被使用,并根据判断结果确定是否将待请求摄像头作为可用摄像头,以得到可用摄像头;否则,基于第一修改策略修改摄像头标识,并根据修改结果更新摄像头标识,以使与摄像头标识对应的待请求摄像头属于虚拟摄像头,再次执行判断摄像头标识是否可被使用的步骤。
其中,摄像头标识可以是第一应用请求打开的摄像头(即待请求摄像头)的标识,如上述示例中的摄像头ID后面的数字。为了让不同的应用在同一时间能够展示同一图像数据流,可被各应用请求到的摄像头均是虚拟摄像头。为此,可以先确定待请求摄像头是否为物理摄像头,若否(即待请求摄像头不是物理摄像头),则可以判断该摄像头标识是否可被使用,即与该摄像头标识对应的虚拟摄像头是否存在且未被其余的应用请求到,从而根据判断结果确定是否将待请求摄像头作为可用摄像头,以得到可用摄像头。否则(即待请求摄像头是物理摄像头),则可以基于第一修改策略修改摄像头标识,根据修改结果更新摄像头标识,以使与摄像头标识对应的待请求摄像头属于虚拟摄像头,即本次修改的目标是使待请求摄像头对应于某虚拟摄像头,由此就可以通过判断摄像头标识是否可被使用来得到可用摄像头。上述技术方案,达到了可用摄像头的有效获取的效果。
在此基础上,可选的,判断摄像头标识是否可被使用,根据判断结果确定是否将待请求摄像头作为可用摄像头,以得到可用摄像头,可包括:判断摄像头标识是否已被使用;如果是,则基于第二修改策略修改摄像头标识,并根据修改结果更新摄像头标识,再次执行判断摄像头标识是否已被使用的步骤;否则,当摄像头标识属于有效标识时,将与摄像头标识对应的待请求摄像头作为可用摄像头。
其中,已被使用表示摄像头标识已被除第一应用之外的其余应用请求到,因此当摄像头标识已被使用时,可以先基于第二修改策略来修改摄像头标识,然后再次判断修改后的摄像头标识是否已被使用,由此得到未被使用的摄像头标识。需要说明的是,第一修改策略和第二修改策略可以是相同或不同的修改策略,它们的具体设置是与实际应用场景有关,在此未做具体限定。相应的,当摄像头标识未被使用时,可以确定其是否属于有效标识(即终端设备中存在与该摄像头标识对应的摄像头),如果是则可以将与该摄像头标识对应的待请求摄像头作为可用摄像头,由此到了可用摄像头的有效获取的效果。
为了更好地理解上述各技术方案的具体实现过程,下面结合具体示例对其进行示例性的说明。示例性的,为了让不同的应用都能够打开匹配的虚拟摄像头,设置了如图5所示的用于分配物理摄像头和虚拟摄像头的可集成在如图4所示的框架层和硬件抽象层中的调度算法。某应用启动时,将用户针对该应用发起的摄像头打开请求发送给CameraSerivce,以使CameraSerivce将摄像头打开请求给到调度算法,以便由调度算法根据该摄像头打开请求执行如图5所示的算法逻辑来确定将哪个摄像头分配给该应用。具体的,
通过确定从摄像头打开请求中获取的应用包名是否位于预设白名单列表中来确定该应用是否能够请求到物理摄像头,如果是,则直接打开与摄像头打开请求中的摄像头标识对应的物理摄像头;否则,这说明该应用属于无法请求到物理摄像头的应用,那么通过确定该摄像头标识是否小于预设标识来确定与该摄像头标识对应的摄像头是否为物理摄像头。在实际应用中,可选的,当CameraSerivce中与各物理摄像头对应的摄像头标识均小于与各虚拟摄像头对应的摄像头标识时,该预设标识可以是该与各虚拟摄像头对应的摄像头标识中数值最小的摄像头标识,结合到图4所示的示例,其可以是2。当摄像头标识小于预设标识时,这说明该应用请求的是物理摄像头,则可以将预设标识赋值给摄像头标识,以使其请求虚拟摄像头;否则,说明该应用请求的是虚拟摄像头。
进而,判断该摄像头标识是否已被使用,如果是,则将摄像头标识+1(即将CameraSerivce中的摄像头ID向后挪一个),并再次进行判断;否则,判断该摄像头标识是否大于最大标识,该最大标识可以是各有效标识中的最大值,以图4所示的示例为例,其可以是5。如果该摄像头标识大于最大标识,这就说明当前并未存在可被分配给应用的可用摄像头(即虚拟摄像头);否则,直接打开与该摄像头标识对应的虚拟摄像头。在实际应用中,可选的,摄像头打开操作的执行过程可以是在CameraSerivce将确定出的摄像头标识给到CameraHalProvide,然后由CameraHalProvide根据预先设置的映射关系来确定需要打开哪个摄像头,并打开该摄像头。上述示例,可以有效保证各应用均能匹配到合适的物理/虚拟摄像头。
实施例三
图6是本公开实施例三中提供的一种视频推流方法的流程图。本实施例以上述实施例中各个可选方案为基础进行优化。本实施例中,可选的,显示界面上还设置有图像来源选择窗口,图像来源选择窗口上设置有至少两个图像来源标识,且至少两个图像来源标识中包括与物理摄像头对应的图像来源标识。其中,与上述各实施例相同或相应的术语的解释在此不再赘述。
相应的,如图6所示,本实施例的方法具体可以包括如下步骤:
S310、展示显示界面,其中,显示界面上设置有至少两个应用窗口和图像来源选择窗口,图像来源选择窗口上设置有至少两个图像来源标识,至少两个图像来源标识中包括与物理摄像头对应的图像来源标识。
其中,在显示界面上还设置有图像来源选择窗口,其是用于选择虚拟摄像头的图像来源的窗口,即用于选择将哪里的图像数据流给到虚拟摄像头的窗口。该图像来源选择窗口上设置有至少两个图像来源标识,每个图像来源标识分别对应于某图像来源,如前置摄像头、后置摄像头、前置摄像头+背景特效、后置摄像头+背景特效、或是已生成数据流(如游戏引擎渲染出的纯虚拟数据、已经录制好的视频数据等)等,在此未做具体限定。实际应用中,可选的,上述图像来源选择窗口可以是预先开发的导播应用在被应用时的显示效果,如导播应用在被应用时由悬浮窗口展开为图像来源选择窗口,该导播应用可以是用于控制虚拟摄像头的图像来源的应用。需要说明的是,为了将物理摄像头拍摄到的图像数据流同时展示到第一应用的应用窗口和第二应用的应用窗口中,至少两个图像来源标识中可以包括与物理摄像头对应的图像来源标识,以在该与物理摄像头对应的图像来源标识被选中时,可以将该物理摄像头拍摄到的图像数据流给到各虚拟摄像头。
为了更好地理解上述技术方案的应用效果,下面结合具体示例对其进行示例性的说明。示例性的,如图7所示,在显示界面30上设置有四个应用窗口、及图像来源选择窗口305。具体的,应用窗口301是第一应用的应用窗口,应用窗口302是第二应用的应用窗口,应用窗口303是第三应用的应用窗口,应用窗口304是第四应用的应用窗口。在图像来源选择窗口305上设置有三个图像来源标识,分别是前置摄像头3051、后置摄像头3052、以及已生成数据流3053。这样一来,可以通过作用在该图像来源选择窗口上的点击操作来确定将哪里的数据流给到各虚拟摄像头,由此实现了让各应用根据实际的应用需求均可展示相应的数据流的效果。
S320、响应于由用户发起的针对于第一应用的摄像头第一打开请求,将已打开的物理摄像头拍摄到的图像数据流于第一应用的应用窗口中进行展示。
S330、响应于由用户发起的针对于第二应用的摄像头第二打开请求,将图像数据流于第二应用的应用窗口中进行展示。
本公开实施例的技术方案,通过在显示界面上设置有图像来源选择窗口,该图像来源选择窗口上设置有至少两个图像来源标识,且该至少两个图像来源标识中包括与物理摄像头对应的图像来源标识,由此既可以保证让物理摄像头拍摄到的图像数据流能够展示于各应用窗口中,也可以实现源自于其余的图像来源的数据流展示于各应用窗口中,提升了视频推流的多样性。
一种可选的技术方案,在实施例三的基础上,上述视频推流方法,还可以包括:响应于针对于第一摄像头的作用在图像来源选择窗口上的第一点击操作,确定被选中的图像来源标识,其中第一摄像头属于虚拟摄像头;相应的,将已打开的物理摄像头拍摄到的图像数据流于第一应用的应用窗口中进行展示,可包括:当第一应用请求到第一摄像头,并且被选中的图像来源标识对应于物理摄像头时,将已打开的物理摄像头拍摄到的图像数据流于第一应用的应用窗口中进行展示。其中,第一摄像头属于虚拟摄像头,且第一点击操作可以是点击在图像来源选择窗口上的用于选择第一摄像头的图像来源的操作,响应于第一点击操作以确定各图像来源标识中被选中的图像来源标识。进而,当第一应用请求到第一摄像头并且被选中的图像来源标识对应于物理摄像头时,可以将由该物理摄像头拍摄到的图像数据流于第一应用的应用窗口中进行展示。换言之,点击操作可以是针对于某虚拟摄像头的操作,这样一来,各应用的应用窗口中展示的数据流可以相同或是不同,这与实际的应用需求有关,由此丰富了视频推流的方式,从而提升了视频推流的效果。
另一种可选的技术方案,在实施例三的基础上,上述视频推流方法,还可包括:响应于针对于第二摄像头的作用在图像来源选择窗口上的第二点击操作,确定被选中的图像来源标识,其中第二摄像头属于虚拟摄像头;响应于由用户发起的针对于第三应用的摄像头第四打开请求,当第三应用请求到第二摄像头,且被选中的图像来源标识对应于已生成数据流或对图像数据流进行处理后得到的已处理数据流时,将已生成数据流或已处理数据流于第三应用的应用窗口中进行展示。其中,第二摄像头属于虚拟摄像头,第二点击操作可以是点击在图像来源选择窗口上的用于选择第二摄像头的图像来源的操作,响应于第二点击操作以确定各图像来源标识中被选中的图像来源标识。摄像头第四打开请求可以是由用户发起的针对于第三应用的用于请求打开某摄像头的请求,当响应于该摄像头第四打开请求而使第三应用请求到第二摄像头时,并且被选中的图像来源标识对应于已生成数据流或对图像数据流进行处理后得到的已处理数据流时,可以将已生成数据流或是已处理数据流于第三应用的应用窗口中进行展示,实现了在应用窗口中展示除图像数据流以外的数据流,由此进一步提升了视频推流的多样性。
为了更加直观地理解上述各技术方案的具体实现过程,下面将用户操作和终端设备响应相结合来进行示例性的说明。示例性的,如图8所示,用户打开终端设备,然后打开导播应用设置各虚拟摄像头的图像来源,再然后依次打开各个直播应用进行直播。针对于每个直播应用,当其被启动时,将摄像头打开请求发送给CameraService,而CameraService在接收到摄像头打开请求之后,自动启动导播应用,以使被启动的导播应用先打开物理摄像头工作起来,并在直播应用请求到某虚拟摄像头后,该被启动的导播应用将物理摄像头拍摄到的图像数据流或是其余数据流(这取决于用户为该虚拟摄像头匹配的图像来源)发送给该虚拟摄像头,以使该直播应用基于获取到的数据流进行直播。在直播过程中,用户还可以根据直播需求切换图像来源,由此保证了直播的多样性。
实施例四
图9为本公开实施例四提供的视频推流装置的结构框图,该装置用于执行上述任意实施例所提供的视频推流方法。该装置与上述各实施例的视频推流方法属于同一个构思,在视频推流装置的实施例中未详尽描述的细节内容,可以参考上述视频推流方法的实施例。参见图9,该装置具体可以包括:显示界面展示模块410、图像数据流第一展示模块420和图像数据流第二展示模块430。
其中,显示界面展示模块410,用于展示显示界面,其中,显示界面上设置有至少两个应用窗口;
图像数据流第一展示模块420,用于响应于由用户发起的针对于第一应用的摄像头第一打开请求,将已打开的物理摄像头拍摄到的图像数据流于第一应用的应用窗口中进行展示;
图像数据流第二展示模块430,用于响应于由用户发起的针对于第二应用的摄像头第二打开请求,将图像数据流于第二应用的应用窗口中进行展示。
本公开实施例四所提供的视频推流装置,通过显示界面展示模块展示显示界面,其中,显示界面上设置有至少两个应用窗口;通过图像数据流第一展示模块响应于由用户发起的针对于第一应用的摄像头第一打开请求,将已打开的物理摄像头拍摄到的图像数据流于第一应用的应用窗口中进行展示;通过图像数据流第二展示模块响应于由用户发起的针对第二应用的摄像头第二打开请求,将图像数据流于第二应用的应用窗口中进行展示。上述装置,可以于同一时间在同一台终端设备上的各应用的应用窗口中均展示由物理摄像头拍摄到的图像数据流,这意味着在只需要准备一台终端设备的情况下,即可以实现至少两个应用同时进行视频推流的效果,由此降低了视频推流的成本。
本公开实施例所提供的视频推流装置可执行本公开任意实施例所提供的视频推流方法,具备执行方法相应的功能模块和有益效果。
值得注意的是,上述视频推流装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本公开的保护范围。
实施例五
下面参考图10,其示出了适于用来实现本公开实施例的终端设备500的结构示意图。本公开实施例中的终端设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图10示出的终端设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图10所示,终端设备500可以包括处理装置(例如中央处理器、图形处理器等)501,其可以根据存储在只读存储器(ROM)502中的程序或者从存储装置508加载到随机访问存储器(RAM)503中的程序而执行各种适当的动作和处理。在RAM 503中,还存储有终端设备500操作所需的各种程序和数据。处理装置501、ROM 502以及RAM 503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
通常,以下装置可以连接至I/O接口505:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置506;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置507;包括例如磁带、硬盘等的存储装置508;以及通信装置509。通信装置509可以允许终端设备500与其他设备进行无线或有线通信以交换数据。虽然图10中示出了具有各种装置的终端设备500,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
实施例六
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置509从网络上被下载和安装,或者从存储装置508被安装,或者从ROM 502被安装。在该计算机程序被处理装置501执行时,执行本公开实施例的方法中限定的上述功能。
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
在一些实施方式中,客户端、服务器可以利用诸如HTTP(HyperText TransferProtocol,超文本传输协议)之类的任何当前已知或未来研发的网络协议进行通信,并且可以与任意形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”),广域网(“WAN”),网际网(例如,互联网)以及端对端网络(例如,ad hoc端对端网络),以及任何当前已知或未来研发的网络。
上述计算机可读介质可以是上述终端设备中所包含的;也可以是单独存在,而未装配入该终端设备中。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该终端设备执行时,使得该终端设备:展示显示界面,其中,显示界面上设置有至少两个应用窗口;响应于由用户发起的针对于第一应用的摄像头第一打开请求,将已打开的物理摄像头拍摄到的图像数据流于第一应用的应用窗口中进行展示;响应于由用户发起的针对于第二应用的摄像头第二打开请求,将图像数据流于第二应用的应用窗口中进行展示。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括但不限于面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定,例如,显示界面展示模块还可以被描述为“展示显示界面,其中显示界面上设置有至少两个应用窗口的模块”。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上***(SOC)、复杂可编程逻辑设备(CPLD)等等。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行***、装置或设备使用或与指令执行***、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体***、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
根据本公开的一个或多个实施例,【示例一】提供了一种视频推流方法,该方法可以包括:
展示显示界面,其中,显示界面上设置有至少两个应用窗口;
响应于由用户发起的针对于第一应用的摄像头第一打开请求,将已打开的物理摄像头拍摄到的图像数据流于第一应用的应用窗口中进行展示;
响应于由用户发起的针对于第二应用的摄像头第二打开请求,将图像数据流于第二应用的应用窗口中进行展示。
根据本公开的一个或多个实施例,【示例二】提供了示例一的方法,在响应于由用户发起的针对于第一应用的摄像头第一打开请求后,上述视频推流方法还可以包括:
打开可用摄像头,其中,可用摄像头属于虚拟摄像头;
获取与可用摄像头匹配的视频数据,其中,视频数据包括与可用摄像头匹配的已打开的物理摄像头拍摄到的图像数据流;
相应,将已打开的物理摄像头拍摄到的图像数据流于第一应用的应用窗口中进行展示,包括:
将视频数据发送给已打开的可用摄像头,以使请求到可用摄像头的第一应用获取到视频数据,并将获取到的视频数据于第一应用的应用窗口中进行展示。
根据本公开的一个或多个实施例,【示例三】提供了示例二的方法,在打开可用摄像头之前,上述视频推流方法,还可以包括:
从摄像头第一打开请求中获取摄像头标识,并确定与摄像头标识对应的待请求摄像头是否为物理摄像头;
如果否,则判断摄像头标识是否可被使用,并根据判断结果确定是否将待请求摄像头作为可用摄像头,以得到可用摄像头;
否则,基于第一修改策略修改摄像头标识,并根据修改结果更新摄像头标识,以使与摄像头标识对应的待请求摄像头属于虚拟摄像头,再次执行判断摄像头标识是否可被使用的步骤。
根据本公开的一个或多个实施例,【示例四】提供了示例三的方法,判断摄像头标识是否可被使用,并根据判断结果确定是否将待请求摄像头作为可用摄像头,以得到可用摄像头,可以包括:
判断摄像头标识是否已被使用;
如果是,则基于第二修改策略修改摄像头标识,并根据修改结果更新摄像头标识,再次执行判断摄像头标识是否已被使用的步骤;
否则,当摄像头标识属于有效标识时,将摄像头标识对应的待请求摄像头作为可用摄像头。
根据本公开的一个或多个实施例,【示例五】提供了示例二的方法,物理摄像头的物理摄像头模块和虚拟摄像头的虚拟摄像头模块均是部署在安卓***的硬件抽象层中,虚拟摄像头是通过设置在安卓***的框架层中的相机服务来被打开的。
根据本公开的一个或多个实施例,【示例六】提供了示例一的方法,上述视频推流方法,还可以包括:
响应于摄像头第三打开请求,从摄像头第三打开请求中获取应用包名;
如果应用包名是位于预设白名单中,则打开与摄像头第三打开请求对应的物理摄像头。
根据本公开的一个或多个实施例,【示例七】提供了示例一的方法,在显示界面上还设置有图像来源选择窗口,图像来源选择窗口上设置有至少两个图像来源标识,且至少两个图像来源标识中包括与物理摄像头对应的图像来源标识。
根据本公开的一个或多个实施例,【示例八】提供了示例七的方法,上述视频推流方法,还可以包括:
响应于针对于第一摄像头的作用在图像来源选择窗口上的第一点击操作,确定被选中的图像来源标识,其中,第一摄像头属于虚拟摄像头;
相应,将已打开的物理摄像头拍摄到的图像数据流于第一应用的应用窗口中进行展示,可以包括:
当第一应用请求到第一摄像头,且被选中的图像来源标识对应于物理摄像头时,将已打开的物理摄像头拍摄到的图像数据流于第一应用的应用窗口中进行展示。
根据本公开的一个或多个实施例,【示例九】提供了示例七的方法,上述视频推流方法,还可以包括:
响应于针对第二摄像头的作用在图像来源选择窗口上的第二点击操作,确定被选中的图像来源标识,其中,第二摄像头属于虚拟摄像头;
响应于由用户发起的针对于第三应用的摄像头第四打开请求,当第三应用请求到第二摄像头,且被选中的图像来源标识对应于已生成数据流或对图像数据流进行处理后得到的已处理数据流时,将已生成数据流或已处理数据流于第三应用的应用窗口中进行展示。
根据本公开的一个或多个实施例,【示例十】提供了一种视频推流装置,该装置可以包括:
显示界面展示模块,用于展示显示界面,其中,显示界面上设置有至少两个应用窗口;
图像数据流第一展示模块,用于响应于由用户发起的针对于第一应用的摄像头第一打开请求,将已打开的物理摄像头拍摄到的图像数据流于第一应用的应用窗口中进行展示;
图像数据流第二展示模块,用于响应于由用户发起的针对于第二应用的摄像头第二打开请求,将图像数据流于第二应用的应用窗口中进行展示。
根据本公开的一个或多个实施例,【示例十一】提供了示例十的装置,上述视频推流装置,还可以包括:
可用摄像头打开模块,用于在响应于由用户发起的针对于第一应用的摄像头第一打开请求之后,打开可用摄像头,其中,可用摄像头属于虚拟摄像头;
视频数据获取模块,用于获取与可用摄像头匹配的视频数据,其中,视频数据包括与可用摄像头匹配的已打开的物理摄像头拍摄到的图像数据流;
相应的,图像数据流第一展示模块,包括:
图像数据流展示第一单元,用于将视频数据发送给已打开的可用摄像头,以使请求到可用摄像头的第一应用获取到视频数据,并将获取到的视频数据于第一应用的应用窗口中进行展示。
根据本公开的一个或是多个实施例,【示例十二】提供了示例十一的装置,上述视频推流装置,还可以包括:
物理摄像头确定模块,用于在打开可用摄像头前,从摄像头第一打开请求中获取摄像头标识,确定与摄像头标识对应的待请求摄像头是否为物理摄像头;
可用摄像头得到模块,用于如果否,则判断摄像头标识是否可被使用,并根据判断结果确定是否将待请求摄像头作为可用摄像头,以得到可用摄像头;
摄像头标识判断模块,用于否则,基于第一修改策略修改摄像头标识,并根据修改结果更新摄像头标识,以使与摄像头标识对应的待请求摄像头属于虚拟摄像头,再次执行判断摄像头标识是否可被使用的步骤。
根据本公开的一个或是多个实施例,【示例十三】提供了示例十二的装置,可用摄像头得到模块,可以包括:
摄像头标识判断单元,用于判断摄像头标识是否已被使用;
摄像头标识再次判断单元,用于如果是,则基于第二修改策略修改摄像头标识,根据修改结果更新摄像头标识,再次执行判断摄像头标识是否已被使用的步骤;
可用摄像头得到单元,用于否则,当摄像头标识属于有效标识时,将摄像头标识对应的待请求摄像头作为可用摄像头。
根据本公开的一个或是多个实施例,【示例十四】提供了示例十一的装置,物理摄像头的物理摄像头模块和虚拟摄像头的虚拟摄像头模块均部署在安卓***的硬件抽象层中,虚拟摄像头是通过设置在安卓***的框架层中的相机服务来被打开的。
根据本公开的一个或多个实施例,【示例十五】提供了示例十的装置,上述视频推送装置,还可以包括:
应用包名获取模块,用于响应于摄像头第三打开请求,从摄像头第三打开请求中获取应用包名;
物理摄像头打开模块,用于若应用包名位于预设白名单中,则打开与摄像头第三打开请求对应的物理摄像头。
根据本公开的一个或多个实施例,【示例十六】提供了示例十的装置,显示界面上还设置有图像来源选择窗口,图像来源选择窗口上设置有至少两个图像来源标识,且至少两个图像来源标识中包括与物理摄像头对应的图像来源标识。
根据本公开的一个或是多个实施例,【示例十七】提供了示例十六的装置,上述视频推流装置,还可以包括:
图像来源标识第一确定模块,用于响应于针对第一摄像头的作用在图像来源选择窗口上的第一点击操作,确定被选中的图像来源标识,其中,第一摄像头属于虚拟摄像头;
相应的,图像数据流第一展示模块,可以包括:
图像数据流展示第二单元,用于当第一应用请求到第一摄像头,并且被选中的图像来源标识对应于物理摄像头时,将已打开的物理摄像头拍摄到的图像数据流于第一应用的应用窗口中进行展示。
根据本公开的一个或是多个实施例,【示例十八】提供了示例十六的装置,上述视频推流装置,还可以包括:
图像来源标识第二确定模块,用于响应于针对第二摄像头的作用在图像来源选择窗口上的第二点击操作,确定被选中的图像来源标识,其中,第二摄像头属于虚拟摄像头;
已生成数据流展示模块,用于响应于由用户发起的针对于第三应用的摄像头第四打开请求,当第三应用请求到第二摄像头,且被选中的图像来源标识对应于已生成数据流或是对图像数据流进行处理后得到的已处理数据流时,将已生成数据流或已处理数据流于第三应用的应用窗口中进行展示。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
此外,虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。

Claims (12)

1.一种视频推流方法,其特征在于,包括:
展示显示界面,其中,所述显示界面上设置有至少两个应用窗口;
响应于由用户发起的针对于第一应用的摄像头第一打开请求,将已打开的物理摄像头拍摄到的图像数据流于所述第一应用的应用窗口中进行展示;
响应于由所述用户发起的针对于第二应用的摄像头第二打开请求,将所述图像数据流于所述第二应用的应用窗口中进行展示。
2.根据权利要求1所述的方法,其特征在于,在所述响应于由用户发起的针对于第一应用的摄像头第一打开请求之后,还包括:
打开可用摄像头,其中,所述可用摄像头属于虚拟摄像头;
获取与所述可用摄像头匹配的视频数据,其中,所述视频数据包括与所述可用摄像头匹配的已打开的物理摄像头拍摄到的图像数据流;
相应的,所述将已打开的物理摄像头拍摄到的图像数据流于所述第一应用的应用窗口中进行展示,包括:
将所述视频数据发送给已打开的所述可用摄像头,以使请求到所述可用摄像头的所述第一应用获取到所述视频数据,并将获取到的所述视频数据于所述第一应用的应用窗口中进行展示。
3.根据权利要求2所述的方法,其特征在于,在所述打开可用摄像头之前,还包括:
从所述摄像头第一打开请求中获取摄像头标识,并确定与所述摄像头标识对应的待请求摄像头是否为所述物理摄像头;
如果否,则判断所述摄像头标识是否可被使用,并根据判断结果确定是否将所述待请求摄像头作为可用摄像头,以得到所述可用摄像头;
否则,基于第一修改策略修改所述摄像头标识,并根据修改结果更新所述摄像头标识,以使与所述摄像头标识对应的所述待请求摄像头属于所述虚拟摄像头,再次执行所述判断所述摄像头标识是否可被使用的步骤。
4.根据权利要求3所述的方法,其特征在于,所述判断所述摄像头标识是否可被使用,并根据判断结果确定是否将所述待请求摄像头作为可用摄像头,以得到所述可用摄像头,包括:
判断所述摄像头标识是否已被使用;
如果是,则基于第二修改策略修改所述摄像头标识,并根据修改结果更新所述摄像头标识,再次执行所述判断所述摄像头标识是否已被使用的步骤;
否则,当所述摄像头标识属于有效标识时,将所述摄像头标识对应的所述待请求摄像头作为可用摄像头。
5.根据权利要求2所述的方法,其特征在于,所述物理摄像头的物理摄像头模块和所述虚拟摄像头的虚拟摄像头模块均部署在安卓***的硬件抽象层中,所述虚拟摄像头是通过设置在所述安卓***的框架层中的相机服务来被打开的。
6.根据权利要求1所述的方法,其特征在于,还包括:
响应于摄像头第三打开请求,从所述摄像头第三打开请求中获取应用包名;
如果所述应用包名位于预设白名单中,则打开与所述摄像头第三打开请求对应的所述物理摄像头。
7.根据权利要求1所述的方法,其特征在于,所述显示界面上还设置有图像来源选择窗口,所述图像来源选择窗口上设置有至少两个图像来源标识,且所述至少两个图像来源标识中包括与所述物理摄像头对应的所述图像来源标识。
8.根据权利要求7所述的方法,其特征在于,还包括:
响应于针对第一摄像头的作用在所述图像来源选择窗口上的第一点击操作,确定被选中的所述图像来源标识,其中,所述第一摄像头属于虚拟摄像头;
相应的,所述将已打开的物理摄像头拍摄到的图像数据流于所述第一应用的应用窗口中进行展示,包括:
当所述第一应用请求到所述第一摄像头,并且所述被选中的所述图像来源标识对应于物理摄像头时,将已打开的所述物理摄像头拍摄到的图像数据流于所述第一应用的应用窗口中进行展示。
9.根据权利要求7所述的方法,其特征在于,还包括:
响应于针对第二摄像头的作用在所述图像来源选择窗口上的第二点击操作,确定被选中的所述图像来源标识,其中,所述第二摄像头属于虚拟摄像头;
响应于由所述用户发起的针对于第三应用的摄像头第四打开请求,当所述第三应用请求到所述第二摄像头,且所述被选中的所述图像来源标识对应于已生成数据流或对所述图像数据流进行处理后得到的已处理数据流时,将所述已生成数据流或所述已处理数据流于所述第三应用的应用窗口中进行展示。
10.一种视频推流装置,其特征在于,包括:
显示界面展示模块,用于展示显示界面,其中,所述显示界面上设置有至少两个应用窗口;
图像数据流第一展示模块,用于响应于由用户发起的针对于第一应用的摄像头第一打开请求,将已打开的物理摄像头拍摄到的图像数据流于所述第一应用的应用窗口中进行展示;
图像数据流第二展示模块,用于响应于由所述用户发起的针对于第二应用的摄像头第二打开请求,将所述图像数据流于所述第二应用的应用窗口中进行展示。
11.一种终端设备,其特征在于,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-9中任一所述的视频推流方法。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-9中任一所述的视频推流方法。
CN202210033822.4A 2022-01-12 2022-01-12 一种视频推流方法、装置、终端设备及存储介质 Active CN114363654B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202210033822.4A CN114363654B (zh) 2022-01-12 2022-01-12 一种视频推流方法、装置、终端设备及存储介质
PCT/CN2023/070337 WO2023134509A1 (zh) 2022-01-12 2023-01-04 视频推流方法、装置、终端设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210033822.4A CN114363654B (zh) 2022-01-12 2022-01-12 一种视频推流方法、装置、终端设备及存储介质

Publications (2)

Publication Number Publication Date
CN114363654A true CN114363654A (zh) 2022-04-15
CN114363654B CN114363654B (zh) 2023-12-19

Family

ID=81108261

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210033822.4A Active CN114363654B (zh) 2022-01-12 2022-01-12 一种视频推流方法、装置、终端设备及存储介质

Country Status (2)

Country Link
CN (1) CN114363654B (zh)
WO (1) WO2023134509A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023134509A1 (zh) * 2022-01-12 2023-07-20 北京字节跳动网络技术有限公司 视频推流方法、装置、终端设备及存储介质

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106851172A (zh) * 2017-03-27 2017-06-13 青岛海信电器股份有限公司 摄像头的调用方法、装置及***
US20170257652A1 (en) * 2012-04-06 2017-09-07 TOK. tv Inc. Systems and methods to remotely synchronize digital data
CN109068179A (zh) * 2018-09-17 2018-12-21 珠海市筑巢科技有限公司 一种多平台直播方法、计算机装置及计算机可读存储介质
CN112118459A (zh) * 2020-08-28 2020-12-22 上海商米科技集团股份有限公司 共享摄像头数据实现多个app共同直播的方法及可读介质
CN112351235A (zh) * 2019-08-06 2021-02-09 华为技术有限公司 一种视频通话的方法
CN112584049A (zh) * 2020-12-22 2021-03-30 Oppo广东移动通信有限公司 远程交互方法及装置、电子设备、存储介质
CN112804460A (zh) * 2021-01-12 2021-05-14 杭州星犀科技有限公司 基于虚拟摄像头的图像处理方法、装置、存储介质及电子设备
CN112804459A (zh) * 2021-01-12 2021-05-14 杭州星犀科技有限公司 基于虚拟摄像头的图像展示方法、装置、存储介质及电子设备
CN113220445A (zh) * 2021-03-26 2021-08-06 西安神鸟软件科技有限公司 一种图像或视频数据获取方法及终端设备
CN113220446A (zh) * 2021-03-26 2021-08-06 西安神鸟软件科技有限公司 一种图像或视频数据处理方法及终端设备
CN113254228A (zh) * 2021-03-26 2021-08-13 西安神鸟软件科技有限公司 一种图像或视频数据分发方法及终端设备
CN113556479A (zh) * 2020-09-02 2021-10-26 华为技术有限公司 一种多应用共享摄像头的方法与电子设备
WO2021258617A1 (zh) * 2020-06-22 2021-12-30 深圳市沃特沃德股份有限公司 多平台同步直播方法、装置、计算机设备和可读存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11086491B1 (en) * 2020-01-21 2021-08-10 Honeywell International Inc. Systems and methods for displaying video streams on a display
CN113852763B (zh) * 2021-09-30 2023-12-12 上海绚显科技有限公司 音视频处理方法、装置、电子设备和存储介质
CN114363654B (zh) * 2022-01-12 2023-12-19 北京字节跳动网络技术有限公司 一种视频推流方法、装置、终端设备及存储介质

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170257652A1 (en) * 2012-04-06 2017-09-07 TOK. tv Inc. Systems and methods to remotely synchronize digital data
CN106851172A (zh) * 2017-03-27 2017-06-13 青岛海信电器股份有限公司 摄像头的调用方法、装置及***
CN109068179A (zh) * 2018-09-17 2018-12-21 珠海市筑巢科技有限公司 一种多平台直播方法、计算机装置及计算机可读存储介质
CN112351235A (zh) * 2019-08-06 2021-02-09 华为技术有限公司 一种视频通话的方法
WO2021258617A1 (zh) * 2020-06-22 2021-12-30 深圳市沃特沃德股份有限公司 多平台同步直播方法、装置、计算机设备和可读存储介质
CN112118459A (zh) * 2020-08-28 2020-12-22 上海商米科技集团股份有限公司 共享摄像头数据实现多个app共同直播的方法及可读介质
CN113556479A (zh) * 2020-09-02 2021-10-26 华为技术有限公司 一种多应用共享摄像头的方法与电子设备
CN112584049A (zh) * 2020-12-22 2021-03-30 Oppo广东移动通信有限公司 远程交互方法及装置、电子设备、存储介质
CN112804460A (zh) * 2021-01-12 2021-05-14 杭州星犀科技有限公司 基于虚拟摄像头的图像处理方法、装置、存储介质及电子设备
CN112804459A (zh) * 2021-01-12 2021-05-14 杭州星犀科技有限公司 基于虚拟摄像头的图像展示方法、装置、存储介质及电子设备
CN113220446A (zh) * 2021-03-26 2021-08-06 西安神鸟软件科技有限公司 一种图像或视频数据处理方法及终端设备
CN113254228A (zh) * 2021-03-26 2021-08-13 西安神鸟软件科技有限公司 一种图像或视频数据分发方法及终端设备
CN113220445A (zh) * 2021-03-26 2021-08-06 西安神鸟软件科技有限公司 一种图像或视频数据获取方法及终端设备

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023134509A1 (zh) * 2022-01-12 2023-07-20 北京字节跳动网络技术有限公司 视频推流方法、装置、终端设备及存储介质

Also Published As

Publication number Publication date
CN114363654B (zh) 2023-12-19
WO2023134509A1 (zh) 2023-07-20

Similar Documents

Publication Publication Date Title
CN113411642B (zh) 投屏方法、装置、电子设备和存储介质
CN110708602A (zh) 视频启动方法、装置、电子设备及存储介质
US11936924B2 (en) Live room setup method and apparatus, electronic device, and storage medium
CN110300165B (zh) 一种功能程序的调用方法、装置、设备及存储介质
CN113225483B (zh) 图像融合方法、装置、电子设备和存储介质
WO2021218318A1 (zh) 视频传输方法、电子设备和计算机可读介质
WO2023000888A1 (zh) 云应用的实现方法、装置、电子设备和存储介质
CN111432001A (zh) 用于跳转场景的方法、装置、电子设备和计算机可读介质
CN111163324A (zh) 信息处理方法、装置和电子设备
CN113721807A (zh) 一种信息展示方法、装置、电子设备和存储介质
CN111698574A (zh) 一种视频水印处理方法、装置、电子设备和存储介质
CN111147885A (zh) 直播间互动方法、装置、可读介质及电子设备
CN114489891A (zh) 云应用程序的控制方法、***、装置、可读介质和设备
CN114363654B (zh) 一种视频推流方法、装置、终端设备及存储介质
CN114125551B (zh) 视频生成方法、装置、电子设备及计算机可读介质
CN111158824A (zh) 一种界面显示方法、装置、设备及介质
CN114187169B (zh) 视频特效包的生成方法、装置、设备及存储介质
CN114237450B (zh) 虚拟资源转移方法、装置、设备、可读存储介质及产品
CN116017061A (zh) 媒体内容生成方法、装置、设备、可读存储介质及产品
CN115437734A (zh) 页面展示方法、装置、存储介质和电子设备
CN115578299A (zh) 图像生成方法、装置、设备及存储介质
CN111240758A (zh) 素材展示方法、装置、电子设备及存储介质
CN111212296A (zh) 直播间礼物列表配置方法、装置、介质及电子设备
CN111367592A (zh) 信息处理方法和装置
CN111294611B (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