CN109963167B - 音视频处理方法、服务器、装置及存储介质 - Google Patents

音视频处理方法、服务器、装置及存储介质 Download PDF

Info

Publication number
CN109963167B
CN109963167B CN201910263396.1A CN201910263396A CN109963167B CN 109963167 B CN109963167 B CN 109963167B CN 201910263396 A CN201910263396 A CN 201910263396A CN 109963167 B CN109963167 B CN 109963167B
Authority
CN
China
Prior art keywords
audio
transcoding
slice
slices
video
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910263396.1A
Other languages
English (en)
Other versions
CN109963167A (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.)
Shenzhen Onething Technology Co Ltd
Original Assignee
Shenzhen Onething 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 Shenzhen Onething Technology Co Ltd filed Critical Shenzhen Onething Technology Co Ltd
Priority to CN201910263396.1A priority Critical patent/CN109963167B/zh
Publication of CN109963167A publication Critical patent/CN109963167A/zh
Application granted granted Critical
Publication of CN109963167B publication Critical patent/CN109963167B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/40Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods 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
    • H04N19/436Methods 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 using parallelised computational arrangements
    • 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/233Processing of audio elementary streams
    • 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/233Processing of audio elementary streams
    • H04N21/2335Processing of audio elementary streams involving reformatting operations of audio signals, e.g. by converting from one coding standard to another
    • 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, manipulating MPEG-4 scene graphs
    • 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, manipulating MPEG-4 scene graphs
    • H04N21/23424Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving splicing one content stream with another content stream, e.g. for inserting or substituting an advertisement
    • 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, manipulating MPEG-4 scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 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/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8456Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • H04N21/8547Content authoring involving timestamps for synchronizing content

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Business, Economics & Management (AREA)
  • Marketing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Television Signal Processing For Recording (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本发明公开了一种音视频处理方法,包括:获取源音视频文件;对所述源音视频文件进行冗余切分,获得多个冗余切片;将多个所述冗余切片发送至分布式设备;接收所述分布式设备对多个所述冗余切片转码后获得的多个转码切片;按照每个所述转码切片的源时间戳的先后顺序,对多个所述转码切片进行拼接,获得音视频转码文件。本发明还公开了一种服务器、音视频处理装置及存储介质,旨在解决AAC音频编码之后,再拼接起来就会出现音频卡顿或有瑕疵的不正常现象的技术问题。

Description

音视频处理方法、服务器、装置及存储介质
技术领域
本发明涉及通信技术领域,尤其涉及一种音视频处理方法、服务器、装置及存储介质。
背景技术
分布式的转码是指将原本可在一台运算性能较强的服务器上进行的转码任务,以切片形式分拆后分发到多台性能较弱或有计算剩余的主机或嵌入式设备上进行转码的运算形式。随着云计算的普及,这种利用多台机器的剩余资源进行原本资源需求较多的转码任务的形式也成为一种有效的离线转码形式,在点播方面的应用也会越来越多。
实践中发现,AAC(Advanced Audio Coding,高级音频编码)音频编码时,会经过MDCT(Modified Discrete cosine transform,改进离散余弦变换)的时频变换,每个输入到MDCT的采样块与前一个采样块有50%的混叠,这样,在拼接处的音频帧缺少了前面一帧的数据,使得AAC音频编码之后,再拼接起来就会出现音频卡顿或有瑕疵的不正常现象。
发明内容
本发明的主要目的在于提供一种音视频处理方法、服务器、装置及存储介质,旨在解决AAC音频编码之后,再拼接起来就会出现音频卡顿或有瑕疵的不正常现象的技术问题。
为实现上述目的,本发明提供一种音视频处理方法,应用于服务器中,所述方法包括:
获取源音视频文件;
对所述源音视频文件进行冗余切分,获得多个冗余切片,其中,每个所述冗余切片包括音频帧和视频帧,任意相邻的两个所述冗余切片中,前一个所述冗余切片的尾部与后一个所述冗余切片的首部具有相同的冗余数据;
将多个所述冗余切片发送至分布式设备;
接收所述分布式设备对多个所述冗余切片转码后获得的多个转码切片,其中,每个所述转码切片保留有与所述转码切片对应的所述冗余切片的源时间戳;
按照每个所述转码切片的源时间戳的先后顺序,对多个所述转码切片进行拼接,获得音视频转码文件。
可选地,所述对所述源音视频文件进行冗余切分,获得多个冗余切片包括:
获取所述源音视频文件的总时间长度、预设冗余度以及预设切片长度;
根据所述总时间长度以及所述预设切片长度,确定切分次数;
根据所述总时间长度、所述预设冗余度、所述预设切片长度以及所述切分次数,确定每次切分需要的参数序列,其中,所述参数序列包括至少一个切分参数;
针对每次切分需要的参数序列,根据所述参数序列包括的切分参数对所述源音视频文件进行切分,获得多个候选切片;
从所述切分次数获得的多个所述候选切片中进行筛选,获得多个冗余切片。
可选地,所述按照每个所述转码切片的源时间戳的先后顺序,对多个所述转码切片进行拼接,获得音视频转码文件包括:
按照每个所述转码切片保留的源时间戳的先后顺序,将任意相邻的两个所述转码切片中的视频帧进行拼接,获得视频转码文件;
按照每个所述转码切片保留的源时间戳的先后顺序,将任意相邻的两个所述转码切片中的音频帧进行拼接,获得音频转码文件;
将相同源时间戳对应的所述视频转码文件以及所述音频转码文件合并在一起,获得音视频转码文件。
可选地,所述按照每个所述转码切片保留的源时间戳的先后顺序,将任意相邻的两个所述转码切片中的音频帧进行拼接,获得音频转码文件包括:
针对任意相邻的两个所述转码切片,确定源时间戳靠前的所述转码切片的音频帧数量;
根据所述音频帧数量,对源时间戳靠前的所述转码切片的预设音频帧进行定位;
记录所述预设音频帧的第一时间戳;
从源时间戳靠后的所述转码切片中,确定所述第一时间戳的下一个时间戳所对应的目标音频帧;
将所述预设音频帧与所述目标音频帧进行拼接,获得音频转码文件。
可选地,所述预设音频帧为位于源时间戳靠前的所述转码切片的尾部冗余部分的音频帧中的倒数第三个音频帧。
可选地,所述源音视频文件的视频压缩格式为H264或H265,所述源音视频文件的音频压缩格式为高级音频编码AAC。
为实现上述目的,本发明进一步提供一种服务器,所述服务器包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的音视频处理程序,所述音视频处理程序被所述处理器执行时实现所述的音视频处理方法。
可选地,所述服务器为组成内容分发网络或者区块链网络的节点。
为实现上述目的,本发明进一步提供一种音视频处理装置,所述装置包括:
获取模块,用于获取源音视频文件;
切分模块,用于对所述源音视频文件进行冗余切分,获得多个冗余切片,其中,每个所述冗余切片包括音频帧和视频帧,任意相邻的两个所述冗余切片中,前一个所述冗余切片的尾部与后一个所述冗余切片的首部具有相同的冗余数据;
发送模块,用于将多个所述冗余切片发送至分布式设备;
接收模块,用于接收所述分布式设备对多个所述冗余切片转码后获得的多个转码切片,其中,每个所述转码切片保留有与所述转码切片对应的所述冗余切片的源时间戳;
拼接模块,用于按照每个所述转码切片的源时间戳的先后顺序,对多个所述转码切片进行拼接,获得音视频转码文件。
为实现上述目的,本发明进一步提供一种计算机可读存储介质,所述计算机可读存储介质上存储有音视频处理程序,所述音视频处理程序可被一个或者多个处理器执行,以实现所述的音视频处理方法。
为实现上述目的,本发明进一步提供一种计算机程序产品,包括计算机指令,当其在计算机上运行时,使得计算机可以执行所述的音视频处理方法。
本发明所实现的有益效果:
本发明中,可以获取源音视频文件,对所述源音视频文件进行冗余切分,获得多个冗余切片,其中,每个所述冗余切片包括音频帧和视频帧,任意相邻的两个所述冗余切片中,前一个所述冗余切片的尾部与后一个所述冗余切片的首部具有相同的冗余数据;进一步地,将多个所述冗余切片发送至分布式设备,并接收所述分布式设备对多个所述冗余切片转码后获得的多个转码切片,其中,每个所述转码切片保留有与所述转码切片对应的所述冗余切片的源时间戳;更进一步地,可以按照每个所述转码切片的源时间戳的先后顺序,对多个所述转码切片进行拼接,获得音视频转码文件。可见,本发明中,通过冗余切片,并保持源时间戳的冗余转码方式,将分布式转码后的音频帧和视频帧拼接起来,可以保留完整的AAC音频数据,从而可以确保AAC音频拼接之后无卡顿无瑕疵,保持AAC音频的正常。
附图说明
图1为本发明一实施例公开的一种音视频处理方法的流程示意图;
图2为本发明一实施例公开的一种服务器的内部结构示意图;
图3为本发明一实施例公开的一种音视频处理装置的功能模块示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、装置、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
需要说明的是,在本发明中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
本发明提供一种音视频处理方法,旨在解决AAC音频编码之后,再拼接起来就会出现音频卡顿或有瑕疵的不正常现象的技术问题。
其中,所述服务器可以是指能对网络中其它设备(如分布式设备)提供服务的计算机系统。如果一个个人电脑能够对外提供文件传输协议(File Transfer Protocol,简称FTP)服务,也可以叫服务器。从狭义范围上讲,服务器专指某些高性能计算机,能通过网络,对外提供服务,其相对于普通的个人电脑来说,稳定性、安全性、性能等方面都要求更高,因此在CPU、芯片组、内存、磁盘系统、网络等硬件和普通的个人电脑有所不同。所述服务器用于向客户端提供服务(例如数据传输服务)。所述服务器可以包括但不限于PC(PersonalComputer,个人电脑)、智能手机、平板电脑、掌上电脑、便携计算机、智能路由器、矿机、网络存储设备等。本发明中,所述服务器可以是个人云盘,例如玩客云。
其中,分布式设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、可编程门阵列(Field-Programmable Gate Array,FPGA)、数字处理器(Digital Signal Processor,DSP)、嵌入式设备等。所述分布式设备包括但不限于任何一种可与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互的电子产品,例如,个人计算机、平板电脑、智能手机、个人数字助理(Personal DigitalAssistant,PDA)、交互式网络电视(Internet Protocol Television,IPTV)、智能式穿戴式设备等。
其中,服务器的运算性能比分布式设备的运算性能较强。通常,服务器可以以切片形式将转码任务拆分后分发到多个分布式设备中进行转码。
参照图1,图1为本发明一实施例公开的一种音视频处理方法的流程示意图。如图1所示,该音视频处理方法包括:
S11,服务器获取源音视频文件。
其中,所述源音视频文件的视频压缩格式为H264或H265,所述源音视频文件的音频压缩格式为高级音频编码(Advanced Audio Coding,AAC)。
其中,音视频文件是指将音频文件与视频文件通过常用的容器封装在一起的文件。可选的,可以采用ts封装格式将音频帧与视频帧封装在一起,其中,ts格式是一种新兴的高清封装格式。音频文件和视频文件也可以从封装后的容器中再拆出来。
S12,服务器对所述源音视频文件进行冗余切分,获得多个冗余切片。
本发明实施例中,所述冗余切分区别于普通的切片操作,所获得的冗余切片中会有部分的冗余数据。每个所述冗余切片包括音频帧和视频帧,任意相邻的两个所述冗余切片中,前一个所述冗余切片的尾部与后一个所述冗余切片的首部具有相同的冗余数据。
具体的,所述对所述源音视频文件进行冗余切分,获得多个冗余切片包括:
获取所述源音视频文件的总时间长度、预设冗余度以及预设切片长度;
根据所述总时间长度以及所述预设切片长度,确定切分次数;
根据所述总时间长度、所述预设冗余度、所述预设切片长度以及所述切分次数,确定每次切分需要的参数序列,其中,所述参数序列包括至少一个切分参数;
针对每次切分需要的参数序列,根据所述参数序列包括的切分参数对所述源音视频文件进行切分,获得多个候选切片;
从所述切分次数获得的多个所述候选切片中进行筛选,获得多个冗余切片。
其中,所述源音视频文件的总时间长度即所述源音视频文件的播放时长,所述预设冗余度为预先设置的任意相邻的两个冗余切片的冗余部分的时间长度,比如冗余切片1和冗余切片2的冗余部分的时间长度,预设切片长度为预设的切片的时间长度。
其中,可以根据所述总时间长度以及所述预设切片长度,来计算需要的冗余切片的份数,而每次切分只能获取一个冗余切片,故可以确定切分次数为需要的冗余切片的份数,比如所述源音视频文件的总时间长度为400秒,所述预设切片长度为100秒,则可以确定切分次数为400/100=4次。
进一步地,还可以根据所述总时间长度、所述预设冗余度、所述预设切片长度以及所述切分次数,确定每次切分需要的参数序列。举例来说,假设切分次数为N,所述总时间长度为L,所述预设冗余度为delta,所述预设切片长度为A。其中,N、L、delta以及A均为正整数。第N=1次切分时,通常是均匀切分,第1次切分需要的参数序列中包括(L/A-1)个切分参数;第N=2……(N-1)次切分时,需要的参数序列中包括的切分参数为2个,即(A-delta)*(N-1)、(A-delta)*(N-1)+A;第N次切分时,需要的参数序列中包括的切分参数为1个,即(A-delta)*(N-1)。
更进一步地,即可根据上述每次切分时确定的切分参数对所述源音视频文件进行切分,获得多个候选切片,并从所述切分次数获得的多个所述候选切片中进行筛选,获得多个冗余切片。其中,筛选的规则是,第1次切分保留第1个候选切片,第2次切分直至第N次切分均保留第2个候选切片。
举例来说,假设切分次数为N=4,所述总时间长度为L=400,所述预设冗余度为delta=5,所述预设切片长度为A=100,第1次切分,确定的切分参数为100、200、300,得到的候选切片的时间长度依次为0~100、100~200、200~300、300~400,保留时间长度为0~100的第一个候选切片;第2次切分,确定的切分参数为95、195,得到的候选切片的时间长度依次为0~95、95~195、195~400,保留时间长度为95~195的第2个候选切片;第3次切分,确定的切分参数为190、290,得到的候选切片的时间长度依次为0~190、190~290、290~400,保留时间长度为190~290的第2个候选切片;第4次切分,确定的切分参数为285,得到的候选切片的时间长度依次为0~285、285~400,保留时间长度为285~400的第2个候选切片。最后,将所有保留的候选切片合并在一起就获得了4个冗余切片,时间长度依次为:0~100、95~195、190~290、285~400,可以看出,任意相邻的两个冗余切片的冗余部分的时间长度为所述预设冗余度为delta,即5秒。
S13,服务器将多个所述冗余切片发送至分布式设备。
其中,服务器还需要将转码命令发送至分布式设备,所述分布式设备可以是一个也可以是多个,所述转码命令通常携带有输入文件地址、输出文件地址、转码用的视频编码器名、转码用的音频编码器名、目标码率等。
其中,多个所述冗余切片主要在标准内转码。分布式设备接收到服务器发送的多个所述冗余切片后,可以对整个冗余切片在标准内转码,即如果所述源音视频文件的视频压缩格式为H264,则以H264格式对所述源音视频文件的视频帧进行转码,将源码率转码成目标码率;如果所述源音视频文件的视频压缩格式为H265,则以H265格式对所述源音视频文件的视频帧进行转码,将源码率转码成目标码率;如果所述源音视频文件的音频压缩格式为高级音频编码AAC,则以AAC格式对所述源音视频文件的音频帧进行转码,将源码率转码成目标码率。
其中,为了保证转码后的音频帧与视频帧能够对应上,同时为了方便将转码后的冗余切片进行拼接,在转码过程中,保持源时间戳不变。具体地,所述源音视频源文件在进行冗余切片操作后,每个冗余切片都会有对应的时间戳数据。分布式设备在对每个所述冗余切片进行转码后,对每个所述转码切片都添加上原冗余切片的源时间戳,即复制该转码切片所对应的冗余切片的时间戳数据。
S14,服务器接收所述分布式设备对多个所述冗余切片转码后获得的多个转码切片。
其中,每个所述转码切片保留有与所述转码切片对应的所述冗余切片的源时间戳。所述转码切片包括音频帧和视频帧。
S15,服务器按照每个所述转码切片的源时间戳的先后顺序,对多个所述转码切片进行拼接,获得音视频转码文件。
具体的,所述按照每个所述转码切片的源时间戳的先后顺序,对多个所述转码切片进行拼接,获得音视频转码文件包括:
按照每个所述转码切片保留的源时间戳的先后顺序,将任意相邻的两个所述转码切片中的视频帧进行拼接,获得视频转码文件;
按照每个所述转码切片保留的源时间戳的先后顺序,将任意相邻的两个所述转码切片中的音频帧进行拼接,获得音频转码文件;
将相同源时间戳对应的所述视频转码文件以及所述音频转码文件合并在一起,获得音视频转码文件。
在该可选的实施方式中,转码后的多个所述转码切片中既包括音频帧也包括视频帧,可以先去掉每个所述转码切片的封装,获得所述转码切片中的视频帧以及音频帧,之后,再按照每个所述转码切片保留的源时间戳的先后顺序,将任意相邻的两个所述转码切片中的视频帧进行拼接,获得视频转码文件,同时,按照每个所述转码切片保留的源时间戳的先后顺序,将任意相邻的两个所述转码切片中的音频帧进行拼接,获得音频转码文件,最后,再将相同源时间戳对应的所述视频转码文件以及所述音频转码文件合并在一起,即可获得音视频转码文件。
其中,视频帧的拼接按照常规处理,在冗余的时间段内,以1帧起始位置开始拼接。
由于现有技术中,合并后的转码文件中音频会因为在拼接处缺少了前面一帧的数据导致卡顿问题,因此可以利用相邻切片的冗余数据覆盖掉失效的数据,保证音频数据的连续性。
具体的,所述按照每个所述转码切片保留的源时间戳的先后顺序,将任意相邻的两个所述转码切片中的音频帧进行拼接,获得音频转码文件包括:
针对任意相邻的两个所述转码切片,确定源时间戳靠前的所述转码切片的音频帧数量;
根据所述音频帧数量,对源时间戳靠前的所述转码切片的预设音频帧进行定位;
记录所述预设音频帧的第一时间戳;
从源时间戳靠后的所述转码切片中,确定所述第一时间戳的下一个时间戳所对应的目标音频帧;
将所述预设音频帧与所述目标音频帧进行拼接,获得音频转码文件。
其中,所述预设音频帧为位于源时间戳靠前的所述转码切片的尾部冗余部分的音频帧中的倒数第三个音频帧。
在该可选的实施方式中,针对任意相邻的两个所述转码切片,通过比较源时间戳的先后顺序,可以确定源时间戳靠前的所述转码切片以及源时间戳靠后的所述转码切片。进一步地,可以先确定源时间戳靠前的所述转码切片的音频帧数量,根据所述音频帧数量,对源时间戳靠前的所述转码切片的预设音频帧进行定位,比如切片1的音频帧数量为10个,预设音频帧为倒数第3个,则可以从第1个音频帧开始定位,定位到第8个音频帧的位置,也即倒数第3个音频帧。在定位所述预设音频帧之后,可以记录所述预设音频帧的第一时间戳,从源时间戳靠后的所述转码切片中,确定所述第一时间戳的下一个时间戳所对应的目标音频帧,将所述预设音频帧与所述目标音频帧进行拼接,获得音频转码文件。比如:所述预设音频帧的第一时间戳为第10秒,则所述第一时间戳的下一个时间戳所对应的目标音频帧,即源时间戳靠后的所述转码切片中的第11秒所对应的目标音频帧。
为了完全避免缺少数据的情况,可以将位于源时间戳靠前的所述转码切片的尾部冗余部分的音频帧中的倒数第三个音频帧设置为预设音频帧。即在拼接合并时,从前一个转码切片的尾部冗余部分的音频帧中的倒数第三帧音频数据开始拼接,这样即便拼接处前一帧数据失效了,也可以完全利用另一个转码切片中的冗余数据,将失效的一帧数据和失效数据相邻的一帧数据完全覆盖,从而可以更有效避免音频卡顿的问题。
在图1所描述的方法流程中,可以获取源音视频文件,对所述源音视频文件进行冗余切分,获得多个冗余切片,其中,每个所述冗余切片包括音频帧和视频帧,任意相邻的两个所述冗余切片中,前一个所述冗余切片的尾部与后一个所述冗余切片的首部具有相同的冗余数据;进一步地,将多个所述冗余切片发送至分布式设备,并接收所述分布式设备对多个所述冗余切片转码后获得的多个转码切片,其中,每个所述转码切片保留有与所述转码切片对应的所述冗余切片的源时间戳;更进一步地,可以按照每个所述转码切片的源时间戳的先后顺序,对多个所述转码切片进行拼接,获得音视频转码文件。可见,本发明中,通过冗余切片,并保持源时间戳的冗余转码方式,将分布式转码后的音频帧和视频帧拼接起来,可以保留完整的AAC音频数据,从而可以确保AAC音频拼接之后无卡顿无瑕疵,保持AAC音频的正常。
参照图2,图2为本发明一实施例公开的一种服务器的内部结构示意图,如图2所示,所述服务器1可以包括存储器11、处理器12和总线13。
在本实施例中,所述服务器1可以是PC(Personal Computer,个人电脑),也可以是智能手机、平板电脑、掌上电脑、便携计算机、智能路由器、矿机、网络存储设备终端设备。
该服务器1可以是组成内容分发网络或者区块链网络的节点。
其中,存储器11至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、磁性存储器、磁盘、光盘等。存储器11在一些实施例中可以是服务器1的内部存储单元,例如该服务器1的硬盘。存储器11在另一些实施例中也可以是服务器1的外部存储设备,例如服务器1上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器11还可以既包括服务器1的内部存储单元也包括外部存储设备。存储器11不仅可以用于存储安装于服务器1的应用软件及各类数据,例如音视频处理程序的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
处理器12在一些实施例中可以是一中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器或其他数据处理芯片,用于运行存储器11中存储的程序代码或处理数据,例如执行音视频处理程序等。
该总线13可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extended industry standard architecture,简称EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图2中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。进一步地,服务器还可以包括网络接口,网络接口可选的可以包括有线接口和/或无线接口(如WI-FI接口、蓝牙接口等),通常用于在该服务器1与其他服务器之间建立通信连接。
可选地,该服务器1还可以包括用户接口,用户接口可以包括显示器(Display)、输入单元比如键盘(Keyboard),可选的用户接口还可以包括标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在服务器1中处理的信息以及用于显示可视化的用户界面。
图2仅示出了具有组件11至13以及音视频处理程序的服务器1,本领域技术人员可以理解的是,图2示出的结构并不构成对服务器1的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
结合图1,所述服务器1中的所述存储器11存储多个指令以实现一种进程启动方法,所述处理器12可执行所述多个指令从而实现:
获取源音视频文件;
对所述源音视频文件进行冗余切分,获得多个冗余切片,其中,每个所述冗余切片包括音频帧和视频帧,任意相邻的两个所述冗余切片中,前一个所述冗余切片的尾部与后一个所述冗余切片的首部具有相同的冗余数据;
将多个所述冗余切片发送至分布式设备;
接收所述分布式设备对多个所述冗余切片转码后获得的多个转码切片,其中,每个所述转码切片保留有与所述转码切片对应的所述冗余切片的源时间戳;
按照每个所述转码切片的源时间戳的先后顺序,对多个所述转码切片进行拼接,获得音视频转码文件。
在一种可选的实施方式中,所述对所述源音视频文件进行冗余切分,获得多个冗余切片包括:
获取所述源音视频文件的总时间长度、预设冗余度以及预设切片长度;
根据所述总时间长度以及所述预设切片长度,确定切分次数;
根据所述总时间长度、所述预设冗余度、所述预设切片长度以及所述切分次数,确定每次切分需要的参数序列,其中,所述参数序列包括至少一个切分参数;
针对每次切分需要的参数序列,根据所述参数序列包括的切分参数对所述源音视频文件进行切分,获得多个候选切片;
从所述切分次数获得的多个所述候选切片中进行筛选,获得多个冗余切片。
在一种可选的实施方式中,所述按照每个所述转码切片的源时间戳的先后顺序,对多个所述转码切片进行拼接,获得音视频转码文件包括:
按照每个所述转码切片保留的源时间戳的先后顺序,将任意相邻的两个所述转码切片中的视频帧进行拼接,获得视频转码文件;
按照每个所述转码切片保留的源时间戳的先后顺序,将任意相邻的两个所述转码切片中的音频帧进行拼接,获得音频转码文件;
将相同源时间戳对应的所述视频转码文件以及所述音频转码文件合并在一起,获得音视频转码文件。
在一种可选的实施方式中,所述按照每个所述转码切片保留的源时间戳的先后顺序,将任意相邻的两个所述转码切片中的音频帧进行拼接,获得音频转码文件包括:
针对任意相邻的两个所述转码切片,确定源时间戳靠前的所述转码切片的音频帧数量;
根据所述音频帧数量,对源时间戳靠前的所述转码切片的预设音频帧进行定位;
记录所述预设音频帧的第一时间戳;
从源时间戳靠后的所述转码切片中,确定所述第一时间戳的下一个时间戳所对应的目标音频帧;
将所述预设音频帧与所述目标音频帧进行拼接,获得音频转码文件。
在一种可选的实施方式中,所述预设音频帧为位于源时间戳靠前的所述转码切片的尾部冗余部分的音频帧中的倒数第三个音频帧。
在一种可选的实施方式中,所述源音视频文件的视频压缩格式为H264或H265,所述源音视频文件的音频压缩格式为高级音频编码AAC。
具体地,所述处理器12对上述指令的具体实现方法可参考图1对应实施例中相关步骤的描述,在此不赘述。
在图2所描述的服务器中,可以获取源音视频文件,对所述源音视频文件进行冗余切分,获得多个冗余切片,其中,每个所述冗余切片包括音频帧和视频帧,任意相邻的两个所述冗余切片中,前一个所述冗余切片的尾部与后一个所述冗余切片的首部具有相同的冗余数据;进一步地,将多个所述冗余切片发送至分布式设备,并接收所述分布式设备对多个所述冗余切片转码后获得的多个转码切片,其中,每个所述转码切片保留有与所述转码切片对应的所述冗余切片的源时间戳;更进一步地,可以按照每个所述转码切片的源时间戳的先后顺序,对多个所述转码切片进行拼接,获得音视频转码文件。可见,本发明中,通过冗余切片,并保持源时间戳的冗余转码方式,将分布式转码后的音频帧和视频帧拼接起来,可以保留完整的AAC音频数据,从而可以确保AAC音频拼接之后无卡顿无瑕疵,保持AAC音频的正常。
参照图3,图3为本发明一实施例公开的一种音视频处理装置的功能模块示意图。
在一些实施例中,所述音视频处理装置运行于分布式的边缘设备中。所述音视频处理装置可以包括多个由程序代码段所组成的功能模块。所述音视频处理装置中的各个程序段的程序代码可以存储于存储器中,并由至少一个处理器所执行,以执行图1所描述的音视频处理方法中的部分或全部步骤。
本实施例中,所述音视频处理装置根据其所执行的功能,可以被切分为多个功能模块。所述功能模块可以包括:获取模块301、切分模块302、发送模块303、接收模块304以及拼接模块305。本发明所称的模块是指一种能够被至少一个处理器所执行并且能够完成固定功能的一系列计算机程序段,其存储在存储器中。在一些实施例中,关于各模块的功能将在后续的实施例中详述。
如图3所示,所述音视频处理装置包括:
获取模块301,用于获取源音视频文件;
其中,所述源音视频文件的视频压缩格式为H264或H265,所述源音视频文件的音频压缩格式为高级音频编码(Advanced Audio Coding,AAC)。
其中,音视频文件是指将音频文件与视频文件通过常用的容器封装在一起的文件。可选的,可以采用ts封装格式将音频帧与视频帧封装在一起,其中,ts格式是一种新兴的高清封装格式。音频文件和视频文件也可以从封装后的容器中再拆出来。
切分模块302,用于对所述源音视频文件进行冗余切分,获得多个冗余切片,其中,每个所述冗余切片包括音频帧和视频帧,任意相邻的两个所述冗余切片中,前一个所述冗余切片的尾部与后一个所述冗余切片的首部具有相同的冗余数据;
本发明实施例中,所述冗余切分区别于普通的切片操作,所获得的冗余切片中会有部分的冗余数据。每个所述冗余切片包括音频帧和视频帧,任意相邻的两个所述冗余切片中,前一个所述冗余切片的尾部与后一个所述冗余切片的首部具有相同的冗余数据。
发送模块303,用于将多个所述冗余切片发送至分布式设备;
其中,服务器还需要将转码命令发送至分布式设备,所述分布式设备可以是一个也可以是多个,所述转码命令通常携带有输入文件地址、输出文件地址、转码用的视频编码器名、转码用的音频编码器名、目标码率等。
其中,多个所述冗余切片主要在标准内转码。分布式设备接收到服务器发送的多个所述冗余切片后,可以对整个冗余切片在标准内转码,即如果所述源音视频文件的视频压缩格式为H264,则以H264格式对所述源音视频文件的视频帧进行转码,将源码率转码成目标码率;如果所述源音视频文件的视频压缩格式为H265,则以H265格式对所述源音视频文件的视频帧进行转码,将源码率转码成目标码率;如果所述源音视频文件的音频压缩格式为高级音频编码AAC,则以AAC格式对所述源音视频文件的音频帧进行转码,将源码率转码成目标码率。
其中,为了保证转码后的音频帧与视频帧能够对应上,同时为了方便将转码后的冗余切片进行拼接,在转码过程中,保持源时间戳不变。具体地,所述源音视频源文件在进行冗余切片操作后,每个冗余切片都会有对应的时间戳数据。分布式设备在对每个所述冗余切片进行转码后,对每个所述转码切片都添加上原冗余切片的源时间戳,即复制该转码切片所对应的冗余切片的时间戳数据。
接收模块304,用于接收所述分布式设备对多个所述冗余切片转码后获得的多个转码切片,其中,每个所述转码切片保留有与所述转码切片对应的所述冗余切片的源时间戳;
拼接模块305,用于按照每个所述转码切片的源时间戳的先后顺序,对多个所述转码切片进行拼接,获得音视频转码文件。
可选的,所述切分模块302对所述源音视频文件进行冗余切分,获得多个冗余切片包括:
获取所述源音视频文件的总时间长度、预设冗余度以及预设切片长度;
根据所述总时间长度以及所述预设切片长度,确定切分次数;
根据所述总时间长度、所述预设冗余度、所述预设切片长度以及所述切分次数,确定每次切分需要的参数序列,其中,所述参数序列包括至少一个切分参数;
针对每次切分需要的参数序列,根据所述参数序列包括的切分参数对所述源音视频文件进行切分,获得多个候选切片;
从所述切分次数获得的多个所述候选切片中进行筛选,获得多个冗余切片。
其中,所述源音视频文件的总时间长度即所述源音视频文件的播放时长,所述预设冗余度为预先设置的任意相邻的两个冗余切片的冗余部分的时间长度,比如冗余切片1和冗余切片2的冗余部分的时间长度,预设切片长度为预设的切片的时间长度。
其中,可以根据所述总时间长度以及所述预设切片长度,来计算需要的冗余切片的份数,而每次切分只能获取一个冗余切片,故可以确定切分次数为需要的冗余切片的份数,比如所述源音视频文件的总时间长度为400秒,所述预设切片长度为100秒,则可以确定切分次数为400/100=4次。
进一步地,还可以根据所述总时间长度、所述预设冗余度、所述预设切片长度以及所述切分次数,确定每次切分需要的参数序列。举例来说,假设切分次数为N,所述总时间长度为L,所述预设冗余度为delta,所述预设切片长度为A。其中,N、L、delta以及A均为正整数。第N=1次切分时,通常是均匀切分,第1次切分需要的参数序列中包括(L/A-1)个切分参数;第N=2……(N-1)次切分时,需要的参数序列中包括的切分参数为2个,即(A-delta)*(N-1)、(A-delta)*(N-1)+A;第N次切分时,需要的参数序列中包括的切分参数为1个,即(A-delta)*(N-1)。
更进一步地,即可根据上述每次切分时确定的切分参数对所述源音视频文件进行切分,获得多个候选切片,并从所述切分次数获得的多个所述候选切片中进行筛选,获得多个冗余切片。其中,筛选的规则是,第1次切分保留第1个候选切片,第2次切分直至第N次切分均保留第2个候选切片。
举例来说,假设切分次数为N=4,所述总时间长度为L=400,所述预设冗余度为delta=5,所述预设切片长度为A=100,第1次切分,确定的切分参数为100、200、300,得到的候选切片的时间长度依次为0~100、100~200、200~300、300~400,保留时间长度为0~100的第一个候选切片;第2次切分,确定的切分参数为95、195,得到的候选切片的时间长度依次为0~95、95~195、195~400,保留时间长度为95~195的第2个候选切片;第3次切分,确定的切分参数为190、290,得到的候选切片的时间长度依次为0~190、190~290、290~400,保留时间长度为190~290的第2个候选切片;第4次切分,确定的切分参数为285,得到的候选切片的时间长度依次为0~285、285~400,保留时间长度为285~400的第2个候选切片。最后,将所有保留的候选切片合并在一起就获得了4个冗余切片,时间长度依次为:0~100、95~195、190~290、285~400,可以看出,任意相邻的两个冗余切片的冗余部分的时间长度为所述预设冗余度为delta,即5秒。
可选的,所述拼接模块305按照每个所述转码切片的源时间戳的先后顺序,对多个所述转码切片进行拼接,获得音视频转码文件包括:
按照每个所述转码切片保留的源时间戳的先后顺序,将任意相邻的两个所述转码切片中的视频帧进行拼接,获得视频转码文件;
按照每个所述转码切片保留的源时间戳的先后顺序,将任意相邻的两个所述转码切片中的音频帧进行拼接,获得音频转码文件;
将相同源时间戳对应的所述视频转码文件以及所述音频转码文件合并在一起,获得音视频转码文件。
在该可选的实施方式中,转码后的多个所述转码切片中既包括音频帧也包括视频帧,可以先去掉每个所述转码切片的封装,获得所述转码切片中的视频帧以及音频帧,之后,再按照每个所述转码切片保留的源时间戳的先后顺序,将任意相邻的两个所述转码切片中的视频帧进行拼接,获得视频转码文件,同时,按照每个所述转码切片保留的源时间戳的先后顺序,将任意相邻的两个所述转码切片中的音频帧进行拼接,获得音频转码文件,最后,再将相同源时间戳对应的所述视频转码文件以及所述音频转码文件合并在一起,即可获得音视频转码文件。
其中,视频帧的拼接按照常规处理,在冗余的时间段内,以1帧起始位置开始拼接。
可选的,所述拼接模块305按照每个所述转码切片保留的源时间戳的先后顺序,将任意相邻的两个所述转码切片中的音频帧进行拼接,获得音频转码文件包括:
针对任意相邻的两个所述转码切片,确定源时间戳靠前的所述转码切片的音频帧数量;
根据所述音频帧数量,对源时间戳靠前的所述转码切片的预设音频帧进行定位;
记录所述预设音频帧的第一时间戳;
从源时间戳靠后的所述转码切片中,确定所述第一时间戳的下一个时间戳所对应的目标音频帧;
将所述预设音频帧与所述目标音频帧进行拼接,获得音频转码文件。
可选的,所述预设音频帧为位于源时间戳靠前的所述转码切片的尾部冗余部分的音频帧中的倒数第三个音频帧。
由于现有技术中,合并后的转码文件中音频会因为在拼接处缺少了前面一帧的数据导致卡顿问题,因此可以利用相邻切片的冗余数据覆盖掉失效的数据,保证音频数据的连续性。
在该可选的实施方式中,针对任意相邻的两个所述转码切片,通过比较源时间戳的先后顺序,可以确定源时间戳靠前的所述转码切片以及源时间戳靠后的所述转码切片。进一步地,可以先确定源时间戳靠前的所述转码切片的音频帧数量,根据所述音频帧数量,对源时间戳靠前的所述转码切片的预设音频帧进行定位,比如切片1的音频帧数量为10个,预设音频帧为倒数第3个,则可以从第1个音频帧开始定位,定位到第8个音频帧的位置,也即倒数第3个音频帧。在定位所述预设音频帧之后,可以记录所述预设音频帧的第一时间戳,从源时间戳靠后的所述转码切片中,确定所述第一时间戳的下一个时间戳所对应的目标音频帧,将所述预设音频帧与所述目标音频帧进行拼接,获得音频转码文件。比如:所述预设音频帧的第一时间戳为第10秒,则所述第一时间戳的下一个时间戳所对应的目标音频帧,即源时间戳靠后的所述转码切片中的第11秒所对应的目标音频帧。
为了完全避免缺少数据的情况,可以将位于源时间戳靠前的所述转码切片的尾部冗余部分的音频帧中的倒数第三个音频帧设置为预设音频帧。即在拼接合并时,从前一个转码切片的尾部冗余部分的音频帧中的倒数第三帧音频数据开始拼接,这样即便拼接处前一帧数据失效了,也可以完全利用另一个转码切片中的冗余数据,将失效的一帧数据和失效数据相邻的一帧数据完全覆盖,从而可以更有效避免音频卡顿的问题。
可选的,所述源音视频文件的视频压缩格式为H264或H265,所述源音视频文件的音频压缩格式为高级音频编码AAC。
在图3所示的音视频处理装置中,可以获取源音视频文件,对所述源音视频文件进行冗余切分,获得多个冗余切片,其中,每个所述冗余切片包括音频帧和视频帧,任意相邻的两个所述冗余切片中,前一个所述冗余切片的尾部与后一个所述冗余切片的首部具有相同的冗余数据;进一步地,将多个所述冗余切片发送至分布式设备,并接收所述分布式设备对多个所述冗余切片转码后获得的多个转码切片,其中,每个所述转码切片保留有与所述转码切片对应的所述冗余切片的源时间戳;更进一步地,可以按照每个所述转码切片的源时间戳的先后顺序,对多个所述转码切片进行拼接,获得音视频转码文件。可见,本发明中,通过冗余切片,并保持源时间戳的冗余转码方式,将分布式转码后的音频帧和视频帧拼接起来,可以保留完整的AAC音频数据,从而可以确保AAC音频拼接之后无卡顿无瑕疵,保持AAC音频的正常。
上述以软件功能模块的形式实现的集成的单元,可以存储在一个计算机可读存储介质中。其中,该计算机可读存储介质可以存储计算机程序,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读存储介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读存储介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的切分,仅仅为一种逻辑功能切分,实际实现时可以有另外的切分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。并且本文中的术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (9)

1.一种音视频处理方法,其特征在于,应用于服务器中,所述方法包括:
获取源音视频文件;
对所述源音视频文件进行冗余切分,获得多个冗余切片,其中,每个所述冗余切片包括音频帧和视频帧,任意相邻的两个所述冗余切片中,前一个所述冗余切片的尾部与后一个所述冗余切片的首部具有相同的冗余数据;
将多个所述冗余切片发送至分布式设备;
接收所述分布式设备对多个所述冗余切片转码后获得的多个转码切片,其中,每个所述转码切片保留有与所述转码切片对应的所述冗余切片的源时间戳;
按照每个所述转码切片的源时间戳的先后顺序,对多个所述转码切片进行拼接,获得音视频转码文件;
其中,所述按照每个所述转码切片的源时间戳的先后顺序,对多个所述转码切片进行拼接,获得音视频转码文件包括:
按照每个所述转码切片保留的源时间戳的先后顺序,将任意相邻的两个所述转码切片中的视频帧进行拼接,获得视频转码文件;
按照每个所述转码切片保留的源时间戳的先后顺序,将任意相邻的两个所述转码切片中的音频帧进行拼接,获得音频转码文件;
将相同源时间戳对应的所述视频转码文件以及所述音频转码文件合并在一起,获得音视频转码文件。
2.如权利要求1所述的方法,其特征在于,所述对所述源音视频文件进行冗余切分,获得多个冗余切片包括:
获取所述源音视频文件的总时间长度L、预设冗余度delta以及预设切片长度A;
根据所述总时间长度L以及所述预设切片长度A,确定切分次数N;
根据所述总时间长度L、所述预设冗余度delta、所述预设切片长度A以及所述切分次数N,确定每次切分需要的参数序列,其中,所述参数序列包括至少一个切分参数;其中,第N-1次切分时,需要的参数序列中包括的切分参数为2个,所述切分参数为(A-delta)*(N-1)和(A-delta)*(N-1)+A;第N次切分时,需要的参数序列中包括的切分参数为1个,所述切分参数为(A-delta)*(N-1);
针对每次切分需要的参数序列,根据所述参数序列包括的切分参数对所述源音视频文件进行切分,获得多个候选切片;
从所述切分次数获得的多个所述候选切片中进行筛选,获得多个冗余切片;
所述筛选的规则为第1次切分保留第1个候选切片,第2次切分直至第N次切分均保留第2个候选切片。
3.如权利要求1所述的方法,其特征在于,所述按照每个所述转码切片保留的源时间戳的先后顺序,将任意相邻的两个所述转码切片中的音频帧进行拼接,获得音频转码文件包括:
针对任意相邻的两个所述转码切片,确定源时间戳靠前的所述转码切片的音频帧数量;
根据所述音频帧数量,对源时间戳靠前的所述转码切片的预设音频帧进行定位;
记录所述预设音频帧的第一时间戳;
从源时间戳靠后的所述转码切片中,确定所述第一时间戳的下一个时间戳所对应的目标音频帧;
将所述预设音频帧与所述目标音频帧进行拼接,获得音频转码文件。
4.如权利要求3所述的方法,其特征在于,所述预设音频帧为位于源时间戳靠前的所述转码切片的尾部冗余部分的音频帧中的倒数第三个音频帧。
5.如权利要求1或2所述的方法,其特征在于,所述源音视频文件的视频压缩格式为H264或H265,所述源音视频文件的音频压缩格式为高级音频编码AAC。
6.一种服务器,其特征在于,所述服务器包括存储器和处理器,所述存储器上存储有可由所述处理器执行的音视频处理程序,所述音视频处理程序被所述处理器执行时实现如权利要求1至5任一项所述的音视频处理方法。
7.根据权利要求6所述的服务器,其特征在于,所述服务器为组成内容分发网络或者区块链网络的节点。
8.一种音视频处理装置,其特征在于,所述装置包括:
获取模块,用于获取源音视频文件;
切分模块,用于对所述源音视频文件进行冗余切分,获得多个冗余切片,其中,每个所述冗余切片包括音频帧和视频帧,任意相邻的两个所述冗余切片中,前一个所述冗余切片的尾部与后一个所述冗余切片的首部具有相同的冗余数据;
发送模块,用于将多个所述冗余切片发送至分布式设备;
接收模块,用于接收所述分布式设备对多个所述冗余切片转码后获得的多个转码切片,其中,每个所述转码切片保留有与所述转码切片对应的所述冗余切片的源时间戳;
拼接模块,用于按照每个所述转码切片的源时间戳的先后顺序,对多个所述转码切片进行拼接,获得音视频转码文件;
其中,所述拼接模块按照每个所述转码切片的源时间戳的先后顺序,对多个所述转码切片进行拼接,获得音视频转码文件包括:
按照每个所述转码切片保留的源时间戳的先后顺序,将任意相邻的两个所述转码切片中的视频帧进行拼接,获得视频转码文件;
按照每个所述转码切片保留的源时间戳的先后顺序,将任意相邻的两个所述转码切片中的音频帧进行拼接,获得音频转码文件;
将相同源时间戳对应的所述视频转码文件以及所述音频转码文件合并在一起,获得音视频转码文件。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有音视频处理程序,所述音视频处理程序可被一个或者多个处理器执行,以实现如权利要求1至5中任一项所述的音视频处理方法。
CN201910263396.1A 2019-04-02 2019-04-02 音视频处理方法、服务器、装置及存储介质 Active CN109963167B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910263396.1A CN109963167B (zh) 2019-04-02 2019-04-02 音视频处理方法、服务器、装置及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910263396.1A CN109963167B (zh) 2019-04-02 2019-04-02 音视频处理方法、服务器、装置及存储介质

Publications (2)

Publication Number Publication Date
CN109963167A CN109963167A (zh) 2019-07-02
CN109963167B true CN109963167B (zh) 2021-08-06

Family

ID=67025592

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910263396.1A Active CN109963167B (zh) 2019-04-02 2019-04-02 音视频处理方法、服务器、装置及存储介质

Country Status (1)

Country Link
CN (1) CN109963167B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110535978B (zh) * 2019-10-08 2021-06-25 湖南新云网科技有限公司 数据传输方法、装置、系统及智能穿戴式设备和存储介质
CN111147362B (zh) * 2020-01-16 2021-05-25 腾讯科技(深圳)有限公司 多人即时通讯方法、系统、装置及电子设备
CN111954027B (zh) * 2020-08-06 2022-07-08 浩联时代(北京)科技有限公司 流媒体数据转码方法、装置、计算设备及可读存储介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090252217A1 (en) * 2004-12-10 2009-10-08 Wittig Karl R System and method for layered digital video coding in a digital video recorder
CN101951504B (zh) * 2010-09-07 2012-07-25 中国科学院深圳先进技术研究院 基于重叠边界的多媒体切片转码方法和系统
CN109348309B (zh) * 2018-05-04 2020-07-28 上海交通大学 一种适用于帧率上变换的分布式视频转码方法
CN108650510B (zh) * 2018-05-10 2023-03-31 中南大学 视频的编码方法和装置、存储介质、电子装置
CN109151505B (zh) * 2018-11-07 2021-02-26 深圳市网心科技有限公司 一种视频转码方法、系统、装置及计算机可读存储介质

Also Published As

Publication number Publication date
CN109963167A (zh) 2019-07-02

Similar Documents

Publication Publication Date Title
CN109963167B (zh) 音视频处理方法、服务器、装置及存储介质
US9961398B2 (en) Method and device for switching video streams
CN109151505B (zh) 一种视频转码方法、系统、装置及计算机可读存储介质
US11490173B2 (en) Switch of audio and video
CN113824986B (zh) 基于上下文直播音频审核方法、装置、存储介质及设备
CN109600373B (zh) 一种直播数据传输方法、装置、系统以及可读存储介质
CN108874825B (zh) 一种异常数据的校验方法和装置
CN113794909A (zh) 视频流传输系统、方法、服务器、装置以及存储介质
US20180324238A1 (en) A System and Methods Thereof for Auto-playing Video Content on Mobile Devices
US11315605B2 (en) Method, device, and computer program product for storing and providing video
CN112632008A (zh) 一种数据分片的传输方法、装置及计算机设备
US20170041375A1 (en) Generating content fragments for content distribution
CN109788251B (zh) 视频处理方法、装置及存储介质
US10313391B1 (en) Digital distillation
US10491648B2 (en) Server-side interstitial content insertion
US10673919B1 (en) Concurrent input monitor and ingest
CN115269063A (zh) 进程创建方法、系统、设备及介质
CN108228829B (zh) 用于生成信息的方法和装置
CN115190352A (zh) 视频数据存储方法、装置、计算机可读存储介质及电子设备
CN113852835A (zh) 直播音频处理方法、装置、电子设备以及存储介质
CN109960552B (zh) 一种网页界面差异化渲染方法及装置
CN111967001A (zh) 一种基于双容器的解码与编码安全隔离方法
CN117389769B (zh) 基于云服务的浏览器端富文本拷贝方法、系统及云平台
EP3189666B1 (en) Partial headers for system set-up
CN112732728A (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