CN110300322B - 一种屏幕录制的方法、客户端和终端设备 - Google Patents

一种屏幕录制的方法、客户端和终端设备 Download PDF

Info

Publication number
CN110300322B
CN110300322B CN201910334746.9A CN201910334746A CN110300322B CN 110300322 B CN110300322 B CN 110300322B CN 201910334746 A CN201910334746 A CN 201910334746A CN 110300322 B CN110300322 B CN 110300322B
Authority
CN
China
Prior art keywords
screen recording
audio
data
module
player
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.)
Expired - Fee Related
Application number
CN201910334746.9A
Other languages
English (en)
Other versions
CN110300322A (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.)
Wangsu Science and Technology Co Ltd
Original Assignee
Wangsu Science and 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 Wangsu Science and Technology Co Ltd filed Critical Wangsu Science and Technology Co Ltd
Priority to CN201910334746.9A priority Critical patent/CN110300322B/zh
Priority to EP19800910.2A priority patent/EP3748978A4/en
Priority to PCT/CN2019/090324 priority patent/WO2020215454A1/zh
Publication of CN110300322A publication Critical patent/CN110300322A/zh
Priority to US16/717,861 priority patent/US11115706B2/en
Application granted granted Critical
Publication of CN110300322B publication Critical patent/CN110300322B/zh
Expired - Fee Related 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/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • 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/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • 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/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • H04N21/2387Stream processing in response to a playback request from an end-user, e.g. for trick-play
    • 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/414Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance
    • H04N21/4147PVR [Personal Video Recorder]
    • 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/4302Content synchronisation processes, e.g. decoder synchronisation
    • H04N21/4307Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen
    • 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/433Content storage operation, e.g. storage operation in response to a pause request, caching operations
    • H04N21/4334Recording operations
    • 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/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/47End-user applications
    • H04N21/472End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
    • H04N21/47217End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for controlling playback functions for recorded or on-demand content, e.g. using progress bars, mode or play-point indicators or bookmarks

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Human Computer Interaction (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Television Signal Processing For Recording (AREA)

Abstract

本发明公开了一种屏幕录制的方法、客户端和终端设备,所述方法包括:当接收到录屏指令时,启动录屏数据合成模块;将播放器的编码音频数据输入所述录屏数据合成模块进行叠加,得到并轨音频数据;将所述播放器的视频数据输入所述录屏数据合成模块,与所述并轨音频数据合并,得到录屏数据。本发明可以完整记录直播场景中的所有音视频数据,保证直播场景的完整性。

Description

一种屏幕录制的方法、客户端和终端设备
技术领域
本发明涉及流媒体技术领域,尤其涉及一种屏幕录制的方法、客户端和终端设备。
背景技术
随着互联网技术的不断发展,实时音视频通信日益受到人们的青睐,越来越多的人通过网络收看视频直播或视频点播。为了方便用户能够点播回看以前的直播视频,往往需要在视频直播的同时进行屏幕录制(简称录屏)。
在进行屏幕录制时,通常以当前界面进行截图作为视频帧数据,然后对视频帧数据进行编码;同时获取音频原始数据,再对音频原始数据进行编码;之后将编码的视频帧数据与编码的音频原始数据合成得到录屏数据。
在实现本发明的过程中,发明人发现现有技术中至少存在以下问题:
在线教育、连麦等视频直播场景下往往在同一播放器中同时启动有多个音频播放单元,而现有录屏方法难以获得直播场景中所有音频播放单元的音频数据,因此,在多音频播放单元的直播场景中,常规录屏方法难以记录直播场景中的所有音视频数据。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种屏幕录制的方法、客户端和终端设备。所述技术方案如下:
第一方面,提供了一种屏幕录制的方法,所述方法在客户端执行,包括:
当接收到录屏指令时,启动录屏数据合成模块;
将播放器的编码音频数据输入所述录屏数据合成模块进行叠加,得到并轨音频数据;
将所述播放器的视频数据输入所述录屏数据合成模块,与所述并轨音频数据合并,得到录屏数据。
进一步的,所述将播放器的编码音频数据输入所述录屏数据合成模块进行叠加之前,所述方法还包括:
启动音频采编模块,采集播放器包含的每个音频播放单元的音频数据,并周期性对所述音频数据进行编码,得到所述播放器的编码音频数据。
进一步的,在接收到录屏指令之前,所述方法还包括:
当所述播放器初始化时,获取所述播放器中每个音频播放单元的音频播放参数;
根据每个所述音频播放单元的音频播放参数和预设的音频统一编码参数,启动每个所述音频播放单元对应的音频采编模块。
进一步的,所述方法还包括:
当所述播放器初始化时,所述启动音频采编管理模块;
当接收到录屏指令时,通过所述音频采编管理模块,控制所有音频采编模块同时采集对应音频播放单元的音频数据;
当接收到结束指令时,通过所述音频采编管理模块,控制所有音频采编模块同时停止采集对应音频播放单元的音频数据。
进一步的,当接收到录屏指令时,所述客户端还启动录屏数据输入模块;
所述将播放器的编码音频数据输入所述录屏数据合成模块进行叠加,得到并轨音频数据,包括:
通过所述录屏数据输入模块,将每个所述音频播放单元对应的编码音频数据逐一输入所述录屏数据合成模块;
通过所述录屏数据合成模块,将所有音频播放单元对应的编码音频数据进行叠加,得到并轨音频数据。
进一步的,当接收到录屏指令时,所述客户端还启动录屏数据输出模块;
将所述播放器的视频数据输入所述录屏数据合成模块,与所述并轨音频数据合并,得到录屏数据,包括:
通过所述录屏数据输入模块,将所述视频数据输入所述录屏数据合成模块;
通过所述录屏数据合成模块,将所述视频数据与所述并轨音频数据合并,并通过所述录屏数据输出模块生成录屏数据。
进一步的,所述方法还包括:
当所述音频播放单元初始化时,启动合成管理模块;
通过所述合成管理模块确定当前录屏状态,并根据所述录屏状态进行对应的处理,其中,所述录屏状态包括正常、等待超时、取消和结束。
进一步的,所述方法还包括:
当接收到录屏指令时,根据预设的视频采集参数,启动视频采编模块,采集所述播放器的视频数据。
第二方面,提供一种屏幕录制的客户端,所述客户端用于:
当接收到录屏指令时,启动录屏数据合成模块;
将播放器的编码音频数据输入所述录屏数据合成模块进行叠加,得到并轨音频数据;
将所述播放器的视频数据输入所述录屏数据合成模块,与所述并轨音频数据合并,得到录屏数据。
进一步的,所述客户端还用于:
启动音频采编模块,采集播放器包含的每个音频播放单元的音频数据,并周期性对所述音频数据进行编码,得到所述播放器的编码音频数据。
进一步的,所述客户端还用于:
当所述播放器初始化时,获取所述播放器中每个音频播放单元的音频播放参数;
根据每个所述音频播放单元的音频播放参数和预设的音频统一编码参数,启动每个所述音频播放单元对应的音频采编模块。
进一步的,所述客户端还用于:
当所述播放器初始化时,启动音频采编管理模块;
当接收到录屏指令时,通过所述音频采编管理模块,控制所有音频采编模块同时采集对应音频播放单元的音频数据;
当接收到结束指令时,通过所述音频采编管理模块,控制所有音频采编模块同时停止采集对应音频播放单元的音频数据。
进一步的,当接收到录屏指令时,所述客户端还启动录屏数据输入模块;
所述客户端还用于:
通过所述录屏数据输入模块,将每个所述音频播放单元对应的编码音频数据逐一输入所述录屏数据合成模块;
通过所述录屏数据合成模块,将所有音频播放单元对应的编码音频数据进行叠加,得到并轨音频数据。
进一步的,当接收到录屏指令时,所述客户端还启动录屏数据输出模块;
所述客户端还用于:
通过所述录屏数据输入模块,将所述视频数据输入所述录屏数据合成模块;
通过所述录屏数据合成模块,将所述视频数据与所述并轨音频数据合并,并通过所述录屏数据输出模块生成录屏数据。
进一步的,所述客户端还用于:
当所述播放器初始化时,启动合成管理模块;
通过所述合成管理模块,确定当前录屏状态,并根据所述录屏状态进行对应的处理,其中,所述录屏状态包括正常、等待超时、取消和结束。
进一步的,所述客户端还用于:
当接收到录屏指令时,根据预设的视频采集参数,启动视频采编模块,采集所述播放器的视频数据。
第三方面,提供一种屏幕录制的终端设备,包括如第二方面所述的客户端。
本发明实施例提供的技术方案带来的有益效果是:
本发明实施例中,当接收到录屏指令时,启动录屏数据合成模块;将播放器的编码音频数据输入所述录屏数据合成模块进行叠加,得到并轨音频数据;将所述播放器的视频数据输入所述录屏数据合成模块,与所述并轨音频数据合并,得到录屏数据。这样,客户端通过录屏数据合成模块首先将直播场景中播放器中所有音频播放单元的音频数据进行叠加,得到一条并轨音频数据,再将并轨音频数据与视频数据进行合并,从而可以将直播场景中的所有音视频数据都记录下来,保证了直播场景中音视频数据的完整性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种屏幕录制的方法的流程图;
图2是本发明实施例提供的一种屏幕录制的方法中生成并轨音频数据的处理流程图;
图3是本发明实施例提供的一种屏幕录制的方法中生成录屏数据的处理流程图;
图4是本发明实施例提供的一种屏幕录制的客户端的结构示意图;
图5是本发明实施例提供的一种屏幕录制的客户端的结构示意图;
图6是本发明实施例提供的一种屏幕录制的客户端的结构示意图;
图7是本发明实施例提供的一种屏幕录制的客户端的结构示意图;
图8是本发明实施例提供的一种屏幕录制的客户端的结构示意图;
图9是本发明实施例提供的一种屏幕录制的客户端的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
本发明实施例提供了一种屏幕录制的方法,该方法可以适用于具有录屏功能的客户端上。安装有该客户端的终端设备上还可以同时安装有播放器,终端设备可以是移动终端或者其他终端设备。用户使用终端设备通过播放器观看视频直播时,可以通过该客户端对直播视频内容进行录屏。本实施例的应用场景可以是:用户在终端设备上通过播放器收看视频直播时,启动客户端进行录屏。客户端接收到录屏指令后启动录屏数据合成模块。客户端将播放器上所有参与直播的音频播放单元对应的编码音频数据输入录屏数据合成模块进行叠加,得到并轨音频数据。客户端再将从播放器上采集到的视频数据也输入录屏数据合成模块,并将之前得到的并轨音频数据与视频数据合并,最终得到录屏数据。
下面将结合具体实施方式,对图1所示的一种屏幕录制的流程进行详细的说明,内容可以如下:
步骤101:当接收到录屏指令时,启动录屏数据合成模块。
在实施中,终端设备上预先安装有客户端和播放器,下述方法均通过该客户端执行。为了便于理解,本实施例以iOS终端设备的应用客户端(App)为例进行说明。当接收到录屏指令时,客户端基于iOS Framework AVFoundation框架中的AVMutableComposition接口启动录屏数据合成模块。
具有不同音频参数的音频数据无法直接进行叠加,可以对这些音频数据使用相同的音频参数进行编码,从而便于并轨处理,故而,相应的处理可以如下:启动音频采编模块,采集播放器包含的每个音频播放单元的音频数据,并周期性对音频数据进行编码,得到播放器的编码音频数据。
在实施中,用户在使用iOS终端设备观看视频直播时,播放器中可能同时有不止一个音频播放单元播放音频数据,不同的音频播放单元具有不同的音频播放参数,导致从不同音频播放单元采集到的音频数据无法进行并轨处理,因此,客户端可以通过音频采编模块,采集不同音频播放单元的音频数据,然后使用相同的音频参数对这些音频数据进行编码,从而得到具有相同音频参数的编码音频数据。
例如:音频采编模块在采集音频数据时,可以通过PCM(Pulse Code Modulation,脉冲编码调制)编码进行采集,然后使用libmp3lame库为采集到的音频数据(PCM数据)进行编码,得到MP3格式的编码音频数据(MP3数据)。在采集和编码过程中,音频采编模块还可以对音频数据(PCM数据)或编码音频数据(MP3数据)进行临时缓存,音频采编模块可以以音频数据(PCM数据)或编码音频数据(MP3数据)创建时的绝对时间戳作为统一标识,记录音频数据(PCM数据)或编码音频数据(MP3数据)的临时缓存路径。在录屏过程中,音频采编模块不需要实时对音频数据(PCM数据)进行编码,可以周期性(如500ms)地确定采集到的音频数据(PCM数据)是否充足,如果充足则对音频数据(PCM数据)进行编码,否则可以继续等待500ms至下一周期。
为了能够采集具有不同音频播放参数的音频播放单元的音频数据,并且对采集到的音频数据进行统一编码,相应的处理可以如下:当播放器初始化时,获取播放器中每个音频播放单元的音频播放参数;根据每个音频播放单元的音频播放参数和预设的音频统一编码参数,启动每个音频播放单元对应的音频采编模块。
在实施中,客户端可以提前启动音频采编模块,使得在接收到录屏指令之后能够立即采集音频数据。如前文所述,iOS终端设备上安装的播放器中可能有多个音频播放单元,并且在录屏过程中,多个音频播放单元可能同时产生多路音频数据,因此,可以为每个音频播放单元都启动一个对应的音频采编模块。当iOS终端设备的播放器上的任意一个音频播放单元进行初始化操作时,客户端获取该音频播放单元的音频播放参数,然后根据获取的音频播放参数和预设的音频统一编码参数(例如前文的libmp3lame库)启动该音频播放单元对应的音频采编模块。这样,当开始录屏时,音频采编模块就可以根据音频播放参数,通过PCM编码从对应的音频播放单元采集音频数据,然后将采集到的音频数据,通过音频统一编码参数进行编码。当播放器上,每个音频播放单元进行初始化操作时,客户端可以为其启动一个对应的音频采编模块,在录屏开始前,音频编码模块始终处于等待状态,只有录屏开始后,才开始进行采集和编码工作。音频采编模块都使用相同的音频统一编码参数,这样从不同音频播放单元采集到的音频数据经过编码之后就能够得到具有相同音频参数的编码音频数据。需要说明的是,iOS终端设备的客户端对播放器的音频数据进行上述采集编码,同时,还可以采集播放器的视频数据,并对视频数据进行编码处理,对视频数据进行采集编码处理的过程具体可以参考后文所述。
播放器中可能有多个音频播放单元,因此,客户端可能启动了多个音频采编模块,为了对这些音频采编模块统一管理,相应的处理可以如下:当播放器初始化时,启动音频采编管理模块;当接收到录屏指令时,通过音频采编管理模块,控制所有音频采编模块同时采集对应音频播放单元的音频数据;当接收到结束指令时,通过音频采编管理模块,控制所有音频采编模块同时停止采集对应音频播放单元的音频数据。
在实施中,当iOS终端设备上,播放器的第一个音频播放单元进行初始化操作时,客户端在为该音频播放单元启动音频采编模块的同时,还启动音频采编管理模块,并在音频采编模块与音频采编管理模块之间建立连接,使得音频采编管理模块可以对音频采编模块进行管理操作。客户端在启动其他音频播放单元对应的音频采编模块后,也在这些音频采编模块与音频采编管理模块之间建立连接,这样音频采编管理模块就可以管理所有的音频采编模块。在录屏开始时,音频采编管理模块可以启动音频采编模块,采集音频播放单元的音频数据并进行编码;在录屏结束时,音频采编管理模块可以清除前文所述的采编过程中音频采编模块中产生的PCM数据或MP3数据的临时缓存数据或其他数据。
步骤102:将播放器的编码音频数据输入录屏数据合成模块进行叠加,得到并轨音频数据。
在实施中,在录屏数据合成模块启动之后,客户端可以获取iOS终端设备上,播放器中每一个音频播放单元对应的编码音频数据,并将这些编码音频数据输入录屏数据合成模块,叠加生成并轨音频数据。
当接收到录屏指令时,客户端还可以启动录屏数据输入模块,相应的步骤102的处理,具体可以如下:通过录屏数据输入模块,将每个音频播放单元对应的编码音频数据逐一输入录屏数据合成模块;通过录屏数据合成模块,将所有音频播放单元对应的编码音频数据进行叠加,得到并轨音频数据。
在实施中,当接收到录屏指令时,客户端基于iOS Framework AVFoundation框架,通过的AVURLAsset接口启动录屏数据输入模块,通过AVMutableComposition接口启动录屏数据合成模块。如图2所示,客户端通过录屏数据输入模块获取所有音频播放单元对应的编码音频数据,然后以时间戳0作为起点,将这些编码音频数据逐一输入录屏数据合成模块。录屏数据合成模块将录屏数据输入模块输入的所有编码音频数据进行叠加,得到并轨音频数据。
步骤103:将播放器的视频数据输入录屏数据合成模块,与并轨音频数据合并,得到录屏数据。
在实施中,在得到并轨音频数据之后,客户端将采集到的播放器的视频数据输入录屏数据合成模块,录屏数据合成模块将并轨音频数据和视频数据合并,得到只包含一条音频数据和一条视频数据的录屏数据。
当接收到录屏指令时,客户端还可以启动录屏数据输出模块,相应的步骤103的处理,具体可以如下:通过录屏数据输入模块,将视频数据输入录屏数据合成模块;通过录屏数据合成模块,将视频数据与并轨音频数据合并,并通过录屏数据输出模块生成录屏数据。
在实施中,如图3所示,当接收到录屏指令时,客户端基于iOS FrameworkAVFoundation框架,通过的AVURLAsset接口启动录屏数据输入模块,通过AVMutableComposition接口启动录屏数据合成模块,通过AVAssetExportSession接口启动录屏数据输出模块。在录屏数据合成模块生成并轨音频数据之后,客户端继续通过录屏数据输入模块将采集到的视频数据输入录屏数据合成模块。然后客户端通过录屏数据合成模块将视频数据与并轨音频数据合并,最后通过录屏数据输出模块,将生成录屏数据导出至指定路径。
音频编码效率与视频编码效率存在一定差异,并且音视频编码过程异步进行,为了能够对音频编码模块和视频编码模块统一管理,相应的处理可以如下:当播放器初始化时,启动合成管理模块;通过合成管理模块,确定当前录屏状态,并根据录屏状态进行对应的处理,其中,录屏状态包括正常、等待超时、取消和结束。
在实施中,当iOS终端设备上,播放器的第一个音频播放单元进行初始化操作时,客户端在启动该音频播放单元对应的音频采编模块的同时,还启动合成管理模块,并在合成管理模块与该音频采编模块之间建立连接,使得合成管理模块可以对该音频采编模块进行管理操作。客户端在启动其他音频播放单元对应的音频采编模块、视频采编模块以及录屏数据合成模块之后,也在这些音频采编模块、视频采编模块、录屏数据合成模块与合成管理模块之间建立连接,这样合成管理模块就可以根据当前录屏状态,管理音频采编模块、视频采编模块和录屏数据合成模块。录屏状态包括正常、等待超时、取消和结束。
对于录屏状态为等待超时,是指录屏数据合成模块在合成录屏数据的过程中,当任一音视频采编模块完成对应的音频播放单元上的全部音频数据的采集和编码之后,该音视频采编模块进入等待状态,合成管理模块开始计时,如果在预设的等待时间范围内,有其他音频采编模块也进入等待状态,则合成管理模块重新计时,直至所有音频采编模块都进入等待状态;如果在预设的等待时间范围内,没有其他音频采编模块进入等待状态,则合成管理模块控制所有音频采编模块、视频采编模块和录屏数据合成模块退出当前操作,并向客户端反馈异常日志信息。
有两种情况均可认为录屏状态是取消:(1)在录屏开始后未达到录屏时长最低时长要求时触发结束操作;(2)在录屏开始且未正常及异常结束时,触发取消操作。取消不保存任何数据,清空所有资源、反馈异常日志并退出。录屏数据合成模块在合成录屏数据的过程中,如果客户端接收到取消录屏命令,则合成管理模块控制所有音频采编模块、视频采编模块和录屏数据合成模块停止当前操作,并向客户端反馈日志信息。
对于结束的录屏状态,可分为正常结束和异常结束。正常结束:在录屏时长阈值上下限之内手动触发结束录屏操作,且磁盘空间未达到剩余阈值。异常结束:在录屏过程中,录屏数据合成模块在合成录屏数据的过程中,合成管理模块实时监控iOS终端设备的存储空间、录屏时长等信息,当发生存储空间阈值不足、超过录屏时长上限等情况时,合成管理模块控制所有音频采编模块和视频采编模块停止当前操作,并控制录屏数据合成模块将已完成采集编码的编码音频数据进行叠加处理,再与视频数据合并生成录屏数据。
客户端还可以启动视频采编模块来采集视频数据,相应的处理可以如下:当接收到录屏指令时,根据预设的视频采集参数,启动视频采编模块,采集播放器的视频数据。
在实施中,客户端上预先设置有视频采集参数,当接收到录屏指令时,客户端根据预设的视频采集参数启动视频采编模块,然后通过视频采编模块采集视频数据。客户端上预先设置的视频采集参数包括:视频数据输出路径、采集分辨率、采集频率、视频帧像素格式和视频编码方式等。例如:在接收到录屏指令时,客户端启动视频采编模块,视频采编模块可以以预设的1280×720分辨率、30FPS和32位BGRA作为视频帧像素格式移动屏幕范围内所渲染的内容进行重绘,形成原始图像二进制流,然后使用H.264再进行编码得到视频数据,将视频数据暂存于视频文件路径Screen Record/Video目录中。
需要说明的是,采集分辨率还可以是800×480等其他分辨率,或默认以终端设备的屏幕尺寸作为采集分辨率;设定采集频率时除了指定的帧率,还可以设定帧率的上下限阈值;视频编码方式还可以使用VP8、VP9或HEVC等其他编码方式。
另外,如前文所述,iOS终端设备的客户端可以分别同时对播放器的音频数据和视频数据进行采集编码。当然,可以理解的,iOS终端设备的客户端也可以在采集播放器的音频数据和视频数据后,先对音频数据进行编码,再对视频数据编码;或者先对视频数据编码,再对音频数据编码,本申请对此不作具体限定。
本发明实施例中,当接收到录屏指令时,启动录屏数据合成模块;将播放器的编码音频数据输入所述录屏数据合成模块进行叠加,得到并轨音频数据;将所述播放器的视频数据输入所述录屏数据合成模块,与所述并轨音频数据合并,得到录屏数据。这样,客户端通过录屏数据合成模块首先将直播场景中播放器中所有音频播放单元的音频数据进行叠加,得到一条并轨音频数据,再将并轨音频数据与视频数据进行合并,从而可以将直播场景中的所有音视频数据都记录下来,保证了直播场景中音视频数据的完整性。
基于相同的技术构思,本发明实施例还提供了一种屏幕录制的客户端,如图4所示,所述客户端400用于:
当接收到录屏指令时,启动录屏数据合成模块401;
将播放器的编码音频数据输入所述录屏数据合成模块401进行叠加,得到并轨音频数据;
将所述播放器的视频数据输入所述录屏数据合成模块401,与所述并轨音频数据合并,得到录屏数据。
可选的,如图5所示,所述客户端400还用于:
启动音频采编模块402,采集播放器包含的每个音频播放单元的音频数据,并周期性对所述音频数据进行编码,得到所述音频播放单元对应的编码音频数据。
可选的,所述客户端400还用于:
当所述播放器初始化时,获取所述播放器中每个音频播放单元的音频播放参数;
根据每个所述音频播放单元的音频播放参数和预设的音频统一编码参数,启动所述音频播放单元对应的音频采编模块402。
可选的,如图6所示,所述客户端400还用于:
当所述播放器初始化时,启动音频采编管理模块403;
当接收到录屏指令时,通过所述音频采编管理模块403控制所有音频采编模块402同时采集对应音频播放单元的音频数据;
当接收到结束指令时,通过所述音频采编管理模块403控制所有音频采编模块402同时停止采集对应音频播放单元的音频数据。
可选的,如图7所示,当接收到录屏指令时,所述客户端400还启动录屏数据输入模块404;
所述客户端400还用于:
通过所述录屏数据输入模块404,将每个所述音频播放单元对应的编码音频数据逐一输入所述录屏数据合成模块401;
通过所述录屏数据合成模块401,将所有音频播放单元对应的编码音频数据进行叠加,得到并轨音频数据。
可选的,如图7所示,当接收到录屏指令时,所述客户端400还启动录屏数据输出模块405;
所述客户端400还用于:
通过所述录屏数据输入模块404,将所述视频数据输入所述录屏数据合成模块401;
通过所述录屏数据合成模块401,将所述视频数据与所述并轨音频数据合并,并通过所述录屏数据输出模块405生成录屏数据。
可选的,如图8所示,所述客户端400还用于:
当所述播放器初始化时,启动合成管理模块406;
通过所述合成管理模块406,确定所述当前录屏状态,并根据所述录屏状态进行对应的处理,其中,所述录屏状态包括正常、等待超时、取消和结束。
可选的,如图9所示,所述客户端400还用于:
当接收到录屏指令时,根据预设的视频采集参数,启动视频采编模块407,采集所述播放器的视频数据。
需要说明的是:上述实施例提供的屏幕录制的客户端在实现屏幕录制时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将客户端的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。同时,上述实施例提供的屏幕录制的客户端与屏幕录制的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
基于相同的技术构思,本发明实施例还提供了一种屏幕录制的终端设备,包括上述的客户端,还可以包括至少一个媒体播放器。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务端,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (13)

1.一种屏幕录制的方法,其特征在于,所述方法在客户端执行,包括:
当播放器初始化时,获取所述播放器中每个音频播放单元的音频播放参数;
根据每个所述音频播放单元的音频播放参数和预设的音频统一编码参数,启动每个所述音频播放单元对应的音频采编模块;
当接收到录屏指令时,启动录屏数据合成模块;
启动所述音频采编模块,采集播放器包含的每个音频播放单元的音频数据,并周期性对所述音频数据进行编码,得到所述播放器的编码音频数据;
将播放器中所有播放单元采集到的编码音频数据输入所述录屏数据合成模块进行叠加,得到并轨音频数据;
将所述播放器的视频数据输入所述录屏数据合成模块,与所述并轨音频数据合并,得到录屏数据。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述播放器初始化时,启动音频采编管理模块;
当接收到录屏指令时,通过所述音频采编管理模块,控制所有音频采编模块同时采集对应音频播放单元的音频数据;
当接收到结束指令时,通过所述音频采编管理模块,控制所有音频采编模块同时停止采集对应音频播放单元的音频数据。
3.根据权利要求2所述的方法,其特征在于,当接收到录屏指令时,所述客户端还启动录屏数据输入模块;
所述将播放器的编码音频数据输入所述录屏数据合成模块进行叠加,得到并轨音频数据,包括:
通过所述录屏数据输入模块,将每个所述音频播放单元对应的编码音频数据逐一输入所述录屏数据合成模块;
通过所述录屏数据合成模块,将所有音频播放单元对应的编码音频数据进行叠加,得到并轨音频数据。
4.根据权利要求3所述的方法,其特征在于,当接收到录屏指令时,所述客户端还启动录屏数据输出模块;
所述将所述播放器的视频数据输入所述录屏数据合成模块,与所述并轨音频数据合并,得到录屏数据,包括:
通过所述录屏数据输入模块,将所述视频数据输入所述录屏数据合成模块;
通过所述录屏数据合成模块,将所述视频数据与所述并轨音频数据合并,并通过所述录屏数据输出模块生成录屏数据。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
当所述播放器初始化时,启动合成管理模块;
通过所述合成管理模块,确定所述录屏数据合成模块的录屏状态,并根据所述录屏状态进行对应的处理,其中,所述录屏状态包括正常、等待超时、取消和结束。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当接收到录屏指令时,根据预设的视频采集参数,启动视频采编模块,采集所述播放器的视频数据。
7.一种屏幕录制的客户端,其特征在于,所述客户端用于:
当播放器初始化时,获取所述播放器中每个音频播放单元的音频播放参数;
根据每个所述音频播放单元的音频播放参数和预设的音频统一编码参数,启动每个所述音频播放单元对应的音频采编模块;
当接收到录屏指令时,启动录屏数据合成模块;
将播放器中所有播放单元采集到的编码音频数据输入所述录屏数据合成模块进行叠加,得到并轨音频数据;
启动所述音频采编模块,采集播放器包含的每个音频播放单元的音频数据,并周期性对所述音频数据进行编码,得到所述播放器的编码音频数据;
将所述播放器的视频数据输入所述录屏数据合成模块,与所述并轨音频数据合并,得到录屏数据。
8.根据权利要求7所述的客户端,其特征在于,所述客户端还用于:
当所述播放器初始化时,启动音频采编管理模块;
当接收到录屏指令时,通过所述音频采编管理模块,控制所有音频采编模块同时采集对应音频播放单元的音频数据;
当接收到结束指令时,通过所述音频采编管理模块,控制所有音频采编模块同时停止采集对应音频播放单元的音频数据。
9.根据权利要求8所述的客户端,其特征在于,当接收到录屏指令时,所述客户端还启动录屏数据输入模块;
所述客户端还用于:
通过所述录屏数据输入模块,将每个所述音频播放单元对应的编码音频数据逐一输入所述录屏数据合成模块;
通过所述录屏数据合成模块,将所有音频播放单元对应的编码音频数据进行叠加,得到并轨音频数据。
10.根据权利要求9所述的客户端,其特征在于,当接收到录屏指令时,所述客户端还启动录屏数据输出模块;
所述客户端还用于:
通过所述录屏数据输入模块,将所述视频数据输入所述录屏数据合成模块;
通过所述录屏数据合成模块,将所述视频数据与所述并轨音频数据合并,并通过所述录屏数据输出模块生成录屏数据。
11.根据权利要求10所述的客户端,其特征在于,所述客户端还用于:
当所述播放器初始化时,启动合成管理模块;
通过所述合成管理模块,确定当前录屏状态,并根据所述录屏状态进行对应的处理,其中,所述录屏状态包括正常、等待超时、取消和结束。
12.根据权利要求7所述的客户端,其特征在于,所述客户端还用于:
当接收到录屏指令时,根据预设的视频采集参数,启动视频采编模块,采集所述播放器的视频数据。
13.一种屏幕录制的终端设备,其特征在于,包括如权利要求7-12任一项所述的客户端。
CN201910334746.9A 2019-04-24 2019-04-24 一种屏幕录制的方法、客户端和终端设备 Expired - Fee Related CN110300322B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201910334746.9A CN110300322B (zh) 2019-04-24 2019-04-24 一种屏幕录制的方法、客户端和终端设备
EP19800910.2A EP3748978A4 (en) 2019-04-24 2019-06-06 METHOD, CLIENT AND TERMINAL DEVICE FOR SCREEN RECORDING
PCT/CN2019/090324 WO2020215454A1 (zh) 2019-04-24 2019-06-06 一种屏幕录制的方法、客户端和终端设备
US16/717,861 US11115706B2 (en) 2019-04-24 2019-12-17 Method, client, and terminal device for screen recording

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910334746.9A CN110300322B (zh) 2019-04-24 2019-04-24 一种屏幕录制的方法、客户端和终端设备

Publications (2)

Publication Number Publication Date
CN110300322A CN110300322A (zh) 2019-10-01
CN110300322B true CN110300322B (zh) 2021-07-13

Family

ID=68026523

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910334746.9A Expired - Fee Related CN110300322B (zh) 2019-04-24 2019-04-24 一种屏幕录制的方法、客户端和终端设备

Country Status (4)

Country Link
US (1) US11115706B2 (zh)
EP (1) EP3748978A4 (zh)
CN (1) CN110300322B (zh)
WO (1) WO2020215454A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111818382B (zh) * 2020-07-01 2023-01-17 联想(北京)有限公司 一种录屏方法、装置及电子设备
CN113938724A (zh) * 2020-07-14 2022-01-14 海信视像科技股份有限公司 显示设备及录屏分享方法
CN112669884B (zh) * 2020-12-31 2022-11-04 广州酷狗计算机科技有限公司 音频数据处理方法、装置、设备及存储介质
CN116052701B (zh) * 2022-07-07 2023-10-20 荣耀终端有限公司 一种音频处理方法及电子设备

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101502089A (zh) * 2006-07-28 2009-08-05 西门子公司 进行音频会议的方法、音频会议装置和编码器之间的切换方法
WO2013123499A1 (en) * 2012-02-19 2013-08-22 Udacity, Inc. Systems and methods for combining educational content
CN105227998A (zh) * 2014-06-30 2016-01-06 惠州市伟乐科技股份有限公司 平衡多音频音量的方法和装置
CN105635712A (zh) * 2015-12-30 2016-06-01 视辰信息科技(上海)有限公司 基于增强现实的视频实时录制方法及录制设备
CN106101767A (zh) * 2016-07-28 2016-11-09 维沃移动通信有限公司 一种屏幕录制方法及移动终端
CN107872605A (zh) * 2016-09-26 2018-04-03 青柠优视科技(北京)有限公司 一种无人机系统和无人机音视频处理方法
CN108881767A (zh) * 2018-07-17 2018-11-23 广州飞磨科技有限公司 一种录屏终端系统及利用其实现录屏的方法

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7558221B2 (en) * 2004-02-13 2009-07-07 Seiko Epson Corporation Method and system for recording videoconference data
US20070098372A1 (en) * 2005-11-03 2007-05-03 Chiao-Fang Hsu Digital television recorder for recording multiple sets of audio tracks and method thereof
US8214338B1 (en) * 2007-05-01 2012-07-03 Callwave, Inc. Methods and systems for media storage
US9071805B2 (en) * 2008-12-31 2015-06-30 Verizon Patent And Licensing Inc. Systems, methods, and apparatuses for handling failed media content recordings
CN102055949B (zh) * 2009-11-02 2013-10-02 华为终端有限公司 多媒体会议的录播方法、装置及系统、回播方法及装置
CN102420010A (zh) * 2011-10-17 2012-04-18 苏州阔地网络科技有限公司 一种音频录制方法及系统
US9544649B2 (en) * 2013-12-03 2017-01-10 Aniya's Production Company Device and method for capturing video
US9161006B1 (en) * 2014-12-05 2015-10-13 Kamcord, Inc. Systems and methods for efficient screen capture
US10275341B2 (en) * 2015-01-21 2019-04-30 Somo Innovations Ltd Mobile application usability testing
CN106331306A (zh) * 2015-06-30 2017-01-11 宇龙计算机通信科技(深圳)有限公司 用于通话时的录音方法、用于录屏时的录音方法及装置
US11036458B2 (en) * 2015-10-14 2021-06-15 Google Llc User interface for screencast applications
CN105657498B (zh) * 2016-02-17 2018-11-06 腾讯科技(深圳)有限公司 移动终端的视频录制方法和装置
US9699409B1 (en) * 2016-02-17 2017-07-04 Gong I.O Ltd. Recording web conferences
CN106101797A (zh) * 2016-07-12 2016-11-09 青岛海信电器股份有限公司 一种屏幕录制方法及触摸电视
CN106792108A (zh) * 2016-12-02 2017-05-31 腾讯科技(深圳)有限公司 屏幕录制方法和装置
CN106970754B (zh) * 2017-03-28 2020-09-08 北京小米移动软件有限公司 截屏处理的方法及装置
CN108184079A (zh) * 2017-12-29 2018-06-19 北京奇虎科技有限公司 一种多媒体文件的合并方法和装置
CN108495141B (zh) * 2018-03-05 2021-03-19 网宿科技股份有限公司 一种音视频的合成方法及系统
CN109246480A (zh) * 2018-08-24 2019-01-18 苏州玩友时代科技股份有限公司 一种基于ios系统的游戏屏幕录屏方法及装置
CN109327741B (zh) * 2018-11-16 2021-08-24 网易(杭州)网络有限公司 游戏直播方法、装置和系统

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101502089A (zh) * 2006-07-28 2009-08-05 西门子公司 进行音频会议的方法、音频会议装置和编码器之间的切换方法
WO2013123499A1 (en) * 2012-02-19 2013-08-22 Udacity, Inc. Systems and methods for combining educational content
CN105227998A (zh) * 2014-06-30 2016-01-06 惠州市伟乐科技股份有限公司 平衡多音频音量的方法和装置
CN105635712A (zh) * 2015-12-30 2016-06-01 视辰信息科技(上海)有限公司 基于增强现实的视频实时录制方法及录制设备
CN106101767A (zh) * 2016-07-28 2016-11-09 维沃移动通信有限公司 一种屏幕录制方法及移动终端
CN107872605A (zh) * 2016-09-26 2018-04-03 青柠优视科技(北京)有限公司 一种无人机系统和无人机音视频处理方法
CN108881767A (zh) * 2018-07-17 2018-11-23 广州飞磨科技有限公司 一种录屏终端系统及利用其实现录屏的方法

Also Published As

Publication number Publication date
US20200382828A1 (en) 2020-12-03
EP3748978A1 (en) 2020-12-09
EP3748978A4 (en) 2020-12-09
CN110300322A (zh) 2019-10-01
US11115706B2 (en) 2021-09-07
WO2020215454A1 (zh) 2020-10-29

Similar Documents

Publication Publication Date Title
CN110300322B (zh) 一种屏幕录制的方法、客户端和终端设备
CN105991962B (zh) 连接方法、信息展示方法、装置及系统
US9514783B2 (en) Video editing with connected high-resolution video camera and video cloud server
CN110430441B (zh) 一种云手机视频采集方法、系统、装置及存储介质
EP3748972B1 (en) Video recording method and system
EP3713224B1 (en) Live data processing method and system, and server
CN111010614A (zh) 一种显示直播字幕的方法、装置、服务器及介质
US12015770B2 (en) Method for encoding video data, device, and storage medium
CN104754396A (zh) 弹幕数据的显示方法及装置
CN111163330A (zh) 直播视频的渲染方法、装置、系统、设备及存储介质
CN113225585A (zh) 一种视频清晰度的切换方法、装置、电子设备以及存储介质
CN106375859B (zh) 一种媒体处理方法、装置及终端
CN114630051A (zh) 视频处理方法以及系统
CN111385593A (zh) 跨平台直播内容同步方法、装置、存储介质和服务器
RU2696767C1 (ru) Способ и система трансляции мультимедийной информации в режиме реального времени, устройство сбора информации и сервер проверки информации
CN116112620A (zh) 一种提高视频流多路合并稳定性处理方法及系统
CN113395531B (zh) 播放切换方法、装置、电子设备及计算机可读存储介质
CN109218849A (zh) 一种直播数据的处理方法、装置、设备和存储介质
CN111107296B (zh) 音频数据采集方法、装置、电子设备及可读存储介质
CN107205179A (zh) 节目录制方法及装置
CN116266858A (zh) 音视频录制方法、装置、设备及介质
CN114466201B (zh) 直播流处理方法及装置
CN111277782A (zh) 高清视频会议终端及其录播系统
CN113055634A (zh) 一种实现视频会议的方法及5g电视
CN116156121A (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
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20210713