CN111385637B - 媒体数据编码方法、装置及电子设备 - Google Patents

媒体数据编码方法、装置及电子设备 Download PDF

Info

Publication number
CN111385637B
CN111385637B CN202010192595.0A CN202010192595A CN111385637B CN 111385637 B CN111385637 B CN 111385637B CN 202010192595 A CN202010192595 A CN 202010192595A CN 111385637 B CN111385637 B CN 111385637B
Authority
CN
China
Prior art keywords
frame rate
duration
currently acquired
media data
encoding
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
Application number
CN202010192595.0A
Other languages
English (en)
Other versions
CN111385637A (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.)
Guangdong Oppo Mobile Telecommunications Corp Ltd
Original Assignee
Guangdong Oppo Mobile Telecommunications Corp 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 Guangdong Oppo Mobile Telecommunications Corp Ltd filed Critical Guangdong Oppo Mobile Telecommunications Corp Ltd
Priority to CN202010192595.0A priority Critical patent/CN111385637B/zh
Publication of CN111385637A publication Critical patent/CN111385637A/zh
Application granted granted Critical
Publication of CN111385637B publication Critical patent/CN111385637B/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/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/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/4394Processing of audio elementary streams involving operations for analysing the audio stream, e.g. detecting features or characteristics in audio streams
    • 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/44008Processing 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 operations for analysing video streams, e.g. detecting features or characteristics in the video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • H04N21/440218Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/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/440281Processing 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 altering the temporal resolution, e.g. by frame skipping

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本申请公开了一种媒体数据编码方法、装置及电子设备,涉及数据编码技术领域。其中,该方法包括:当前采集的媒体数据;判断当前采集的媒体数据的采集帧率与存储的编码帧率是否相符;若采集帧率与编码帧率不相符,则按照当前采集的媒体数据的采集帧率,对当前采集的媒体数据进行编码。如此,可以避免因采集帧率与编码帧率不符所导致的编码异常。

Description

