一种基于MP4文件的视频流关键帧索引播放方法
基于内容的视频检索中的关键帧提取技术

中 。但遗憾的 是这些存 储通常只进 行了简单 的分类甚至不 分类 , 而 且 只能通过顺 序浏览 的方式 进行 访问 。为 了有效 地管 理和 使用 大
型 视 频 数 据 库 , 们 需 要 解 决 视 频 售 息 的 自 动 标 弓j 检 索 问 题 。 我 和
内容 , 所以有 人提出了基 于内容分析的方 法。
据 库 ;. 户运用浏 览 、 图或 范例 等 手段对 索引 数据 库进 行 匹配 c用 草 运算, 检索 出符合 查询要求 的关 键帧 图像 , 最后 系统 提供 的结 果是 与关键 帧相关联 的镜头序 列或在线 播放 和下载相关 视频。
关 键 帧 抽 取 是 实 现 该 方 案 的 关 键 技 术 之 一 。 关 键 帧 是 反 映 一 组 镜 头 中 主 要 信 息 内 容 的 一 帧 或 若 干 帧 图 像 , 以 简 洁 地 表达 镜 头 可 内容 , 用关 键 帧 代 表 镜 头 , 用 类 似 于 文 本 检 索 中 的 关 键 词 。 本 文 作
tn ae iVie ti a) 接 对 图 像 、 频 、 频 内 容 进 行 分 et sdOl doRer v1 直 B e 视 音 析 , 取 特 征 和 语 义 , 用 这 些 内 容 特 征 建 立 索 引 , 进 行 检 索 _j 抽 利 并 2。 其 中 一 种 比 较 可 行 的 方 案 是 基 于 视 频 关 键 帧 的 { 。 它 的 基 本 思 佥索 想 是 _一 :. 用 场 景 转 换 检 测 ( cn h l e tcin cD) 术 3 a运 S eeC a g et ,s l De o 技 将 原 始 视 频 流 ( ie) 割 成 长 短 不 一 的 镜 头 单 元 (ht ; . 用 关 vdo 分 so) b 运 键 帧抽取技 术对每个 镜头单 元提取关键 帧或代表帧( r帧 ) 。 对 这 并 些 r 进 行 特 征 提 取 ( 色 、 理 、 状 等 特 征 ) 建 立 索 引 , 入 数 帧 颜 纹 形 , 存
基于深度学习的视频关键帧提取算法研究

基于深度学习的视频关键帧提取算法研究摘要:随着互联网和数字媒体的快速发展,视频数据的数量和规模不断增长。
视频关键帧提取算法在视频内容分析、视频检索和视频摘要等领域具有重要应用价值。
本文研究了基于深度学习的视频关键帧提取算法,探讨了其原理、方法和实现过程,并对其应用前景进行了展望。
1.引言随着移动互联网和社交媒体的普及,人们对视频数据的需求越来越高。
然而,海量的视频数据使得人们在观看和搜索视频时面临着困难。
视频关键帧提取算法能够从视频序列中自动选择表达视频内容的关键帧,以便于用户快速浏览和搜索视频,提升用户体验。
2.相关工作2.1 传统方法传统的视频关键帧提取算法主要基于图像处理和机器学习技术。
这些方法通常使用手工设计的特征提取器和分类器来进行关键帧的选择,但往往面临着通用性差、效率低和提取效果不佳的问题。
2.2 基于深度学习的方法近年来,深度学习技术在计算机视觉领域取得了显著的成果。
基于深度学习的视频关键帧提取算法通过利用深度神经网络自动学习视频特征表示,能够提高提取效果和适应性。
3.基于深度学习的视频关键帧提取算法3.1 数据预处理在深度学习算法中,数据预处理是一个重要的环节。
对于视频关键帧提取,首先需要将视频转化为图像序列,并进行大小归一化和图像增强等处理。
3.2 特征表示学习通过卷积神经网络(Convolutional Neural Network,CNN)等深度学习模型,提取视频图像序列的特征表示。
深度学习模型能够自动学习到更具有判别性的特征,从而提高关键帧提取的准确性。
3.3 关键帧选择在学习到的特征表示基础上,利用聚类、分类或回归方法进行关键帧的选择。
聚类方法通常将相似的特征聚集到一起,从而选取代表性帧作为关键帧。
分类方法则通过训练一个分类器来判断每一帧是否为关键帧。
回归方法则是通过回归模型预测每一帧的关键帧得分,从而选取得分最高的帧作为关键帧。
4.实验与评估通过实验比较基于深度学习的视频关键帧提取算法与传统方法的效果差异。
视频镜头分割及关键帧提取技术研究

视频镜头分割及关键帧提取技术研究
随着数字媒体技术的不断发展和普及,视频内容的处理和分析变得日益重要。
其中,视频镜头分割和关键帧提取技术是视频内容分析的关键步骤。
本文将对这两种技术进行研究和探讨。
视频镜头分割是指将视频划分为不同的镜头,每个镜头代表了一个连续的时间段,具有相似的内容和视觉特征。
镜头分割的主要目标是找到镜头间的转换点,即镜头边界。
传统的视频镜头分割方法通常基于颜色直方图、运动特征和纹理特征等,但是由于视频内容的复杂性和多样性,传统方法往往存在一定的局限性。
因此,近年来,基于深度学习的方法在视频镜头分割领域取得了显著的进展。
通过使用卷积神经网络(CNN)等深度学习模型,可以从视频中自动学习到更加丰富和抽象的特征表示,从而提高镜头分割的准确性和鲁棒性。
关键帧提取是指从视频中选择一些具有代表性和重要意义的关键帧,以表示整个视频的内容。
关键帧提取的目标是识别出最能够代表视频内容的帧,并且尽量减少冗余信息。
传统的关键帧提取方法通常基于图像质量、颜色直方图和运动特征等,但是这些方法往往无法充分考虑到视频的语义信息。
因此,近年来,基于深度学习的方法也被应用于关键帧提取领域。
通过使用循环神
经网络(RNN)等深度学习模型,可以对视频的时序信息进行建模,从而提取出更加具有代表性和语义信息的关键帧。
总的来说,视频镜头分割和关键帧提取技术在视频内容分析中起着重要的作用。
通过研究和应用深度学习模型,可以有效地提高这两种技术的性能和效果。
未来,随着深度学习算法的不断发展和优化,视频内容分析领域将迎来更加广阔的发展空间,为我们提供更加丰富和便捷的视频内容处理和分析方法。
关键帧的原理及应用

关键帧的原理及应用一、什么是关键帧关键帧(Keyframe)是动画制作中的一个重要概念。
它表示在动画序列中,关键帧是一个具有显著变化或重要动作的帧,该帧被用来定义动画序列中其他间隔帧的外观或状态。
关键帧可以看作是动画中的重要里程碑,决定了目标对象在特定时间点的形态或位置。
通过关键帧的设定,利用插值算法可以计算出相应的中间帧,从而使得目标对象在动画过程中呈现出自然流畅的运动。
二、关键帧的原理关键帧的原理基于时间插值和空间插值。
1. 时间插值在动画序列中,每个关键帧都有一个对应的时间点,而关键帧之间的时间点是通过插值算法计算得出的。
时间插值主要根据关键帧之间的时间差和动画效果的要求,计算出各个中间帧的时间点。
2. 空间插值关键帧除了时间点的设定外,还需要定义目标对象在该时间点的形态或位置。
空间插值即是通过关键帧之间的空间变化,计算出相应的中间帧的形态或位置。
常见的空间插值算法有线性插值、贝塞尔曲线插值等。
线性插值会直接连接两个关键帧之间的形态或位置,而贝塞尔曲线插值则会通过调整控制点的位置来实现更加平滑的过渡效果。
三、关键帧的应用关键帧的应用非常广泛,下面列举了几个常见的应用场景:•动画制作:在动画制作中,关键帧被用来定义目标对象在每个时间点的形态或位置。
通过设定关键帧,并利用插值算法计算出中间帧,可以使动画呈现出流畅的运动效果。
•视频编码:在视频编码中,关键帧用于标记视频序列的关键点。
通常情况下,视频序列中的每个关键帧都会存储完整的图像信息,而其他非关键帧则通过引用关键帧和相应的差异信息来进行压缩。
•物体跟踪:在计算机视觉中,关键帧可以用于物体跟踪任务。
通过在时间序列中设定关键帧,可以减少跟踪过程中的计算量,并提高跟踪的准确性和稳定性。
•动作识别:在人体动作识别中,关键帧可以用来表示人体在特定时间点的关键动作。
通过提取关键帧的特征,可以实现对人体动作的准确识别。
四、总结关键帧作为动画制作和计算机视觉领域中的重要概念,具有很高的实用价值。
什么是视频关键帧?流媒体服务器如何提取视频的关键帧?

什么是视频关键帧?流媒体服务器如何提取视频的关键帧?我上⼀篇⽂章写了关于视频直播点播服务器中调整关键帧间隔的⽅法,同时也发现也是有⼀部分的开发者是有这个需求的。
我记得之前我粗略写过I帧的判断:,但也是粗略的写了⼀下,本篇⽂章我决定就关键帧来做个详细点的说明,最基本的就是——什么是关键帧。
关键帧,就是说这⼀帧是连接两段不同的内容,这⼀帧后⾯的视频内容会有新的变化或过渡;在时间轴上这⼀帧带有⼩⿊点标志;空⽩关键帧,跟关键帧作⽤相同,但是这⼀帧没有内容,在时间轴上,这⼀帧没有⼩⿊点标志;在这⼀帧填充内容后,就变成关键帧了;普通帧是⽤来计量播放时间或过渡时间⽤的,不能⼿动设置普通帧的内容,它是播放过程中由前后关键帧以及过渡类型⾃动填充的,⼿动插⼊或删除普通帧,会改变前后两个关键帧之间的过渡时间。
视频关键帧分为I帧,P帧,B帧,这⾥介绍下区别,也是我搜索得到的,仅供参考。
I帧才是关键帧,P,B算不上关键帧。
I帧是帧内压缩编码得到的,通常是每个GOP组的第⼀帧/基础帧,在⼀组中只有⼀个I帧,I帧所占信息量⼤,解码时仅有I帧即可完整重构图像,所以才叫关键帧。
P帧与B帧是帧间压缩,P帧没有完整图像数据,只有与前⼀帧的差别信息,因此也叫预测帧,B帧则是考虑前后帧的差别(故⽽也叫双向预测帧),因此B帧解码时间最长,压缩⽐最⼤。
那怎么提取视频的关键帧呢?其实提取关键帧⽐提取视频帧快很多倍,下⾯我就基于Android系统来讲⼀下提取视频帧的⽅法:第⼀个参数是传⼊截取时间,只能是us(微秒)第⼆个参数OPTION_CLOSEST在给定的时间,检索最近⼀个帧,这个帧不⼀定是关键帧。
OPTION_CLOSEST_SYNC在给定的时间,检索最近⼀个同步与数据源相关联的的帧(关键帧)。
OPTION_NEXT_SYNC在给定时间之后检索⼀个同步与数据源相关联的关键帧。
OPTION_PREVIOUS_SYNC在给定时间之前检索⼀个同步与数据源相关的关键帧这⾥为了提取我们想要的帧,不使⽤关键帧,所以⽤ OPTION_CLOSESTpublic Bitmap getFrameAtTime()//如果不加参数的话,提取第⼀个关键帧public Bitmap getFrameAtTime() {return getFrameAtTime(-1, OPTION_CLOSEST_SYNC);}/*** 获取视频⽂件截图** @param path 视频⽂件的路径* @return Bitmap 返回获取的Bitmap*/public Bitmap getVideoThumb(String path) {MediaMetadataRetriever media = new MediaMetadataRetriever();media.setDataSource(path);Bitmap frameAtTime = media.getFrameAtTime(1 * 1000 * 1000, MediaMetadataRetriever.OPTION_CLOSEST);if (frameAtTime == null) {frameAtTime = media.getFrameAtTime(3 * 1000 * 1000, MediaMetadataRetriever.OPTION_CLOSEST);}return frameAtTime;}。
关键帧提取方法

关键帧提取方法在视频编辑和动画制作中,关键帧起到了至关重要的作用。
它们是定义动画或视频序列中重要位置的帧,通过关键帧,我们可以轻松地控制运动的轨迹和物体的变化。
本文将详细介绍几种常见的关键帧提取方法,帮助读者更好地掌握这一技术。
一、手动提取关键帧1.观察法:通过观看视频或动画序列,手动挑选出具有重要意义的帧作为关键帧。
这种方法简单直观,但需要耗费较多的时间和精力,适用于关键帧数量较少的情况。
2.时间间隔法:按照固定的时间间隔提取关键帧,如每秒提取一帧。
这种方法适用于关键动作或变化较为均匀的场景,但可能导致关键帧遗漏或冗余。
二、自动提取关键帧1.基于阈值的方法:通过设定像素变化阈值,自动检测出相邻帧之间的差异,当差异超过设定阈值时,将该帧作为关键帧。
这种方法适用于画面变化较为明显的场景,但可能对细微的变化不够敏感。
2.基于光流的方法:利用光流算法计算相邻帧之间的像素运动,根据运动信息提取关键帧。
这种方法可以较好地捕捉到物体的运动轨迹,但对计算资源要求较高。
3.基于图像特征的方法:通过提取图像特征(如SIFT、SURF等)来表示帧之间的相似性,根据相似性提取关键帧。
这种方法具有较强的鲁棒性,适用于多种场景。
4.基于深度学习的方法:利用卷积神经网络(CNN)等深度学习模型,自动提取关键帧。
这种方法具有较高的准确性和效率,但需要大量的训练数据和计算资源。
三、关键帧提取技巧1.结合多种方法:在实际应用中,可以结合多种关键帧提取方法,以提高准确性和效率。
2.优化关键帧数量:根据实际需求,适当调整关键帧数量,避免冗余和遗漏。
3.关键帧插值:在关键帧之间进行插值处理,使动画或视频过渡更加平滑。
4.人机交互:在自动提取关键帧的基础上,进行人工调整和优化,确保关键帧的质量。
总结:关键帧提取是视频编辑和动画制作中的一项重要技术。
通过掌握不同的关键帧提取方法,我们可以更高效地完成创作任务,提高作品的质量。
简述两种视频关键帧提取

简述两种视频关键帧提取作者:左璐来源:《北京电力高等专科学校学报》2010年第07期一、ffprobe的下载安装(一)下载ffprobe到/projects/ffprobe/页面,下载ffprobe源码。
(二)解压源码#tar -xzvf ffprob-53.tar.gz(三)安装一般Linux软件,从源码编译、安装过程为 :#./configure //检查环境,生成makefile#make //编译#make install //安装,一般可能需要root权限二、关键帧的提取根据上面的叙述,我们已经有了提取视频关键帧的思路:利用ffprobe定位关键帧的位置(即pkt_dts),利用ffmpeg将这一关键帧转换为png格式的图片。
有两种做法。
(一)不改变源代码,而是利用shell脚本编程,从ffprobe -show_frames命令输出的信息中提取出pkt_dts的值,然后利用ffmpeg将这一帧转换为图片我所写脚本中的关键语句:./ffprobe -show_frames $1 > ffprobetmp 2>>/dev/nullDTS=`awk 'BEGIN {FS="\n" ; RS="\["} {if($0~/codec_type=video/ && $0~/pkt_flag_key=K/) print substr($13,9)}' ffprobetmp`for singledts in $DTSecho $singledtsffmpeg -i $1 -sameq -ss $singledts -vframes 1 -y -vcodec png ./png/$singledts.pngdone解释:./ffprobe -show_frames $1 > ffprobetmp 2>>/dev/null 使用ffprobe命令显示帧信息,并写入文件ffprboetmp,错误信息不显示DTS=`awk 'BEGIN {FS="\n" ; RS="\["} {if($0~/codec_type=video/ && $0~/pkt_flag_key=K/) print substr($13,9)}' ffprobetmp` 使用awk处理ffprobe输出的信息。
视频摘要生成中的关键帧提取方法研究

视频摘要生成中的关键帧提取方法研究在当今社会,随着信息技术的不断发展,视频成为人们获取信息、娱乐消遣的重要途径之一。
然而,随着视频内容的丰富和多样化,观众们在浏览视频时也希望能够快速了解视频内容,节省时间。
因此,视频摘要生成技术应运而生,它能够通过提取视频中的关键信息,将视频内容压缩成短小精悍的摘要,方便用户快速了解视频内容。
在视频摘要生成中,关键帧提取是一个至关重要的环节,本文将对视频摘要生成中的关键帧提取方法进行探讨。
一、视频摘要生成技术概述视频摘要生成是一种通过自动分析视频内容,提取其中的重要信息,生成视频摘要的技术。
它可以在不影响视频主要内容的情况下,将视频内容进行压缩,节省用户的观看时间。
视频摘要生成技术在各个领域都有广泛应用,比如视频检索、视频推荐、视频监控等。
在视频摘要生成技术中,关键帧提取是一个至关重要的步骤。
关键帧是视频中包含了最重要信息的帧,通过提取关键帧,可以有效地概括视频内容,提高视频摘要的质量。
下面将介绍几种常用的关键帧提取方法。
二、基于颜色直方图的关键帧提取方法基于颜色直方图的关键帧提取方法是一种简单直观的提取方法。
它通过计算视频帧的颜色直方图,然后比较相邻帧之间的颜色直方图的相似度,从而确定哪些帧是关键帧。
这种方法计算简单,速度较快,但对视频内容的理解较为肤浅,容易受到噪声干扰。
三、基于运动信息的关键帧提取方法基于运动信息的关键帧提取方法是一种常用的提取方法。
它通过分析视频帧之间的像素变化,提取视频中发生较大运动的帧作为关键帧。
这种方法对视频内容的理解较为深入,能够较好地把握视频的重要信息。
然而,这种方法计算量较大,速度较慢,对硬件设备要求较高。
四、结合深度学习的关键帧提取方法近年来,随着深度学习技术的不断发展,结合深度学习的关键帧提取方法也逐渐成为研究的热点。
深度学习模型可以通过学习大量视频数据,提取视频中的特征信息,从而准确地识别关键帧。
这种方法对硬件要求较高,但能够取得较好的效果。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
HOMJ"PQ 中描述了 CDEF6G 视音频流和 H-D 包的 映射规则, 一般把形成 H-D 包的信息预先计算出来
写入文件中, 当有客户端请求时, 服务器就 根 据 已 经计算出的 H-D 打包信息很快生成 H-D 包并发送 出去。 这些预先计算的信息一般包括 H-D 包的固定 头信息, 负载位置信息等。头信息中比较重要的有 相对序列号, 相对时间戳及相关位的设置信息。负 载信息一般描述了需要被传送的 数 据 在 文 件 中 的 起始位置和长度。本文提出的预览索引播放方法主 要基于 B(( 服务器。具体流化格式请参考文献IQK。
收稿日期 C !""!1"B1BD 基金项目 C 国家 EFG 基金资助项目 (!""BHHBB"GI!) 中国科学院青年基金资助项目 (!""BF!E"据的位置信息和时间信息 的重要对象,它在文件中的包含关系为: $%%&A)-*;A 它的结构如表 ! 所示。其中 6))6 为样 $2+*A$+(.A6)8/, 本数据解码时间对象, 5))6 为样本数据 合 成 时 间 对 象, 在其中给出可以随机访问 6)66 为同步样本对象, 的样本号。6)62 为样本描述对象, 分为四种类型: 视 频、 音频、 索引和其它 3KLM1I 流, 除索引类型外, 其它三种样本描述中都包含 3KLM1I 中 的 基 本 码 , 从而使 3KI 文件格式更 流描述符 (LRX=,65-+:)%- ) 适合存放 3KLM1I 的各种基本流。R)6V 对象中包含 了一个描述各个样本数据大小的表。R)65 对象描述
$%&’ $%%$ 0%%$ $%$$ $%$/ $%$= $%$0 $%01 $%$? $%/+
()*+’, -)&’, ./,01/2345 %2*,6%16$)*+’, 01*+1$2%213 %2*,6%16$)*+’, %)&’, (730 .8,79 :6;<)*,5 $)*+’, *)+ $)*+’, /,$0<2+%213$ .01/,0 %7+,$9 232%2)’2=)%213 ,%0>5 $)*+’, $2=,$ .;<)*2345 $)*+’,6%160?@389 +)<%2)’ /)%)61;;$,% 23;1<*)%213 0?@38 1;;$,%9 +)<%2)’ /)%)61;;$,% 23;1<*)%213 (?)/1A $730 B,4<)/)%)%213 +<21<2%7
!
!"
本 文 提 出 的 方 法 主 要 针 对 3KLM 1I 标 准 的
NGO 采用实时传输协议 (PQK) 、 实时 3KI 文 件 格 式 NBO, NDO NIO 流协议 (PQRK) 以及会话描述协议 R=K 来实现对
视频流中一组时间间隔不固定帧的连续播放。 其中 采用 3KI 文件 格 式 作 为 流 媒 体 播 放 的 存 储 方 式 ,
!" ’
$%(& # ()& $% 实时流协议 (H-(D) 是应用级协议 IRK, 它控制实 时数据的发送, 定义的应用层接口主要有: (E-LD、 DSTU、 DTL(E、 -ETHBVWX 等,它有许多和 Y--D 协 议 重 合 的 地 方 , 和 Y--D 协 议 最 大 的 不 同 是 H-(D 是一种有状态的协议,而 Y--D 协议是无状 态的, 并且 Y--D 只能由客户端发起请求, 而 H-(D 是 双 向 的 。 通 过 H-(D 协 议 的 (E-LD, 可 以 建 立 H-(D 连接,通过 DSTU 可以启动数据传输,通过
# &’() #" ! *+&,
为了对视频内容实现索引预览和播放, 现在设 计如下的播放器界面, 如图 ! 所示。 主播放窗口中进行正常的视频播放; 在主播放 窗口下面的预览窗口中, 依次按固定帧率播放多幅 索引关键帧, 多幅帧画面顺序向右移动。这样当用 户从预览窗口中发现感兴趣的内容时, 就可以通过 点击感兴趣的关键帧, 然后播放器就从被点击关键 帧所对应的播放时间处开始播放, 从而实现有选择 的观看。
万方数据
!""! 年第 # 期
表! 对象类型 是否必须 是 否 否 是 是 否 否 否 否 说
微电子学与计算机
GR DTL(E 可以暂停数据传输。 H-(D
明
一般只起控制作用, 协议本身并没 有规定采用何种传输机制, H-(D 一般通过 -MD 建 立 连 接 , 用 H-D 和 LBD 进行实际的数据传输。
此值在制作节目时确定, 正常播放的视 <9%&-.2&$. , 频流相邻帧之间的时间戳差为 =7*99.%.8+. ,则预览 索引轨道流的相邻时间戳差由下式确定:
<7*99.%.8+.>=7*99.%.8+.!<9%&-.%&$. =9%&-.2&$.
记录下 ’ 在生成预览索引轨道的样本数据时, 此样本数据对应的在视频流正常播放时的时间戳 信息, 例如, 如果正在生成预览索引轨道的第 ? 帧, 它所对应的时间戳信息为 (?@A ) 这一 ! <7*99.%.8+. , 帧对应于视频流正常播放时的第 A"" 帧, 它的时间 戳信息为 (A""@A ) 可以在索引轨道样 !=7*99.%.8+. , 本数据 2,0 成包信息中记录值 B77C*99.%.8+. , 它由 下式得到: (A""@A ) B77C*99.%.8+.> !=7*99.%.8+. ( ) @ ?@A !<7*99.%.8+. ( 设 置 索 引 轨 道 样 本 数 据 2,0 成 包 信 息 中 ‘D’ 位为 A 。 2,0 头信息 ) 在 实 际 生 成 2,0 包 并 进 行 发 送 时 , 根 据 ‘D’ 在扩展 2,0 头信息中的 >A 而采用扩展 2,0 头, 头中存放 B77C*99.%.8+. 。格式如图 E 所示:
PQK 和 PQRK 作为流媒体播放方式, R=K 用于播放
内容描述。
!" ! #$% #$%& 3KI 文件格式用于存放符合 3KLM1I 规范的
它主要参考了 媒体内容, 由国际标准化组织定义NBO。
, 初始化对象描述符是访问符合 3KLM1 =,65-+:)%-) I 规范的多媒体 内 容 的 入 口 节 点 ; )-*; 对 象 是 存 放 3KLM1I 中 各 种 基 本 码 流 以 及 访 问 信 息 的 重 要 容 器, 对于 3KLM1I 中的各个基本流, 一般都 对 应 存 放于一个 )-*; 中, 另外 )-*; 中也可以存放对另一个 )-*; 中内容的访问信息,这样的 )-*; 就称为索引轨 道 (0+() )-*5; ) , 对应的存放实际媒体内容的 )-*; 就 称为媒体轨道 ($,2+* )-*5; ) 。另外可以出现在文件 层次上的对象还包括 $2*) 、 .-,, 和 6;+:。其中 $2*) 中存放实际的媒体数据, 即 3KLM1I 中的基本码流 数据; .-,, 和 6;+: 存放些和 3KLM1I 内容没有直接 联系的数据或者是已经删除的对象, 一般可忽略。
图!
#" #
-./012
为达到上述播放目的, 主要有以下几个需要解
决的问题: 一是如何在本地组织索引数据 , 二是如 何进行 H-D 流化, 三是如何播放。 首先来看如何在本地组织浏览索引数据。如果
万方数据
1O
微电子学与计算机
!""! 年第 # 期
把选出预览的的关键帧另外作为一个 $%&’ 存放, 虽 然可以实现预览播放, 但是这样却使文件中数据出 现冗余, 既浪费空间, 又使维护困难。因此我们借鉴 在 /01 文件中针 ()*+’,*-. 流化媒体数据的方法, 对需要索引浏览的视频轨道, 建立一个新的索引预 览轨道。它的建立方法和 ()*+’,*-. 中 2,0 索引轨 道的方法基本相同, 即在新的索引预览轨道中记录 索引关键帧的 2,0 成包信息。 索引关键帧的 2,0 流化过程同常规 2,0 流化 过程相比最大的不同是, 常规索引 2,0 头中的时间 戳可以 直 接 从 所 索 引 的 视 频 轨 道 中 或 相 关 轨 道 中 得到, 这主要是因为 2,0 打包时包头中的时间戳和 负载中的帧播放时间有相对固定的对应关系, 但对 于预览索引轨道中 2,0 包头中的时间戳, 由于所索 引的关键帧的随机性, 如果直接从所索引的视频帧 中得到时间戳也将具有随机性, 将会使 2,0 包头中 时间戳用于流同步的作用失效。同时如果不能实现
!" #
$%& !" 在连续媒体的网络 H-D 为一种实时传输协议, 播放中起着重要作用, 并且得到了广泛应用 IJK。 H-D
工作在一对一或一对多的传输情况下, 目的是提供 时间信息和实现流同步。 H-D 通常使用 LBD 来传 送数据。 当应用程序开始一个 H-D 会话时将使用两 个端口: 一个用于 H-D, 一个用于实时传输控制协 议 H-MD (H,)’N%2*,-<)3$+1<%M13%<1’D<1%101’ ) 。 H-MD 和 H-D 一起提供流量控制和拥塞控制服务。 H-D 流 化是指根据 H-D 协议要求对连续媒体数据打包, 在
随着网上视频内容的增多, 用户需要一种基于关键帧的视频内容 ? @A 视频内容一般具有数据量大的特点, 快速预览播放方法, 来更快更准确地找到自己感兴趣的内容。文章提出的方法通过在符合 3KLM1I 标准的 3KI 文件中加入预览索引轨道的方式来组织预览数据, 然后通过对 PQK 头中时间戳的修改来流化预览数据, 最后通 实现了对视频流中一组时间间隔不固定的关键帧的连续索引播放。本方法虽然主 过 R=K 来描述预览索引轨道, 要针对 3KI 文件格式, 但由于采用了 PQK、 R=K 等协议而具有一定的通用性。 关键帧索引,PQK B0CA 3KLM1I,3KI 文件格式,