CN111478915B - 直播数据的推流方法、装置、终端及存储介质 - Google Patents
直播数据的推流方法、装置、终端及存储介质 Download PDFInfo
- Publication number
- CN111478915B CN111478915B CN202010291311.3A CN202010291311A CN111478915B CN 111478915 B CN111478915 B CN 111478915B CN 202010291311 A CN202010291311 A CN 202010291311A CN 111478915 B CN111478915 B CN 111478915B
- Authority
- CN
- China
- Prior art keywords
- encoder
- application program
- data
- environment
- video data
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/70—Media network packetisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/40—Support for services or applications
-
- 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/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本申请实施例提供了一种直播数据的推流方法、装置、终端及存储介质,该方法包括:通过第一编码器对采集到的视频数据进行编码,得到编码后的视频数据,第一编码器是预设应用程序对应的外编码器库中未存储的编码器;通过第二编码器初始化推流环境,第二编码器是预设应用程序对应的外编码器库中存储的编码器;基于推流环境推流直播数据,直播数据包括编码后的视频数据。在本申请实施例中,在直播推流所需的应用程序对应的外编码器库中未存储对视频数据进行编码的编码器的情况下,也能完成对推流环境的初始化,并通过初始化完成的推流环境进行数据推流,进而提升数据推流的成功率。
Description
技术领域
本申请实施例涉及互联网技术领域,特别涉及一种直播数据的推流方法、装置、终端及存储介质。
背景技术
直播推流是直播中的关键环节,其是指将采集阶段封包好的内容传输到服务器的过程。
相关技术中,终端采用预先设定的编码器完成对视频数据的编码后,还需要基于该预先设定的编码器对推流环境进行初始化,在完成推流环境的初始化之后进行直播推流。
相关技术中,当直播推流所采用的应用程序对应的外编码器库中未存储上述预先设定的编码器时,无法完成对推流环境的初始化,也无法进行直播推流,导致直播推流的成功率较低。
发明内容
本申请实施例提供一种直播数据的推流方法、装置、终端及存储介质,可提高直播推流的成功率。所述技术方案如下:
一方面,本申请实施例提供一种直播数据的推流方法,所述方法包括:
通过第一编码器对采集到的视频数据进行编码,得到编码后的视频数据,所述第一编码器是预设应用程序对应的外编码器库中未存储的编码器;
通过第二编码器初始化推流环境,所述第二编码器是所述预设应用程序对应的外编码器库中存储的编码器;
基于所述推流环境推流直播数据,所述直播数据包括所述编码后的视频数据。
在一些实施例中,所述通过第二编码器初始化推流环境,包括:
在所述预设应用程序对应的外编码器库中查找所述第二编码器,并打开所述第二编码器;
将所述推流环境中的编码器设置为所述第一编码器;
将所述预设应用程序与所述推流环境绑定。
在一些实施例中,所述在所述预设应用程序对应的外编码器库中查找所述第二编码器,包括:
获取所述预设应用程序对应的外编码器库中存储的至少一个编码器;
在所述至少一个编码器中确定出所述第二编码器。
在一些实施例中,所述通过第二编码器初始化推流环境,包括:在所述推流环境中设置推流地址。
在一些实施例中,所述通过第一编码器对采集到的视频数据进行编码,得到编码后的视频数据之后,还包括:
对所述编码后的视频数据进行封装容器的预设置,所述封装容器中的编码器被设置为所述第一编码器。
在一些实施例中,所述第一编码器为以下任意一种:第二代动态图像专家组(Moving Picture Experts Group-2,MPEG2)编码器、第四代动态图像专家组 (MovingPicture Experts Group-4,MPEG4)编码器、H.264编码器、H.265编码器、 VP8编码器、VP9编码器;所述第二编码器为以下任意一种:所述MPEG2编码器、所述MPEG4编码器、所述H.264编码器、所述H.265编码器、所述VP8 编码器、所述VP9编码器;其中,所述第一编码器与所述第二编码器不同。
另一方面,本申请实施例提供一种直播数据的推流装置,所述装置包括:
数据编码模块,用于通过第一编码器对采集到的视频数据进行编码,得到编码后的视频数据,所述第一编码器是预设应用程序对应的外编码器库中未存储的编码器;
环境初始化模块,用于通过第二编码器初始化推流环境,所述第二编码器是所述预设应用程序对应的外编码器库中存储的编码器;
数据推流模块,用于基于所述推流环境推流直播数据,所述直播数据包括所述编码后的视频数据。
在一些实施例中,所述环境初始化模块,用于:
在所述预设应用程序对应的外编码器库中查找所述第二编码器,并打开所述第二编码器;
将所述预设应用程序与预设推流协议绑定;
将基于所述预设推流协议的推流环境中的编码器设置为所述第一编码器。
在一些实施例中,所述环境初始化模块,还用于:
获取所述预设应用程序对应的外编码器库中存储的至少一个编码器;
在所述至少一个编码器中确定出所述第二编码器。
在一些实施例中,所述环境初始化模块,还用于在所述基于所述预设推流协议的推流环境中设置推流地址。
在一些实施例中,所述装置还包括:
容器设置模块,用于对所述编码后的视频数据进行封装容器的预设置,所述封装容器中的编码器被设置为所述第一编码器。
在一些实施例中,所述第一编码器为以下任意一种:MPEG2编码器、MPEG4 编码器、H.264编码器、H.265编码器、VP8编码器、VP9编码器;所述第二编码器为以下任意一种:所述MPEG2编码器、所述MPEG4编码器、所述H.264 编码器、所述H.265编码器、所述VP8编码器、所述VP9编码器;其中,所述第一编码器与所述第二编码器不同。
又一方面,提供了一种终端,所述终端包括处理器和存储器,所述存储器存储有计算机程序,所述计算机程序由所述处理器加载并执行以实现如一方面所述的直播数据的推流方法。
再一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序由处理器加载并执行以实现如一方面所述的直播数据的推流方法。
本申请实施例提供的技术方案带来的有益效果至少包括:
通过采用直播推流所需的应用程序对应的外编码器库(例如基于FFmpeg 的开源库)中存储的编码器来初始化推流环境,而无需采用对视频数据进行编码的编码器来初始化推流环境,因此在直播推流所需的应用程序对应的外编码器库中未存储对视频数据进行编码的编码器的情况下,也能完成对推流环境的初始化,并通过初始化完成的推流环境进行数据推流,进而提升数据推流的成功率。
附图说明
图1是本申请一个示例性实施例示出的主播终端一侧的直播流程的示意图;
图2是本申请一个示例性实施例示出的实施环境的示意图;
图3是本申请一个示例性实施例示出的直播数据的推流方法的流程图;
图4是本申请另一个示例性实施例示出的直播数据的推流方法的流程图;
图5是本申请一个示例性实施例示出的直播数据的推流装置的结构框图;
图6是本申请一个示例性实施例示出的终端的结构框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
下面对直播涉及的各个流程进行介绍。
结合参考图1,直播包括采集、处理、编码、封装、推流等五个步骤。
(1)采集
在数据采集步骤中,主播终端通过摄像头组件或者录屏软件采集视频数据,通过麦克风组件采集音频数据。上述摄像头组件可以是设置在主播终端内部,也可以独立在主播终端之外。
(2)处理
在数据处理步骤中,主播终端对采集到的音频数据进行降噪、回音抑制、混音等处理,对采集到的视频数据进行添加美颜、添加滤镜、添加水印等处理。
(3)编码
编码处理是指通过压缩技术,将原始视频格式的文件转换成另一种视频格式文件的方式。对视频数据进行编码所采用的编码器可以是MPEG2编码器、 MPEG4编码器、H.264编码器、H.265编码器、VP8编码器、VP9编码器等。
(4)封装
数据封装是指将已经编码压缩好的视频轨和音频轨按照一定的格式放到一个文件中。数据封装需要用到封装容器(也称封装格式)。封装容器可以是音频视频交错格式(Audio Video Interleaved,AVI)、流媒体格式(FlashVideo,FLV)、多媒体容器格式(Multimedia Container,MKV)等等。
(5)推流
数据推流是指将采集阶段封包好的内容传输到服务器的过程。在数据推流步骤中,需要使用传输协议将音视频数据封装成流数据,之后将上述流数据推送到服务器。上述传输协议可以是实时流传输协议(Real Time Streaming Protocol,RTSP)、也可以是实时消息传输协议(Real Time Messaging Protocol, RTMP)。
请参考图2,其示出了本申请一个实施例涉及的实施环境的示意图。该实施环境包括主播终端21、服务器22。
主播终端21是主播用户使用的终端,该主播终端21安装有直播类应用程序,该直播类应用程序能够实现图1所示实施例中的“采集、处理、编码、封装、推流”等步骤。可选地,该主播终端21中安装有预设应用程序,该预设应用程序可以是更先进的动态图像专家组(Fast Forward Mpeg,FFmpeg),FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序,其提供了录制、转换以及流化音视频的完整解决方案。该主播终端21 可以是智能手机、平板电脑、个人计算机(Personal Computer,PC)等等。需要说明的是,该主播终端21可以称之为“推流端”。
服务器22可以是上述直播类应用程序对应的后台服务器。在本申请实施例中,服务器22用于与多个终端(例如主播终端21、观众终端)进行数据交互,例如接收主播终端21发送的音视频数据,向观众终端转发主播终端21 提供的音视频数据等。服务器22可以是一台服务器,也可以是多台服务器组成的服务器集群,还可以是一个云计算服务中心。
可选地,该实施环境还包括观众终端(图2未示出)。观众终端是观众用户使用的终端,该观众终端也安装有直播类应用程序,该直播类应用程序能够实现“拉流、解封装、解码、播放”等步骤。数据拉流是指从服务器拉取主播终端上传的音视频数据的过程。解封装是封装的逆过程。解码是编码的逆过程。播放是指显示视频画面以及播放音频的过程。观众终端可以是智能手机、平板电脑、个人计算机、智能可穿戴设备等等。需要说明的是,该观众终端可以称之为“拉流端”。
主播终端21与服务器22之间通过无线网络或有线网络建立通信连接。观众终端与服务器22之间通过无线网络或有线网络建立通信连接。
上述的无线网络或有线网络使用标准通信技术和/或协议。网络通常为因特网、但也可以是其它任何网络,包括但不限于局域网(Local Area Network,LAN)、城域网(Metropolitan Area Network,MAN)、广域网(Wide Area Network,WAN)、移动、有线或者无线网络、专用网络或者虚拟专用网络的任何组合)。在一些实施例中,使用包括超文本标记语言(Hyper Text Mark-up Language,HTML)、可扩展标记语言(Extensible MarkupLanguage,XML)等的技术和/或格式来代表通过网络交换的数据。此外还可以使用诸如安全套接字层 (Secure Socket Layer,SSL)、传输层安全(Transport Layer Security,TLS)、虚拟专用网络(Virtual Private Network,VPN)、网际协议安全(Internet ProtocolSecurity,IPsec)等常规加密技术来加密所有或者一些链路。在另一些实施例中,还可以使用定制和/或专用数据通信技术取代或者补充上述数据通信技术。
请参考图3,其示出了本申请一个实施例示出的直播数据的推流方法的流程图。该方法可以应用于图2所示实施例的主播终端中。该方法包括:
步骤301,通过第一编码器对采集到的视频数据进行编码,得到编码后的视频数据。
第一编码器可以是MPEG2编码器、MPEG4编码器、H.264编码器、H.265 编码器、VP8编码器、VP9编码器中的任意一种。在本申请实施例中,仅以第一编码器为H.265编码器为例进行说明。
第一编码器是预设应用程序对应的外编码器库中未存储的编码器。预设应用程序可以是FFmpeg,FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序,其提供了录制、转换以及流化音视频的完整解决方案。预设应用程序对应的外编码器库是指基于FFmpeg的开源库。
视频数据可以由终端对应的摄像头组件采集得到,也可以由录屏软件采集得到,还可以由摄像头组件以及录屏软件协同采集得到。摄像头组件用于采集主播终端所处的环境中的画面,录屏软件用于采集主播终端所显示的屏幕中的画面。在一些实施例中,终端还可以通过麦克风组件采集音频数据。
H.265编码器采用的H.265编码技术是一种高效的视频编码技术,其工作原理都是通过比较视频单帧,来找出重复帧,这些重复帧会被替换为少量可以代表原内容的替代数据信息。
步骤302,通过第二编码器初始化推流环境。
第二编码器是预设应用程序对应的外编码器库中存储的编码器。第二编码器可以是MPEG2编码器、MPEG4编码器、H.264编码器、H.265编码器、VP8 编码器、VP9编码器中的任意一种。第一编码器与第二编码器不相同。初始化推流环境是指对推流环境进行设置的过程。
在本申请实施例中,终端采用基于FFmpeg的开源库中存储的编码器来初始化推流环境,初始化完成的推流环境可用于对编码后的视频数据进行推流,由于在初始化推流环境时无需使用对视频数据进行编码的编码器,因此在基于 FFmpeg的开源库中未存储对视频数据进行编码的编码器的情况下,也能完成对推流环境的初始化,并通过初始化完成的推流环境进行数据推流,进而提升数据推流的成功率。
步骤303,基于推流环境推流直播数据。
直播数据包括编码后的视频数据。在一些实施例中,直播数据还包括编码后的音频数据。终端在完成推流环境的初始化后,向服务器发送直播数据。服务器用于接收直播数据,并根据观众终端发送地直播观众请求向观众终端发送直播数据。
综上所述,本申请实施例提供的技术方案,通过采用直播推流所需的应用程序对应的外编码器库(例如基于FFmpeg的开源库)中存储的编码器来初始化推流环境,而无需采用对视频数据进行编码的编码器来初始化推流环境,因此在直播推流所需的应用程序对应的外编码器库中未存储对视频数据进行编码的编码器的情况下,也能完成对推流环境的初始化,并通过初始化完成的推流环境进行数据推流,进而提升数据推流的成功率。
请参考图4,其示出了本申请一个实施例示出的直播数据的推流方法的流程图。该方法可以应用于图2所示实施例中的主播终端。该方法包括:
步骤401,通过第一编码器对采集到的视频数据进行编码,得到编码后的视频数据。
第一编码器是预设应用程序对应的外编码器库中未存储的编码器。
步骤402,对编码后的视频数据进行封装容器的预设置。
数据封装是指将已经编码压缩好的视频轨和音频轨按照一定的格式放到一个文件中,该文件也即是预设封装容器。预设封装容器可以是AVI、FLV、MKV 中的至少一种。
在本申请实施例中,封装容器中的编码器被设置为第一编码器,以使得能够顺利完成数据封装。
步骤403,在预设应用程序对应的外编码器库中查找第二编码器。
在一些实施例中,步骤403可以包括如下步骤:
步骤403b,获取预设应用程序对应的外编码器库中存储的至少一个编码器。
终端可以获取预设应用程序对应的外编码器库中存储的全部编码器,也可以获取预设应用程序对应的外编码器库中存储的部分编码器。
步骤403c,在至少一个编码器中确定出第二编码器。
在一些实施例中,终端可以根据各个编码器的使用成本来确定第二编码器,例如将无需支付专利费用的编码器确定为第二编码器。在另一些实施例中,终端可以将最先查找到的编码器确定为第二编码器。
步骤404,打开第二编码器。
终端查找第二编码器并打开第二编码器。
步骤405,将预设应用程序与预设推流协议绑定。
预设推流协议可以是RTSP、RTMP中的至少一种。在本申请实施例中,仅以预设推流协议为RTSP为例进行说明。
步骤406,将基于预设推流协议的推流环境中的编码器设置为第一编码器。
在本申请实施例中,基于预设推流协议的推流环境是指RTSP推流环境。
步骤407,在基于预设推流协议的推流环境中设置推流地址。
推流地址是主播终端所使用的网络地址。
步骤408,基于推流环境推流直播数据。
直播数据包括编码后的视频数据。
综上所述,本申请实施例提供的技术方案,通过采用直播推流所需的应用程序对应的外编码器库(例如基于FFmpeg的开源库)中存储的编码器来初始化推流环境,而无需采用对视频数据进行编码的编码器来初始化推流环境,因此在直播推流所需的应用程序对应的外编码器库中未存储对视频数据进行编码的编码器的情况下,也能完成对推流环境的初始化,并通过初始化完成的推流环境进行数据推流,进而提升数据推流的成功率。
以下为本申请装置实施例,对于装置实施例中未详细阐述的部分,可以参考上述方法实施例中公开的技术细节。
请参考图5,其示出了本申请一个示例性实施例提供的直播数据的推流装置的框图。该直播数据的推流装置可以通过软件、硬件或者两者的组合实现成为终端的全部或一部分。该装置包括:
数据编码模块501,用于通过第一编码器对采集到的视频数据进行编码,得到编码后的视频数据,所述第一编码器是预设应用程序对应的外编码器库中未存储的编码器。
环境初始化模块502,用于通过第二编码器初始化推流环境,所述第二编码器是所述预设应用程序对应的外编码器库中存储的编码器。
数据推流模块503,用于基于所述推流环境推流直播数据,所述直播数据包括所述编码后的视频数据。
综上所述,本申请实施例提供的技术方案,通过采用直播推流所需的应用程序对应的外编码器库(例如基于FFmpeg的开源库)中存储的编码器来初始化推流环境,而无需采用对视频数据进行编码的编码器来初始化推流环境,因此在预直播推流所需的应用程序对应的外编码器库中未存储对视频数据进行编码的编码器的情况下,也能完成对推流环境的初始化,并通过初始化完成的推流环境进行数据推流,进而提升数据推流的成功率。
在基于图5所示实施例提供的可选实施例中,所述环境初始化模块502,用于:
在所述预设应用程序对应的外编码器库中查找所述第二编码器,并打开所述第二编码器;
将所述预设应用程序与预设推流协议绑定;
将基于所述预设推流协议的推流环境中的编码器设置为所述第一编码器。
可选地,所述环境初始化模块502,还用于:
获取所述预设应用程序对应的外编码器库中存储的至少一个编码器;
在所述至少一个编码器中确定出所述第二编码器。
在一些实施例中,所述环境初始化模块502,还用于在所述基于所述预设推流协议的推流环境中设置推流地址。
在基于图5所示实施例提供的可选实施例中,所述装置还包括:数据封装模块(图5未示出)。
容器设置模块,用于对所述编码后的视频数据进行封装容器的预设置,所述封装容器中的编码器被设置为所述第一编码器。
在基于图5所示实施例提供的可选实施例中,所述第一编码器为以下任意一种:MPEG2编码器、MPEG4编码器、H.264编码器、H.265编码器、VP8 编码器、VP9编码器;所述第二编码器为以下任意一种:所述MPEG2编码器、所述MPEG4编码器、所述H.264编码器、所述H.265编码器、所述VP8编码器、所述VP9编码器;其中,所述第一编码器与所述第二编码器不同。
需要说明的是,上述实施例提供的装置在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图6示出了本申请一个示例性实施例提供的终端600的结构框图。该终端 600可以是:智能手机、平板电脑、MP3播放器(Moving Picture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving Picture Experts Group Audio LayerIV,动态影像专家压缩标准音频层面4)播放器、笔记本电脑或台式电脑。终端600还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。
通常,终端600包括有:处理器601和存储器602。
处理器601可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器601可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列 (Programmable LogicArray,PLA)中的至少一种硬件形式来实现。处理器601 也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称中央处理器(CentralProcessing Unit,CPU);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器601可以在集成有图像处理器(Graphics Processing Unit,GPU),GPU用于负责显示屏所需要显示的内容的渲染和绘制。
存储器602可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器602还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器602中的非暂态的计算机可读存储介质用于存储计算机程序,该计算机程序用于被处理器601所执行以实现本申请中方法实施例提供的直播数据的推流方法。
在一些实施例中,终端600还可选包括有:外围设备接口603和至少一个外围设备。处理器601、存储器602和外围设备接口603之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口603 相连。具体地,外围设备包括:射频电路604、触摸显示屏605、摄像头606、音频电路607、定位组件608和电源609中的至少一种。
外围设备接口603可被用于将输入/输出(Input/Output,I/O)相关的至少一个外围设备连接到处理器601和存储器602。在一些实施例中,处理器601、存储器602和外围设备接口603被集成在同一芯片或电路板上;在一些其他实施例中,处理器601、存储器602和外围设备接口603中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路604用于接收和发射射频(Radio Frequency,RF)信号,也称电磁信号。射频电路604通过电磁信号与通信网络以及其他通信设备进行通信。射频电路604将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路604包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路604可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:万维网、城域网、内联网、各代移动通信网络 (2G、3G、4G及5G)、无线局域网和/或无线保真(Wireless Fidelity,WiFi)网络。在一些实施例中,射频电路604还可以包括近距离无线通信(Near Field Communication,NFC)有关的电路,本申请对此不加以限定。
显示屏605用于显示用户界面(User Interface,UI)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏605是触摸显示屏时,显示屏605还具有采集在显示屏605的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器601进行处理。此时,显示屏605还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏605可以为一个,设置终端600的前面板;在另一些实施例中,显示屏 605可以为至少两个,分别设置在终端600的不同表面或呈折叠设计;在再一些实施例中,显示屏605可以是柔性显示屏,设置在终端600的弯曲表面上或折叠面上。甚至,显示屏605还可以设置成非矩形的不规则图形,也即异形屏。显示屏605可以采用液晶显示屏(Liquid Crystal Display,LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等材质制备。
摄像头组件606用于采集图像或视频。可选地,摄像头组件606包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及虚拟现实(Virtual Reality,VR)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件606还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路607可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器601进行处理,或者输入至射频电路 604以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端600的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器601或射频电路604的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路607还可以包括耳机插孔。
定位组件608用于定位终端600的当前地理位置,以实现导航或基于位置的服务(Location Based Service,LBS)。定位组件608可以是基于美国的全球定位系统(GlobalPositioning System,GPS)、中国的北斗系统或俄罗斯的伽利略系统的定位组件。
电源609用于为终端600中的各个组件进行供电。电源609可以是交流电、直流电、一次性电池或可充电电池。当电源609包括可充电电池时,该可充电电池可以是有线充电电池或无线充电电池。有线充电电池是通过有线线路充电的电池,无线充电电池是通过无线线圈充电的电池。该可充电电池还可以用于支持快充技术。
在一些实施例中,终端600还包括有一个或多个传感器610。该一个或多个传感器610包括但不限于:加速度传感器611、陀螺仪传感器612、压力传感器 613、指纹传感器614、光学传感器615以及接近传感器616。
加速度传感器611可以检测以终端600建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器611可以用于检测重力加速度在三个坐标轴上的分量。处理器601可以根据加速度传感器611采集的重力加速度信号,控制触摸显示屏605以横向视图或纵向视图进行用户界面的显示。加速度传感器611 还可以用于游戏或者用户的运动数据的采集。
陀螺仪传感器612可以检测终端600的机体方向及转动角度,陀螺仪传感器612可以与加速度传感器611协同采集用户对终端600的3D动作。处理器 601根据陀螺仪传感器612采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。
压力传感器613可以设置在终端600的侧边框和/或触摸显示屏605的下层。当压力传感器613设置在终端600的侧边框时,可以检测用户对终端600的握持信号,由处理器601根据压力传感器613采集的握持信号进行左右手识别或快捷操作。当压力传感器613设置在触摸显示屏605的下层时,由处理器601 根据用户对触摸显示屏605的压力操作,实现对UI界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。
指纹传感器614用于采集用户的指纹,由处理器601根据指纹传感器614 采集到的指纹识别用户的身份,或者,由指纹传感器614根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器601授权该用户执行相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器614可以被设置终端600的正面、背面或侧面。当终端600上设置有物理按键或厂商Logo时,指纹传感器614可以与物理按键或厂商Logo集成在一起。
光学传感器615用于采集环境光强度。在一个实施例中,处理器601可以根据光学传感器615采集的环境光强度,控制触摸显示屏605的显示亮度。具体地,当环境光强度较高时,调高触摸显示屏605的显示亮度;当环境光强度较低时,调低触摸显示屏605的显示亮度。在另一个实施例中,处理器601还可以根据光学传感器615采集的环境光强度,动态调整摄像头组件606的拍摄参数。
接近传感器616,也称距离传感器,通常设置在终端600的前面板。接近传感器616用于采集用户与终端600的正面之间的距离。在一个实施例中,当接近传感器616检测到用户与终端600的正面之间的距离逐渐变小时,由处理器 601控制触摸显示屏605从亮屏状态切换为息屏状态;当接近传感器616检测到用户与终端600的正面之间的距离逐渐变大时,由处理器601控制触摸显示屏 605从息屏状态切换为亮屏状态。
本领域技术人员可以理解,图6中示出的结构并不构成对终端600的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
在示例性实施例中,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序由终端的处理器加载并执行以实现上述方法实施例中的直播数据的推流方法。
可选地,上述计算机可读存储介质可以是只读存储器(Read-Only Memory, ROM)、随机存取存储器(Random Access Memory,RAM)、磁带、软盘和光数据存储设备等。
在示例性实施例中,还提供了一种计算机程序产品,当该计算机程序产品被执行时,其用于实现上述方法实施例中提供的直播数据的推流方法。
应当理解的是,在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。本文中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
以上所述仅为本申请的示例性实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (8)
1.一种直播数据的推流方法,其特征在于,所述方法包括:
通过第一编码器对采集到的视频数据进行编码,得到编码后的视频数据,所述第一编码器是预设应用程序对应的外编码器库中未存储的编码器;
通过第二编码器初始化推流环境,所述第二编码器是所述预设应用程序对应的外编码器库中存储的编码器,所述第二编码器为根据所述预设应用程序对应的外编码器库中各个编码器的使用成本确定的或从所述预设应用程序对应的外编码器库最先查找到的编码器;
基于所述推流环境推流直播数据,所述直播数据包括所述编码后的视频数据;
其中,所述通过第二编码器初始化推流环境,包括:
在所述预设应用程序对应的外编码器库中查找所述第二编码器,并打开所述第二编码器;
将所述预设应用程序与预设推流协议绑定;
将基于所述预设推流协议的推流环境中的编码器设置为所述第一编码器。
2.根据权利要求1所述的方法,其特征在于,所述在所述预设应用程序对应的外编码器库中查找所述第二编码器,包括:
获取所述预设应用程序对应的外编码器库中存储的至少一个编码器;
在所述至少一个编码器中确定出所述第二编码器。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述基于所述预设推流协议的推流环境中设置推流地址。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述通过第一编码器对采集到的视频数据进行编码,得到编码后的视频数据之后,还包括:
对所述编码后的视频数据进行封装容器的预设置,所述封装容器中的编码器被设置为所述第一编码器。
5.根据权利要求1至3任一项所述的方法,其特征在于,
所述第一编码器为以下任意一种:第二代动态图像专家组MPEG2编码器、第四代动态图像专家组MPEG4编码器、H.264编码器、H.265编码器、VP8编码器、VP9编码器;
所述第二编码器为以下任意一种:所述MPEG2编码器、所述MPEG4编码器、所述H.264编码器、所述H.265编码器、所述VP8编码器、所述VP9编码器;
其中,所述第一编码器与所述第二编码器不同。
6.一种直播数据的推流装置,其特征在于,所述装置包括:
数据编码模块,用于通过第一编码器对采集到的视频数据进行编码,得到编码后的视频数据,所述第一编码器是预设应用程序对应的外编码器库中未存储的编码器;
环境初始化模块,用于通过第二编码器初始化推流环境,所述第二编码器是所述预设应用程序对应的外编码器库中存储的编码器,所述第二编码器为根据所述预设应用程序对应的外编码器库中各个编码器的使用成本确定的或从所述预设应用程序对应的外编码器库最先查找到的编码器;
数据推流模块,用于基于所述推流环境推流直播数据,所述直播数据包括所述编码后的视频数据;
其中,环境初始化模块通过所述第二编码器初始化推流环境,具体为:
在所述预设应用程序对应的外编码器库中查找所述第二编码器,并打开所述第二编码器;
将所述预设应用程序与预设推流协议绑定;
将基于所述预设推流协议的推流环境中的编码器设置为所述第一编码器。
7.一种终端,其特征在于,所述终端包括处理器和存储器,所述存储器存储有计算机程序,所述计算机程序由所述处理器加载并执行以实现如权利要求1至5任一项所述的直播数据的推流方法。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序由处理器加载并执行以实现如权利要求1至5任一项所述的直播数据的推流方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010291311.3A CN111478915B (zh) | 2020-04-14 | 2020-04-14 | 直播数据的推流方法、装置、终端及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010291311.3A CN111478915B (zh) | 2020-04-14 | 2020-04-14 | 直播数据的推流方法、装置、终端及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111478915A CN111478915A (zh) | 2020-07-31 |
CN111478915B true CN111478915B (zh) | 2022-10-14 |
Family
ID=71751932
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010291311.3A Active CN111478915B (zh) | 2020-04-14 | 2020-04-14 | 直播数据的推流方法、装置、终端及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111478915B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115119012A (zh) * | 2022-08-30 | 2022-09-27 | 广州市千钧网络科技有限公司 | 一种录屏直播系统、方法、设备和存储介质 |
CN117499774A (zh) * | 2023-12-31 | 2024-02-02 | 成都天软信息技术有限公司 | 一种车载智能终端的录影控制系统及方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019075581A1 (en) * | 2017-10-19 | 2019-04-25 | Lazar Entertainment Inc. | SYSTEMS AND METHODS FOR LIVE MULTIMEDIA STREAM BROADCAST |
CN110650307A (zh) * | 2019-10-30 | 2020-01-03 | 广州河东科技有限公司 | 基于qt的音视频推流方法、装置、设备及存储介质 |
CN110944197A (zh) * | 2018-09-25 | 2020-03-31 | 中国移动通信有限公司研究院 | 一种图像、音频编码的方法和装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI520590B (zh) * | 2012-12-17 | 2016-02-01 | 財團法人工業技術研究院 | 影音串流傳輸方法、影音裝置以及影音提供裝置 |
CN110602065A (zh) * | 2019-08-29 | 2019-12-20 | 深圳市麦谷科技有限公司 | 直播推流方法和装置 |
-
2020
- 2020-04-14 CN CN202010291311.3A patent/CN111478915B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019075581A1 (en) * | 2017-10-19 | 2019-04-25 | Lazar Entertainment Inc. | SYSTEMS AND METHODS FOR LIVE MULTIMEDIA STREAM BROADCAST |
CN110944197A (zh) * | 2018-09-25 | 2020-03-31 | 中国移动通信有限公司研究院 | 一种图像、音频编码的方法和装置 |
CN110650307A (zh) * | 2019-10-30 | 2020-01-03 | 广州河东科技有限公司 | 基于qt的音视频推流方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111478915A (zh) | 2020-07-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109246466B (zh) | 视频播放方法、装置及电子设备 | |
CN108401124B (zh) | 视频录制的方法和装置 | |
CN108833963B (zh) | 显示界面画面的方法、计算机设备、可读存储介质和系统 | |
CN108093268B (zh) | 进行直播的方法和装置 | |
CN109348247B (zh) | 确定音视频播放时间戳的方法、装置及存储介质 | |
CN108966008B (zh) | 直播视频回放方法及装置 | |
CN111093108B (zh) | 音画同步判断方法、装置、终端及计算机可读存储介质 | |
CN109874043B (zh) | 视频流发送方法、播放方法及装置 | |
CN111083507B (zh) | 连麦方法及系统、第一主播端、观众端及计算机存储介质 | |
CN110533585B (zh) | 一种图像换脸的方法、装置、系统、设备和存储介质 | |
CN108616776B (zh) | 直播分析数据获取方法及装置 | |
CN108769738B (zh) | 视频处理方法、装置、计算机设备和存储介质 | |
CN111010588B (zh) | 直播处理方法、装置、存储介质及设备 | |
CN108965711B (zh) | 视频处理方法及装置 | |
CN111586431B (zh) | 进行直播处理的方法、装置、设备及存储介质 | |
CN110996117B (zh) | 视频转码方法、装置、电子设备和存储介质 | |
CN112118477A (zh) | 虚拟礼物展示方法、装置、设备以及存储介质 | |
CN107896337B (zh) | 信息推广方法、装置及存储介质 | |
CN108900921A (zh) | 连麦直播方法、装置及存储介质 | |
CN113225616B (zh) | 视频播放方法、装置、计算机设备及可读存储介质 | |
CN110958464A (zh) | 直播数据处理方法、装置、服务器、终端及存储介质 | |
CN111478915B (zh) | 直播数据的推流方法、装置、终端及存储介质 | |
CN112131422A (zh) | 表情图片生成方法、装置、设备及介质 | |
CN109819314B (zh) | 音视频处理方法、装置、终端及存储介质 | |
CN107888975B (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 |