对多媒体文件进行按需跳转的方法技术

技术编号:15395622 阅读:52 留言:0更新日期:2017-05-19 07:00
本发明专利技术提供了一种对多媒体文件进行按需跳转的方法,包括:通过ffmpeg对输入的多媒体文件进行解复用,得到该多媒体文件的ES流,并获取该多媒体文件的视音频信息;利用该视音频信息对英特尔解码器进行初始化;根据跳转精确性需求信息和目标帧的信息,确定该ES流中目标帧的时间戳;通过ffmpeg对该ES流进行流操作,并从该目标帧的一左侧关键帧的位置开始读取视音频帧数据;利用初始化后的英特尔解码器对读取的该视音频帧数据进行解码,得到该视音频帧的时间戳;判断该视音频帧的时间戳大于或等于该目标帧的时间戳时,将该视音频帧数据放入视音频输出队列,以进行输出。本发明专利技术能够基于英特尔解码器利用ffmpeg进行按需跳转。

Method for on-demand jump of multimedia files

The present invention provides a method to jump to, on multimedia files: demultiplexing by ffmpeg on the input of the multimedia file, the multimedia file ES stream, and get the video and audio information of the multimedia file; the initialization of Intel audio decoder using information; according to the accuracy of the information needs to jump and the target frame information, determine the timestamp of the ES stream target frame; flow operation by ffmpeg on the ES stream, read audio and video frames and data from a left key frame of the target frame position; with Intel on the decoder after initialization of audio and video frames for reading data decoding. Get the timestamp of the audio frame; the judgment of the visual timestamp of the audio frame is greater than or equal to the target frame time stamp, the audio and video frame data in the video and audio transmission Out of queue for output. The invention can jump on demand according to the Intel decoder based on the ffmpeg.

