logo好方法网

一种多媒体文件拼接音视频唇音同步的方法


技术摘要:
一种多媒体文件拼接音视频唇音同步的方法,包括:获取待拼接的多媒体文件,确定待拼接的多媒体文件拼接顺序;获取待拼接的多媒体文件的基础信息,根据待拼接的多媒体文件的基础信息,创建目标多媒体文件;对当前待拼接多媒体文件顺序进行判断,对于不同拼接顺序和文件  全部
背景技术:
随着网络通信技术的飞速发展,人们娱乐方式越来越多样化,网红直播、短视频、 网剧、网络电影等基于多媒体的快时尚更是火爆现今网络。为了增强视频趣味性,用户会将 两个或两个以上的多媒体文件拼接成一个,被拼接的多媒体文件格式多样、多媒体数据多 样,拼接装置要确保各类媒体文件都能拼接且新生成的多媒体文件播放正常。 用于拼接的多媒体文件,常见的文件格式有MP4、MP3、FLV、AVI等,包含的多媒体数 据可以同时有音视频或只有视频或只有音频。媒体文件的播放,由文件记录的流信息和媒 体数据时间戳共同作用,播放器严格按时间戳标注的时间显示视频画面和音频声音,但实 际拼接发现,若多媒体文件A和多媒体文件B进行拼接,若多媒体文件A只含音频或只含视 频,多媒体文件B包含音视频,进行拼接生成媒体文件C,文件A的媒体数据位于多媒体文件C 的前段,播放多媒体文件C出现音视频不同步问题。鉴于多媒体文件的多样性,确保拼接生 成的形式不一的文件均能正常播放成为必须要解决的问题。
技术实现要素:
鉴于上述问题,提供一种克服上述问题或者至少部分地解决上述问题的一种多媒 体文件拼接音视频唇音同步的方法。 一种多媒体文件拼接音视频唇音同步的方法,包括: S100.获取待拼接的多媒体文件,确定待拼接的多媒体文件拼接顺序; S200.获取待拼接的多媒体文件的基础信息,根据待拼接的多媒体文件的基础信息,创 建目标多媒体文件; S300.对当前待拼接多媒体文件顺序进行判断,若当前待拼接多媒体文件顺序不为最 后一个文件时,对待拼接多媒体文件类型进行判定,根据不同多媒体文件类型,采用第一预 设规则进行处理,将处理后的音视频数据加入到目标多媒体文件; S400.对当前待拼接多媒体文件顺序进行判断,若当前待拼接多媒体文件顺序为最后 一个文件时,采用第二预设规则进行处理,将处理后的音视频数据加入到目标多媒体文件; S500.当最后一个多媒体文件处理完成加入到目标多媒体文件后,对目标多媒体文件 的文件头进行更新,对目标多媒体文件的文件尾进行重新写入。 进一步地,S200中,待拼接的多媒体文件的基础信息至少包括:音视频流条数、视 频分辨率、音视频采样率、每帧音频包含样本数、音视频时间基。 进一步地,S300中,对待拼接多媒体文件类型进行判定,多媒体文件类型包括:只 有音频、只有视频和同时含有音视频。 进一步地,第一预设规则为:若待拼接多媒体文件同时包含音视频流,记录音视频 4 CN 111741376 A 说 明 书 2/8 页 帧的显示时间分别为T1、T2,完成对目标多媒体文件数据的写入后,比对音视频最后一帧的 显示时间值,若当音频显示时间小于视频显示时间,且两者差值大于预设阈值时,写入音频 静音包,直到两者显示时间的差值小于预设阈值,调整记录音频显示时间T1的值;当视频显 示时间小于音频显示时间时,直接调整记录视频显示时间T2的值。 进一步地,第一预设规则还包括:若待拼接多媒体文件只含音频流,记录音频帧的 显示时间T1,完成音频数据的写入后,创造一帧编码为I帧的黑色的视频数据,写入目标多 媒体文件,调整记录视频帧的显示时间T2,使T2等于T1。 进一步地,第一预设规则还包括:若待拼接多媒体文件只含视频流,记录视频帧的 显示时间T2,完成视频数据的写入后,持续造音频静音数据,编码后写入目标多媒体文件, 新造的音频包按规律标注显示时间,待音频的显示时间T1与视频显示时间T2的差值小于预 设阈值后,停止静音包填充。 进一步地,S400中的第二预设规则为:对最后一个多媒体文件进行编解码,根据前 一待拼接多媒体文件音频的显示时间与视频显示时间,重新为编码生成的媒体数据赋值音 视频时间戳。 进一步地,S300包括: S301.对待拼接多媒体文件进行检测,为每条媒体流创建对应的解码器,记录媒体流条 数和媒体流类型; S302.从待拼接多媒体文件读取一帧完整的媒体数据,每次读取的媒体数据显示时间 遵循单调递增规律,根据帧参数判断帧类型; S303.利用待拼接多媒体文件中音视频解码器进行解码,得到音视频原始数据,调用目 标多媒体文件中的音视频编码器,对音视频原始数据进行编码得到新的音视频帧,为新生 成的音视频帧重新赋值时间戳; S304.记录音视频流显示时间分别为T1和T2,比较T1和T2大小,若待拼接多媒体文件同 时包含音视频流,记录音视频帧的显示时间分别为T1、T2,完成对目标多媒体文件数据的写 入后,比对音视频最后一帧的显示时间值,若当音频显示时间小于视频显示时间,且两者差 值大于预设阈值时,写入音频静音包,直到两者显示时间的差值小于预设阈值,调整记录音 频显示时间T1的值;当视频显示时间小于音频显示时间时,直接调整记录视频显示时间T2 的值;若待拼接多媒体文件只含音频流,记录音频帧的显示时间T1,完成音频数据的写入 后,创造一帧编码为I帧的黑色的视频数据,写入目标多媒体文件,调整记录视频帧的显示 时间T2,使T2等于T1;若待拼接多媒体文件只含视频流,记录视频帧的显示时间T2,完成视 频数据的写入后,持续造音频静音数据,编码后写入目标多媒体文件,新造的音频包按规律 标注显示时间,待音频的显示时间T1与视频显示时间T2的差值小于预设阈值后,停止静音 包填充。 进一步地,S400包括: S401.对待拼接多媒体文件进行检测,读取一帧完整的媒体数据,根据帧参数判断帧类 型,每次读取的同一条媒体流显示时间遵循单调递增规律。 S402:调用最后一个多媒体文件中解码器,分别解码读取的各类媒体数据,最后一 个多媒体文件既可以只包含音频流,也可以只包含视频流,还可以同时包含音视频流;解码 生成原始数据,视频数据进行格式和分辨率转换,音频数据进行样本重组,再调用目标多媒 5 CN 111741376 A 说 明 书 3/8 页 体文件中编码器进行编码,生成压缩后的媒体数据。 S403:在最后一个多媒体文件前一个多媒体文件音视频时间T1、T2基础上,为编码 生成的媒体数据赋值时间戳,音频时间戳数据值依照目标多媒体文件中音频采样率、每帧 音频样本数、当前帧序号和T1计算得到,视频时间戳数据值依照目标多媒体文件中视频帧 率、当前帧序号和T2计算得到,时间戳计算要注意时间基的转换,将媒体数据写入目标多媒 体文件。 本发明的有益效果是: 本发明公开了一种多媒体文件拼接音视频唇音同步的方法,通过对当前待拼接的多媒 体文件顺序和文件类型,采用不同预设规则进行处理,通过待拼接的多媒体文件音视频时 间戳校对,媒体数据合理填充,确保音视频唇音同步播放。此方法逻辑简单,易实现,实用性 强,效果好,可行性和可靠性高,适用范围广,适用于所有主流格式的文件拼接。 本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变 得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明 书、权利要求书、以及附图中所特别指出的结构来实现和获得。 下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。 附图说明 附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实 施例一起用于解释本发明,并不构成对本发明的限制。在附图中: 图1为本发明实施例1中,一种多媒体文件拼接音视频唇音同步的方法流程图; 图2为本发明实施例2中,非最后一个待拼接多媒体文件FstSrcFile拼接流程图; 图3为本发明实施例2中,最后一个待拼接多媒体文件SecSrcFile拼接流程图。
下载此资料需消耗2积分,
分享到:
收藏