媒体数据编码方法、装置及电子设备
技术领域
本申请涉及数据编码技术领域,更具体地,涉及一种媒体数据编码方法、装置及电子设备。
背景技术
目前,一些设备具有录制媒体数据(如,音频数据、视频数据等)的功能。通过数据采集器件采集的媒体数据会被送入编码器,被编码成媒体文件。编码器通常是按照预先配置的编码帧率对接收的媒体数据进行编码,但这种方式有时会出现编码异常。
发明内容
鉴于上述问题,本申请提出了一种媒体数据编码方法、装置及电子设备,用以改善上述问题。
第一方面,本申请实施例提供了一种媒体数据编码方法,包括:接收当前采集的媒体数据;判断所述当前采集的媒体数据的采集帧率与存储的编码帧率是否相符;若所述采集帧率与所述编码帧率不相符,则按照所述当前采集的媒体数据的采集帧率,对所述当前采集的媒体数据进行编码。
第二方面,本申请实施例提供了一种媒体数据编码装置,包括:接收模块,用于接收当前采集的媒体数据;判断模块,用于判断所述当前采集的媒体数据的采集帧率与存储的编码帧率是否相符;编码模块,用于当所述采集帧率与所述编码帧率不相符时,按照所述当前采集的媒体数据的采集频率,对所述当前采集的媒体数据进行编码。
第三方面,本申请实施例提供了一种电子设备,包括:一个或多个处理器;存储器;一个或多个程序,其中所述一个或多个程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于执行上述的方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,其上存储有程序代码,该程序代码可被处理器调用执行上述的方法。
相对于现有技术,本申请提供的方案,通过判断当前采集的媒体数据的采集帧率是否与存储的编码帧率相符,当采集帧率与存储的编码帧率不相符时,按照当前采集的媒体数据的采集帧率,对当前采集的媒体数据进行编码。如此,可以确保编码帧率始终与采集的媒体数据的采集帧率相符,避免了编码过程中因采集器件采集媒体数据的采集帧率发生变化后与存储的编码帧率不符而导致的编码异常。
本申请的这些方面或其他方面在以下实施例的描述中会更加简明易懂。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本申请实施例提供的一种电子设备的架构示意图。
图2示出了根据本申请一个实施例的媒体数据编码方法的流程示意图。
图3示出了根据本申请另一个实施例的媒体数据编码方法的流程示意图。
图4示出了根据本申请又一个实施例的媒体数据编码方法的流程示意图。
图5示出了图4所示实施例中媒体数据编码方法的另一流程示意图。
图6示出了图4所示实施例中媒体数据编码方法的又一流程示意图,
图7示出了本申请实施例提供的一种媒体数据编码装置的框图。
图8是本申请实施例的用于保存或者携带实现根据本申请实施例的媒体数据编码方法的程序代码的存储单元。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
一些电子设备具有媒体数据录制功能,所述媒体数据可以是视频数据或者音频数据。电子设备可以通过数据采集器件对媒体数据进行采集,并将采集的媒体数据送入编码器,编码器可以按照配置的编码算法将接收的媒体数据编码成相应的媒体文件。其中,编码器通常是按照预先配置的编码参数进行编码的。所述编码参数例如可以包括编码帧率(framerate)、码率、编码类型等。值得说明的是,如果媒体数据是视频数据,则编码参数还可以包括视频帧的宽和高等。
实际应用中,编码器中配置的编码帧率通常是与数据采集器的性能相匹配的。但是,经研究发现,电子设备的数据采集器可能会因所处环境的光感强度变化或是电子设备的系统调度的延迟,而降低媒体数据的采集帧率。其中,采集帧率是指电子设备通过数据采集器在单位时间(如,1秒)内采集的媒体帧的数量。在电子设备的采集帧率降低后,编码器中存储的编码帧率仍旧是按照数据采集器的原始性能配置的,则可能与数据采集器当前的实际采集帧率不符,从而导致编码异常。
详细地,因实际采集帧率与编码帧率不符导致的编码异常,可以包括以下情形:
第一,电子设备对媒体数据的采集帧率大于编码器中存储的编码帧率,表示电子设备在单位时间内采集的媒体帧的第一数量大于编码器在该单位时间内编码所需的媒体帧的第二数量,而编码器中的编码算法是依据第二数量配置的,此时,编码器若仍旧依照配置的编码算法进行编码,可能导致编码出错。
第二,如果电子设备对媒体数据的采集帧率小于编码器存储的编码帧率,表示电子设备在单位时间内采集的媒体帧的第一数量小于编码器在该单位时间内编码需要的媒体帧的第二数量,换言之,送入编码器的媒体数据量不足,可能导致编码后的媒体文件模糊或者出现马赛克。
发明人经过长期的研究,提出一种媒体数据编码方法、装置及电子设备,可以避免上述因电子设备的实际采集帧率与编码器的编码帧率不符而导致的诸如编码出错、编码后文件模糊、存在马赛克等问题。下面将对该内容进行阐述。
值得说明的是,上述针对采集的媒体数据的编码过程的研究和发现,及基于该发现所提出的解决方案,均是在经过实践和仔细研究后得出的结果,都应该是在发明过程中对本申请所做出的贡献。
请参照图1,图1为本申请实施例提供的电子设备100的架构示意图。电子设备100可以是,但不限于,智能手机、平板电脑、电子书、笔记本电脑、个人计算机(PersonalComputer,PC)等任意具有数据采集功能或者可以外接数据采集器件的设备。本申请的电子设备100可以包括相互通信连接的一个或多个如下部件:处理器101、存储器102、数据采集器103、编码器104以及一个或多个程序。其中一个或多个程序可以被存储在存储器102中,并被配置为由一个或多个处理器101执行,一个或多个程序配置用于执行下文所述的方法。
其中,处理器101可以包括一个或多个处理核。处理器101利用各种接口和线路连接整个电子设备100内的各个部分,通过运行或执行存储在存储器102内的指令、程序、代码集或指令集,以及调用存储在存储器102内的数据,执行电子设备100的各种功能和处理数据。可选地,处理器101可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(ProgrammableLogic Array,PLA)中的至少一种硬件形式来实现。处理器102可集成中央处理器(CentralProcessing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器101中,单独通过一块通信芯片进行实现。
存储器102可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。存储器102可以用于存储指令、程序、代码、代码集或指令集。存储器102可包括存储程序区和存储数据区,其中,存储程序区可以存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如触控功能、媒体数据采集功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等。存储数据区还可以存储电子设备100在使用中所创建的数据(比如,采集的媒体数据等)。
数据采集器103是用于采集媒体数据的器件,与编码器104相互连接。数据采集器103可以将采集的媒体数据送入编码器104进行编码。此外,数据采集器103和编码器104均可以与处理器101、存储器102电连接。本申请实施例中,数据采集器103可以内置于电子设备100,也可以外接于电子设备100,并不以此为限制。示例性地,当需要录制的媒体数据是视频数据时,数据采集器可以是图像采集器,例如,摄像头;当需要录制的媒体数据是音频数据时,数据采集器可以是音频采集器,例如,麦克风。编码器可以是硬件编码器,或者软件编码器,或者前述两者的结合,本实施例不以此为限制。其中,如果编码器是软件编码器,则用于实现该软件编码器的指令可以存储于存储器102内,并由处理器101执行。
可以理解,图1所示的架构仅为示意。本申请实施例中的电子设备100还可以具有比图1所示更多或更少的组件,或是具有与图1所示完全不同的配置。
请参照图2,图2为本申请一实施例提供的一种媒体数据编码方法的流程示意图,该方法可以应用于图1所示的电子设备100中的编码器104。下面对该方法包括的步骤进行阐述。
步骤S110,接收当前采集的媒体数据。
电子设备100可以响应用户输入的媒体数据录制指令,开启数据采集器103,并按照一定时间间隔依次采集媒体帧,采集的各个媒体帧组成了所述媒体数据。其中,所述时间间隔与数据采集器103的采集帧率相关。采集帧率是指数据采集器103在单位时间(如,1秒)内采集的媒体帧的数量,对应地,假设采集帧率为f1,则所述时间间隔即为1/f1。
数据采集器103将采集的媒体数据实时地输入编码器104中,编码器104当前接收到的媒体帧,即为所述电子设备100通过数据采集器103当前采集的媒体数据。
可选地,本实施例中,所述媒体数据可以是视频数据或者音频数据。对应地,视频数据包括多个视频帧;音频数据包括多个音频帧。
步骤S120,判断所述当前采集的媒体数据的采集帧率与存储的编码帧率是否相符。若是,则可以执行步骤S130;若否,则执行步骤S140。
基于前文的描述,编码器104存储的编码帧率通常是与数据采集器103的采集帧率相符的,但是,数据采集器103可能因环境光感度变化、电子设备100的调度延迟等,导致采集帧率变化。因此,本实施例中,编码器104在对接收的所述当前采集的媒体数据进行编码之前,先判断当前采集的媒体数据的采集帧率与存储的编码帧率是否相符。
其中,存储的编码帧率是指编码器104预先配置的编码帧率。当前采集的媒体数据的采集帧率,即为数据采集器103的当前采集帧率(当前的实际帧率),可以通过所述当前采集的媒体数据确定。
值得说明的是,本实施例中,指当前采集的媒体数据的采集帧率与存储的编码帧率的差值在一定误差范围内时,可以认为两者是相符的。例如,所述差值小于或等于0.1时,可以认为当前采集的媒体数据的采集帧率与编码器的编码帧率相符。当然,所述误差范围可以灵活设定,例如可以根据经验或统计数据设定,本实施例对此没有限制。
步骤S130,按照存储的所述编码帧率,对所述当前采集的媒体数据进行编码。
步骤S140,按照所述当前采集的媒体数据的采集帧率,对所述当前采集的媒体数据进行编码。
本实施例中,如果当前采集的媒体数据的采集帧率与编码器104预先配置的编码帧率相符,则编码器104可以继续按照所述预先配置的编码帧率对所述当前采集的媒体数据进行编码处理。
如果当前采集的媒体数据的采集帧率与编码器104预先配置的编码帧率不相符,则编码器104可以选择按照所述当前采集的媒体数据的采集帧率来编码所述当前采集的媒体数据。一种可选的方式中,编码器104可以修改其编码帧率,使编码器104的编码帧率与所述当前采集的媒体数据的采集帧率相符,比如,将编码帧率修改为所述当前采集的媒体数据的采集帧率。然后,再按照修改后的编码帧率对所述当前采集的媒体数据进行编码。
另一种可选的方式中,可以对所述当前采集的媒体数据进行处理,以使所述当前采集的媒体数据的采集帧率与所述编码器104的编码帧率相符,比如,使得处理后的当前采集的媒体数据的采集帧率,基本等于所述编码器104预先配置的编码帧率。然后,再按照修改后的编码帧率对所述当前采集的媒体数据进行编码。
本实施例提供的媒体数据编码方法,在对当前采集的媒体数据进行编码前,判断当前采集的媒体数据的采集帧率与编码器配置的编码帧率是否相符,可以确保按照与采集帧率相符的编码帧率来对当前采集的媒体数据进行编码,从而避免了因编码帧率与采集帧率不符所导致的诸如编码出错、编码后文件模糊、编码后文件存在马赛克等编码异常问题,进而改善了用户体验,提升了用户粘性。
请参照图3,图3为本申请另一实施例提供的一种媒体数据编码方法的流程示意图,该方法应用于图1所示的电子设备100的编码器104。下面对该方法包括的步骤进行阐述。
步骤S210,接收当前采集的媒体数据。
步骤S210的详细实现流程与前一实施例的步骤S110类似,具体可以参照前文的相关描述,在此不再赘述。
步骤S220,确定所述当前采集的媒体数据中媒体帧的第一持续时长。
其中,一个媒体帧的持续时长(duration)可以由该媒体帧的时间戳及其相邻的下一个媒体帧的时间戳确定。
本实施例中,当前采集的媒体数据包括至少两个媒体帧,所述至少两个媒体帧中存在相邻的两个媒体帧。实施时,可以分别获取所述相邻的两个媒体帧各自的采集时间戳,采集的媒体数据中每个媒体帧的时间戳为采集时间戳,与该媒体帧被采集时的系统时间相对应。示例性地,采集时间戳可以用媒体帧被采集时的系统时间与采集该媒体帧的电子设备100的首次开机时间之间的毫秒数来表示。然后,对所述相邻的两个媒体帧的采集时间戳求差,即,采用后一媒体帧的采集时间戳减去前一媒体帧的采集时间戳,得到的差值即为所述第一持续时长。可以理解,第一持续时长又可以称为相邻媒体帧的采集时间间隔。
一个例子中,假设存在相邻的两个媒体帧1和2,媒体帧1的时间戳为t1,媒体帧2的时间戳为t2,则可以确定媒体帧1的持续时长为t2-t1。
步骤S230,根据所述第一持续时长得到所述当前采集的媒体数据的采集帧率。
如上所述,采集帧率表示的是1秒内采集的媒体帧的数量,而第一持续时长实际表示的是相邻媒体帧的采集时间间隔,因此,假设第一持续时长为d1(单位为秒),则采集帧率可以为/d1。对应地,若d1的单位为毫秒,则采集帧率可以为1000/d1。
步骤S240,判断所述当前采集的媒体数据的采集帧率与存储的编码帧率是否相符。若是,则可以执行步骤S250;若否,则执行步骤S260。
步骤S250,按照存储的所述编码帧率,对所述当前采集的媒体数据进行编码。
步骤S260,按照所述当前采集的媒体数据的采集帧率,对所述当前采集的媒体数据进行编码。
本实施例中,步骤S240-步骤S260的详细实现流程与前一实施例的步骤S120-步骤S140类似,在此不再赘述。
通过图3所示流程,可以避免因编码帧率与当前采集的媒体数据的采集帧率不符所导致的编码异常,提升用户体验。
请参照图4,图4为本申请又一实施例提供的一种媒体数据编码方法的流程示意图,该方法可以应用于图1所示的电子设备100的编码器104。下面对该方法包括的步骤进行阐述。
步骤S310,接收当前采集的媒体数据。
本实施例中,步骤S310的详细实现流程与前述实施例中的步骤S110、步骤S210类似,在此不再详述。
步骤S320,确定所述当前采集的媒体数据中媒体帧的第一持续时长。
本实施例中,步骤S320的详细实现流程与前一实施例中的步骤S220类似,在此不再详述。
步骤S330,根据存储的编码帧率确定编码后媒体帧的第二持续时长。
与采集帧率类似地,编码帧率是指1秒内参与编码的媒体帧的数量,第二持续时长是指相邻的两个媒体帧的编码时间间隔,例如,前一媒体帧在的时刻t1进行编码,后一媒体帧在时刻t2进行编码,那么,在解码播放的过程中,该前一媒体帧持续播放的时长将会是t2-t1。如此,假设编码帧率为f2,则第二持续时长可以为1/f2(单位为秒)。类似地,第二持续时长也可以为1000/f2(单位为毫秒)。
示例性地,常用的编码帧率有30fps(帧/秒)、60fps、24fps等,其中,30fps对应的持续时长(相邻帧时间间隔)为1000/30=33毫秒,类似地,60fps对应的持续时长为16.7毫秒,24fps对应的持续时长为41.7毫秒。
步骤S340,判断所述第一持续时长与所述第二持续时长是否相符。若是,则可以执行步骤S350;若否,则执行步骤S360。
详细地,如上所述,数据采集器103会按照采集帧率对应的时间间隔依次采集媒体帧,从而得到媒体数据。实施过程中,编码器104每接收到一个媒体帧,则可以通过步骤S320确定该媒体帧的第一持续时长。例如,当前接收到媒体帧i(i为大于1的整数),则可以根据媒体帧i-1和媒体帧i各自的采集时间戳确定媒体帧i-1的第一持续时长,再将所确定第一持续时长与通过步骤S330确定的第二持续时长比较。
本实施例中,当第一持续时长与第二持续时长的差值在设置的误差范围内时,可以认为第一持续时长与第二持续时长相符,比如,所述差值小于或等于0.1时,可以认为两者相符。如果所述差值超出了所述误差范围,则可以认为两者不符。当然,所述误差范围可以灵活设置,本实施例不以此为限制。
步骤S350,确定所述当前采集的媒体数据的采集帧率与所述编码帧率相符,并按照存储的所述编码帧率,对所述当前采集的媒体数据进行编码。
步骤S360,确定所述当前采集的媒体数据的采集帧率与所述编码帧率不相符,并按照所述当前采集的媒体数据的采集帧率,对所述当前采集的媒体数据进行编码。
本实施例中,当第一持续时长与第二持续时长相符时,可以认为第一持续时长对应的采集帧率与第二持续时长对应的编码帧率相符,从而可以继续按照预先配置的所述编码帧率对采集的媒体数据编码。当第一持续时长与第二持续时长不相符时,可以认为第一持续时长对应的采集帧率与第二持续时长对应的编码帧率不相符,则可以按照采集帧率对采集的媒体数据编码。其中,采集帧率是指当前的采集帧率。
值得说明的是,关于步骤S350和步骤S360的详细描述具体还可以参照前文对步骤S130、步骤S140、步骤S250和步骤S260的相关描述。
基于上述的描述,步骤S360的其中一种实现方式为,处理当前采集的媒体数据,以使当前采集的媒体数据的采集帧率与存储的编码帧率相同。在此情况下,存储的编码帧率即为当前采集的媒体数据的采集帧率。因此,编码器104可以继续按照存储的编码帧率对采集的媒体数据进行编码,即可实现按照所述当前采集的媒体数据的采集帧率,对所述当前采集的媒体数据进行编码。
本实施例中,电子设备100的编码器104对当前采集的媒体数据进行处理的方式可以随着媒体数据类型的不同而不同。
一种可能的实现方式中,媒体数据为视频数据,例如为YUV(全称为:Luminance-Bandwidth-Chrominance)格式的视频数据,此时,视频数据包括多个YUV帧。在此情况下,数据采集器103通常是按视频帧进行数据采集的。在此情况下,编码器104可以按照图5所示的流程对当前采集的视频数据进行处理,详细描述如下。
步骤S510,若当前采集的视频数据的采集帧率与存储的编码帧率不相符,则根据所述第二持续时长,确定与所述第二持续时长对应的时长上限。
参照前述实施例,当第一持续时长与第二持续时长的差值处于一误差范围内时,可以视作两者相符。本实施例中,第二持续时长对应的时长上限例如可以是,所述误差范围的一半时长与第二持续时长之和。例如,误差范围为[-0.05,+0.05],第二持续时长为t,则第二持续时长t对应的时长上限可以为t+0.05。
步骤S520,若所述第一持续时长低于所述时长上限,则从所述当前采集的视频数据中丢弃部分视频帧,使所述当前采集的视频数据的采集帧率与所述编码帧率相符。
本实施例中,第一持续时长低于时长上限,表示数据采集器103在1秒内采集的视频帧数量超出了编码器104在1秒内所需的用于编码的视频帧数量,且超出的数量已经不在误差范围内,此时,可以从采集的视频数据中丢弃一部分视频帧,使得采集的视频数据中,1秒内的视频帧数量与编码器104在1秒内所需的用于编码的视频帧数量基本相同,即,两者的差值在误差范围内。
进一步地,本申请实施例中,为了改善编码效果,当媒体数据是视频数据时,还可以在接收到当前采集的视频数据时,判断所述当前采集的视频数据中视频帧的宽、高是否分别与编码器104中配置的宽和高对应相同,如果不是,则可以将编码器104中配置的宽调整为所述当前采集的视频数据中视频帧的宽,以及将编码器104中配置的高调整为所述当前采集的视频数据中视频帧的高,然后再进行编码。
另一种可能的实现方式中,媒体数据可以为音频数据。在此情况下,数据采集器103通常是按照一定采样频率对音频信息进行采样,从而得到音频数据。在此情况下,编码器104可以按照图6所示流程对当前采集的音频数据进行处理,详细描述如下。
步骤S610,若当前采集的音频数据的采集与存储的编码帧率不相符,则根据所述第二持续时长,确定与所述第二持续时长对应的时长上限。
其中,步骤S610的详细实现流程与前述的步骤S510类似,具体可以参照前文关于步骤S510的描述。
步骤S620,若所述第一持续时长低于所述时长上限,则从所述当前采集的音频数据中丢弃部分音频样本,使所述当前采集的音频数据的采集帧率与所述编码帧率相符。
实际应用中,音频数据通常以音频样本进行计量。本实施例中,一个音频帧包括多个音频样本。随着音频数据的格式的不同,一个音频帧包含的音频样本的数量有所不同。以AAC(Advanced Audio Coding,高级音频编码)格式为例,一个AAC音频帧可以包括1024个音频样本。以采样频率为44100HZ(赫兹)为例,数据采样器103在1秒内可以采集44100个音频样本,则1秒内可以采集的音频帧数量为:44100/1024=43.066。换言之,数据采样器103的采集帧率基本为43.066,第一持续时长则可以为:1/43.066=0.0232秒。
在确定第一持续时长低于通过步骤S610确定的时长上限的情况下,编码器104可以从当前接收的音频数据中丢弃一部分音频样本,使得采集的音频数据中,1秒内的音频帧的数量(采集帧率)与编码器103在1秒内所需的用于编码的音频帧的数量基本相同,即,当前采集的音频数据的采集帧率与编码帧率的差值在误差范围内。
通过本实施例提供的媒体数据编码方法,可以有效避免因电子设备的数据编码器的采集帧率动态变化后与编码帧率不符,而导致的编码异常问题,从而可以有效地改善用户体验,提升用户粘性。
此外,对于初始配置的编码帧率有误的情况,也可以通过本申请实施例提供的媒体数据编码方法得到纠正。
请参阅图7,其示出了本申请实施例提供的一种媒体数据编码装置的结构框图。该媒体数据编码装置700可以包括:接收模块710、判断模块720以及编码模块730。
其中,所述接收模块710用于接收当前采集的媒体数据。
所述判断模块720用于判断所述当前采集的媒体数据的采集帧率与存储的编码帧率是否相符。
一种可选的实施方式中,所述判断模块710可以先确定所述当前采集的媒体数据的采集帧率,再将所确定的采集帧率与存储的编码帧率比较。其中,所述当前采集的媒体数据的采集帧率可以通过如下方式确定:确定所述当前采集的媒体数据中媒体帧的第一持续时长;根据所述第一持续时长得到所述当前采集的媒体数据的采集帧率。
另一种可选的实施方式中,所述判断模块720可以通过如下方式判断所述当前采集的媒体数据的采集帧率与存储的编码帧率是否相符:
确定所述当前采集的媒体数据中媒体帧的第一持续时长;根据所述编码帧率确定编码后的媒体帧的第二持续时长;判断所述第一持续时长与所述第二持续时长是否相符;若所述第一持续时长与所述第二持续时长不相符,则确定所述当前采集的媒体数据的采集帧率与所述编码帧率不相符。
可选地,本申请实施例中,所述当前采集的媒体数据包括相邻的两个媒体帧。在此情况下,所述判断模块720可以通过如下方式确定所述当前采集的媒体数据中媒体帧的第一持续时长:分别获取所述相邻的两个媒体帧的采集时间戳;确定所述相邻的两个媒体帧的采集时间戳之差,得到所述当前采集的媒体数据中媒体帧的第一持续时长。
所述编码模块730用于当所述采集帧率与所述编码帧率不相符时,按照所述当前采集的媒体数据的采集帧率,对所述当前采集的媒体数据进行编码。
值得说明的是,当所述采集帧率与所述编码帧率相符时,则可以按照存储的编码帧率对所述当前采集的媒体数据进行编码。
可选地,本申请实施例的一种实施方式中,所述编码模块730按照所述当前采集的媒体数据的采集帧率,对所述当前采集的媒体数据进行编码的方式可以为:将所述编码帧率修改为所述当前采集的媒体数据的采集帧率;按照修改后的编码帧率对所述当前采集的媒体数据进行编码。
本申请实施例的另一种实施方式中,所述编码模块730可以根据媒体数据的类型的不同,对所述当前采集的媒体数据进行处理,使得处理后的当前采集的媒体数据的采集帧率与存储的编码帧率相同。在此情况下,所述编码模块730按照所述当前采集的媒体数据的采集帧率,对所述当前采集的媒体数据进行编码的方式可以为:基于存储的编码帧率对处理后的当前采集的媒体数据进行编码。
一种可选方式中,当所述媒体数据为视频数据时,所述编码模块730还可以用于:在按照所述当前采集的媒体数据的采集帧率,对所述当前采集的媒体数据进行编码之前,若当前采集的视频数据的采集帧率与所述编码帧率不相符,则根据所述第二持续时长,确定与所述第二持续时长对应的时长上限;若所述第一持续时长低于所述时长上限,则从所述当前采集的视频数据中丢弃部分视频帧,使所述当前采集的视频数据的采集帧率与所述编码帧率相符。
另一种可选方式中,当所述媒体数据为音频数据时,所述编码模块730还可以用于:在按照所述当前采集的媒体数据的采集频率,对所述当前采集的媒体数据进行编码之前,若当前采集的音频数据的采集帧率与所述编码帧率不相符,则根据所述第二持续时长,确定与所述第二持续时长对应的时长上限;若所述第一持续时长低于所述时长上限,则从所述当前采集的音频数据中丢弃部分音频样本,使所述当前采集的音频数据的采集帧率与所述编码帧率相符。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,所显示或讨论的模块相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
请参考图8,其示出了本申请实施例提供的一种计算机可读存储介质的结构框图。该计算机可读介质800中存储有程序代码,所述程序代码可被处理器调用执行上述方法实施例中所描述的方法。
计算机可读存储介质800可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。可选地,计算机可读存储介质800包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。计算机可读存储介质800具有执行上述方法中的任何方法步骤的程序代码810的存储空间。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。程序代码810可以例如以适当形式进行压缩。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不驱使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

Claims (8)

1.一种媒体数据编码方法,其特征在于,包括:
接收当前采集的媒体数据;
当所述媒体数据为视频数据时,判断所述视频数据中视频帧的宽、高是否分别与编码器中配置的宽和高对应相同;
若不相同,则将所述编码器中配置的宽调整为所述当前采集的视频数据中视频帧的宽,以及将所述编码器中配置的高调整为所述当前采集的视频数据中视频帧的高;
确定所述当前采集的视频数据中视频帧的第一持续时长;
根据所述编码帧率确定编码后的视频帧的第二持续时长;
判断所述第一持续时长与所述第二持续时长是否相符;
若所述第一持续时长与所述第二持续时长不相符,则确定所述当前采集的视频数据的采集帧率与所述编码帧率不相符,并根据所述第二持续时长,确定与所述第二持续时长对应的时长上限;
若所述第一持续时长低于所述时长上限,则从所述当前采集的视频数据中丢弃部分视频帧,使所述当前采集的视频数据的采集帧率与所述编码帧率相符;
按照所述当前采集的视频数据的采集帧率,对所述当前采集的视频数据进行编码。
2.根据权利要求1所述的方法,其特征在于,所述按照所述当前采集的媒体数据的采集帧率,对所述当前采集的媒体数据进行编码,包括:
将所述编码帧率修改为所述当前采集的媒体数据的采集帧率;
按照修改后的编码帧率对所述当前采集的媒体数据进行编码。
3.根据权利要求1-2中任意一项所述的方法,其特征在于,所述当前采集的媒体数据的采集帧率通过如下方式获得:
确定所述当前采集的媒体数据中媒体帧的第一持续时长;
根据所述第一持续时长得到所述当前采集的媒体数据的采集帧率。
4.根据权利要求3所述的方法,其特征在于,所述当前采集的媒体数据包括相邻的两个媒体帧;所述确定所述当前采集的媒体数据中媒体帧的第一持续时长,包括:
分别获取所述相邻的两个媒体帧的采集时间戳;
确定所述相邻的两个媒体帧的采集时间戳之差,得到所述当前采集的媒体数据中媒体帧的第一持续时长。
5.根据权利要求1所述的方法,其特征在于,所述媒体数据为音频数据;在所述按照所述当前采集的媒体数据的采集频率,对所述当前采集的媒体数据进行编码之前,所述方法还包括:
若当前采集的音频数据的采集帧率与所述编码帧率不相符,则根据所述第二持续时长,确定与所述第二持续时长对应的时长上限;
若所述第一持续时长低于所述时长上限,则从所述当前采集的音频数据中丢弃部分音频样本,使所述当前采集的音频数据的采集帧率与所述编码帧率相符。
6.一种媒体数据编码装置,其特征在于,包括:
接收模块,用于接收当前采集的媒体数据;当所述媒体数据为视频数据时,判断所述视频数据中视频帧的宽、高是否分别与编码器中配置的宽和高对应相同;若不相同,则将所述编码器中配置的宽调整为所述当前采集的视频数据中视频帧的宽,以及将所述编码器中配置的高调整为所述当前采集的视频数据中视频帧的高;确定所述当前采集的视频数据中视频帧的第一持续时长;根据所述编码帧率确定编码后的视频帧的第二持续时长;
判断模块,用于判断所述第一持续时长与所述第二持续时长是否相符;
编码模块,用于若所述第一持续时长与所述第二持续时长不相符,则确定所述当前采集的视频数据的采集帧率与所述编码帧率不相符,并根据所述第二持续时长,确定与所述第二持续时长对应的时长上限;若所述第一持续时长低于所述时长上限,则从所述当前采集的视频数据中丢弃部分视频帧,使所述当前采集的视频数据的采集帧率与所述编码帧率相符;按照所述当前采集的视频数据的采集频率,对所述当前采集的视频数据进行编码。
7.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储器;
一个或多个程序,其中所述一个或多个程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于执行如权利要求1-5中任意一项所述的方法。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有程序代码,所述程序代码可被处理器调用执行如权利要求1-5中任意一项所述的方法。
CN202010192595.0A 2020-03-18 2020-03-18 媒体数据编码方法、装置及电子设备 Active CN111385637B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010192595.0A CN111385637B (zh) 2020-03-18 2020-03-18 媒体数据编码方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010192595.0A CN111385637B (zh) 2020-03-18 2020-03-18 媒体数据编码方法、装置及电子设备

Publications (2)

Publication Number Publication Date
CN111385637A CN111385637A (zh) 2020-07-07
CN111385637B true CN111385637B (zh) 2022-05-20

Family

ID=71218823

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010192595.0A Active CN111385637B (zh) 2020-03-18 2020-03-18 媒体数据编码方法、装置及电子设备

Country Status (1)

Country Link
CN (1) CN111385637B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117544740A (zh) * 2022-07-28 2024-02-09 北京字跳网络技术有限公司 视频录制方法、装置、设备、存储介质和程序产品

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105208388A (zh) * 2014-06-24 2015-12-30 深圳市腾讯计算机系统有限公司 视频通讯中动态调整编码帧率的方法和系统
CN105282547A (zh) * 2014-07-03 2016-01-27 深圳市腾讯计算机系统有限公司 一种视频编码的码率控制方法及装置
CN108093257A (zh) * 2017-12-05 2018-05-29 北京小米移动软件有限公司 视频编码的码率控制方法、电子设备及存储介质
CN108347580A (zh) * 2018-03-27 2018-07-31 聚好看科技股份有限公司 一种处理视频帧数据的方法及电子设备
CN109413371A (zh) * 2017-08-17 2019-03-01 成都鼎桥通信技术有限公司 视频帧率计算方法及装置
CN110784718A (zh) * 2019-10-31 2020-02-11 广州市网星信息技术有限公司 视频数据编码方法、装置、设备和存储介质

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8295344B2 (en) * 2007-10-22 2012-10-23 Broadcom Corporation Adaptive rate control for encoding of variable frame rate video sources
US20140104493A1 (en) * 2012-10-11 2014-04-17 Tangome, Inc. Proactive video frame dropping for hardware and network variance
CN104394421B (zh) * 2013-09-23 2018-08-17 贵阳朗玛信息技术股份有限公司 视频帧的处理方法及装置
CN111182268B (zh) * 2016-01-29 2021-08-17 深圳市大疆创新科技有限公司 视频数据传输方法、系统、设备和拍摄装置
US20180115795A1 (en) * 2016-10-22 2018-04-26 Gopro, Inc. Adaptive bit rate algorithm for point-to-point wifi devices
CN108156481A (zh) * 2016-12-02 2018-06-12 深圳市优朋普乐传媒发展有限公司 一种直播源的检测方法及装置
CN109524015B (zh) * 2017-09-18 2022-04-15 杭州海康威视数字技术股份有限公司 音频编码方法、解码方法、装置及音频编解码系统
CN110166808B (zh) * 2019-06-13 2021-09-07 深圳市拔超科技有限公司 一种解决晶振误差导致视频不同步的方法、装置及解码设备
CN110881136B (zh) * 2019-11-14 2021-11-02 腾讯科技(深圳)有限公司 视频帧率控制方法、装置、计算机设备及存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105208388A (zh) * 2014-06-24 2015-12-30 深圳市腾讯计算机系统有限公司 视频通讯中动态调整编码帧率的方法和系统
CN105282547A (zh) * 2014-07-03 2016-01-27 深圳市腾讯计算机系统有限公司 一种视频编码的码率控制方法及装置
CN109413371A (zh) * 2017-08-17 2019-03-01 成都鼎桥通信技术有限公司 视频帧率计算方法及装置
CN108093257A (zh) * 2017-12-05 2018-05-29 北京小米移动软件有限公司 视频编码的码率控制方法、电子设备及存储介质
CN108347580A (zh) * 2018-03-27 2018-07-31 聚好看科技股份有限公司 一种处理视频帧数据的方法及电子设备
CN110784718A (zh) * 2019-10-31 2020-02-11 广州市网星信息技术有限公司 视频数据编码方法、装置、设备和存储介质

Also Published As

Publication number Publication date
CN111385637A (zh) 2020-07-07

Similar Documents

Publication Publication Date Title
US12015770B2 (en) Method for encoding video data, device, and storage medium
CN108347580B (zh) 一种处理视频帧数据的方法及电子设备
CN108989832B (zh) 一种图像数据处理方法及其设备、存储介质、终端
CN111263189B (zh) 视频质量检测方法、装置和计算机设备
US10784988B2 (en) Conditional forward error correction for network data
CN115460414B (zh) 一种基板管理控制芯片的视频压缩方法、系统及相关组件
CN110300322B (zh) 一种屏幕录制的方法、客户端和终端设备
CN113938682A (zh) 视频编码方法、装置和电子设备
CN111385637B (zh) 媒体数据编码方法、装置及电子设备
CN113079406A (zh) 视频处理方法及装置
CN111385576B (zh) 视频编码方法、装置、移动终端及存储介质
CN113645448A (zh) 一种适用于指挥调度的视频解码方法和装置
CN107493478B (zh) 编码帧率设置方法及设备
CN109151574A (zh) 视频处理方法、装置、电子设备以及存储介质
CN109308778B (zh) 移动侦测告警方法、装置、采集设备和存储介质
CN112153388A (zh) 一种图像压缩方法、装置及相关设备
CN109640082A (zh) 音视频多媒体数据处理方法及其设备
CN116170632A (zh) 一种声音补偿方法及装置
CN106254873B (zh) 一种视频编码方法及视频编码装置
CN109819187B (zh) 视频录制的控制方法、装置、移动终端及存储介质
US11398091B1 (en) Repairing missing frames in recorded video with machine learning
CN117014659B (zh) 一种视频转码方法、装置、电子设备和存储介质
CN114222980A (zh) 耗电日志处理方法、装置、电子设备以及存储介质
CN110785994A (zh) 图像处理的方法、设备及存储介质
CN108322820B (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