【技术实现步骤摘要】
对多媒体文件进行按需跳转的方法
本专利技术涉及一种对多媒体文件进行按需跳转的方法,尤其涉及一种综合利用英特尔多媒体软件开发包(intelmediasdk)与ffmpeg软件开发包来实现视音频同步跳转(seek)的方法。
技术介绍
目前市面上有很多多媒体视音频处理软件开发包,这些开发包各有自己的优势与劣势,例如,ffmpeg软件开发包,它能够提供包括视音频采集、视音频格式转换、视频抓图、视频加水印等功能,具有功能强大、覆盖面广的优点。但ffmpeg在硬件编解码加速方面却较少涉及,尚很不完善,远不及intelmediasdk的性能优越。intelmediasdk在硬件加速解码、编码方面提供了卓越的性能,其能充分利用图形处理器(GPU)来进行硬件加速。经过测试,对于同一段素材,与ffmpegsdk相比,利用intelmediasdk来转码,速度能提高百分之三十左右而其CPU占用效率却大大降低。相同运行环境下,采用ffmpegsdk与采用intelmediasdk来对相同素材进行解码的性能测试结果如下:显然intelmediasdk在硬件加速方面具有明显优势。然而,intelmediasdk却不能基于多媒体文件流进行seek操作,只能提供基于ES流(ElementaryStream,基本码流)的硬件加速的顺序解码操作。在广电领域,在对多媒体文件进行解码播放过程或者非线性编辑系统中,人们经常将播放或预览位置从文件的一个时间点拖动到另一个时间点。来查看自己关心的内容。这一过程就称为seek。这种操作较为常见,若不能对文件流按需seek,则即使具有优越的硬件加速功能,在产品的应用中也会非常受限。
技术实现思路
本专利技术提供一种对多媒体文件进行按需跳转的方法,以解决现有技术中的一项或多项缺失。本专利技术实施例提供一种对多媒体文件进行按需跳转的方法,包括:接收用户输入的多媒体文件,通过ffmpeg对所述多媒体文件进行解复用,得到所述多媒体文件的ES流,并获取所述多媒体文件的视音频信息;利用所述视音频信息对英特尔解码器进行初始化;根据一跳转精确性需求信息和一目标帧的信息,确定所述ES流中目标帧的时间戳;通过所述ffmpeg对所述ES流进行流操作,并从所述目标帧的一左侧关键帧的位置开始读取视音频帧数据;利用初始化后的所述英特尔解码器对读取的所述视音频帧数据进行解码,得到所述视音频帧的时间戳;判断所述视音频帧的时间戳大于或等于所述目标帧的时间戳时,将所述视音频帧数据放入视音频输出队列,以进行输出。一个实施例中,根据一跳转精确性需求信息和一目标帧的信息,确定所述ES流中目标帧的时间戳,包括:根据所述跳转精确性需求信息设定所述ES流中的帧发生跳转的阈值;判断所述目标帧与所述ES流中当前解码输出帧的帧号差值是否大于或等于所述阈值;如果是,根据所述当前解码输出帧的位置计算得到所述目标帧的时间戳。一个实施例中,还包括:根据所述ES流中的第一帧视频帧的时间戳对所述目标帧中的视频帧的时间戳进行校正,根据所述ES流中的第一帧音频帧的时间戳对所述目标帧中的音频帧的时间戳进行校正。一个实施例中,还包括:判断所述视音频帧的时间戳小于所述目标帧的时间戳时,丢弃时间戳小于所述目标帧的时间戳的视音频帧数据,并继续读取下一帧的视音频帧数据,直到读取的视音频帧的时间戳大于或等于所述目标帧的时间戳。一个实施例中,当所述视音频流数据为视频数据时,所述英特尔解码器为视频解码器;当所述视音频流数据为音频数据时,所述英特尔解码器为音频解码器。一个实施例中,当所述视音频流数据为视频数据时,所述目标帧的时间戳为:vt=((目标视频帧帧号*(1.0/视频帧率)*基准时间)*基准时间的倒数/视频流的时间基)。一个实施例中,当所述视音频流数据为音频数据时,所述目标帧的时间戳为:at=((目标音频帧帧号*(1.0*一帧音频的采样数*基准时间/目标音频采样率)*基准时间的倒数/音频流的时间基),其中,一帧音频的采样数=目标音频采样率/视频帧率,目标音频帧帧号=目标音频采样索引值/一帧音频的采样数,目标音频采样索引值可通过seek操作发生时接口调用者传入的接口参数中得到。一个实施例中,将读取的所述视音频帧数据放入视音频输出队列,以进行输出,包括:将时间戳大于或等于所述目标帧的读取的所述视音频帧数据中的视频数据放入视频输出队列,以进行视频输出;将时间戳大于或等于所述目标帧的读取的所述视音频帧数据中的音频数据放入音频输出队列,以进行音频输出;判断所述视频输出队列和所述音频输出队列均含有进行输出的视音频帧数据时,所述ffmpeg停止读取视音频帧数据。一个实施例中,所述多媒体文件的视音频信息包括:多媒体文件总长度、多媒体文件封装格式、视频编码方式、视频帧率、视频流长度、视频颜色格式、视频码率、音频编码格式、音频采样率、音频采样格式及音频流长度中的一个或多个。一个实施例中,所述左侧关键帧为位于所述目标帧左侧且最接近所述目标帧的关键帧。本专利技术实施例,能够既可以充分利用英特尔解码器(intelmediasdk)进行硬件加速解码,又能允许使用者对被解码播放的多媒体文件进行按需跳转(seek),可以很好地实现基于英特尔解码器intelmediasdk的多媒体文件的硬件加速解码播放与按需跳转seek。本专利技术能够综合利用intelmediasdk与ffmpegsdk来实现视音频同步seek的方法。同时,由于对目标视频帧、目标音频帧的匹配采用最接近原则(最左侧关键帧),因而对于有一些存在时间戳漂移现象的多媒体素材,同样能进行较为准确的seek操作。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。在附图中:图1是本专利技术实施例的对多媒体文件进行按需跳转的方法的流程示意图;图2是本专利技术一实施例中的目标帧时间戳的获取方法的流程示意图;图3是本专利技术另一实施例的目标帧时间戳的获取方法的流程示意图;图4是本专利技术一实施例中的将视音频帧数据放入视音频输出队列的方法的流程示意图;图5是本专利技术一实施例对多媒体文件进行按需跳转的方法的流程示意图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本专利技术实施例做进一步详细说明。在此,本专利技术的示意性实施例及其说明用于解释本专利技术,但并不作为对本专利技术的限定。本专利技术实施例提供一种对多媒体文件进行按需跳转的方法,该方法既可以利用英特尔解码器(intelmediasdk)进行硬件加速解码,又能对被解码播放的多媒体文件进行按需跳转(seek)。图1是本专利技术实施例的对多媒体文件进行按需跳转的方法的流程示意图。如图1所示,对多媒体文件进行按需跳转的方法,可包括步骤:S110:接收用户输入的多媒体文件,通过ffmpeg对所述多媒体文件进行解复用,得到所述多媒体文件的ES流,并获取所述多媒体文件的视音频信息;S120:利用所述视音频信息对英特尔解码器进行初始化;S130:根据一跳转精确性需求信息和一目标帧的信息,确定所述ES流中目标帧的时间戳;S140:通过所述f本文档来自技高网
...
对多媒体文件进行按需跳转的方法

【技术保护点】
一种对多媒体文件进行按需跳转的方法,其特征在于,包括:接收用户输入的多媒体文件,通过ffmpeg对所述多媒体文件进行解复用,得到所述多媒体文件的ES流,并获取所述多媒体文件的视音频信息;利用所述视音频信息对英特尔解码器进行初始化;根据一跳转精确性需求信息和一目标帧的信息,确定所述ES流中目标帧的时间戳;通过所述ffmpeg对所述ES流进行流操作,并从所述目标帧的一左侧关键帧的位置开始读取视音频帧数据;利用初始化后的所述英特尔解码器对读取的所述视音频帧数据进行解码,得到所述视音频帧的时间戳;判断所述视音频帧的时间戳大于或等于所述目标帧的时间戳时,将所述视音频帧数据放入视音频输出队列,以进行输出。

【技术特征摘要】
1.一种对多媒体文件进行按需跳转的方法,其特征在于,包括:接收用户输入的多媒体文件,通过ffmpeg对所述多媒体文件进行解复用,得到所述多媒体文件的ES流,并获取所述多媒体文件的视音频信息;利用所述视音频信息对英特尔解码器进行初始化;根据一跳转精确性需求信息和一目标帧的信息,确定所述ES流中目标帧的时间戳;通过所述ffmpeg对所述ES流进行流操作,并从所述目标帧的一左侧关键帧的位置开始读取视音频帧数据;利用初始化后的所述英特尔解码器对读取的所述视音频帧数据进行解码,得到所述视音频帧的时间戳;判断所述视音频帧的时间戳大于或等于所述目标帧的时间戳时,将所述视音频帧数据放入视音频输出队列,以进行输出。2.如权利要求1所述的对多媒体文件进行按需跳转的方法,其特征在于,根据一跳转精确性需求信息和一目标帧的信息,确定所述ES流中目标帧的时间戳,包括:根据所述跳转精确性需求信息设定所述ES流中的帧发生跳转的阈值;判断所述目标帧与所述ES流中当前解码输出帧的帧号差值是否大于或等于所述阈值;如果是,根据所述当前解码输出帧的位置计算得到所述目标帧的时间戳。3.如权利要求2所述的对多媒体文件进行按需跳转的方法,其特征在于,还包括:根据所述ES流中的第一帧视频帧的时间戳对所述目标帧中的视频帧的时间戳进行校正,根据所述ES流中的第一帧音频帧的时间戳对所述目标帧中的音频帧的时间戳进行校正。4.如权利要求1所述的对多媒体文件进行按需跳转的方法,其特征在于,还包括:判断所述视音频帧的时间戳小于所述目标帧的时间戳时,丢弃时间戳小于所述目标帧的时间戳的视音频帧数据,并继续读取下一帧的视音频帧数据,直到读取的视音频帧的时间戳大于或等于所述目标帧的时间戳。5.如权利要求1所述的对多媒体文件进行按需跳转的方法,其特征在...

【专利技术属性】
技术研发人员:谭艳梅
申请(专利权)人:北京中广上洋科技股份有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1