为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

视频播放器

2017-08-31 7页 doc 20KB 172阅读

用户头像

is_963767

暂无简介

举报
视频播放器视频播放器 Jpeg2000 视频播放器 功能需求 播放本地硬盘的 J2v 后缀的视频图像。 1. 选择需要播放的文件 2. 在状态栏显示:视频的原始分辨率,分辨率级别,文件的码率、播放帧率、当前的播放 分辨率、当前的码率,CPU的使用率 3. 选择播放方式 4. 将解码后的图像显示、播放 5. 暂停、结束功能。 6. 暂停时提供截图功能 7. DEMO版暂时不提供音频和字幕功能 性能需求 高性能,播放器本身不导致太多的性能下降。 对于2K(2048*1080)的j2v视频,在8核电脑(CPU E54...
视频播放器
视频播放器 Jpeg2000 视频播放器 功能需求 播放本地硬盘的 J2v 后缀的视频图像。 1. 选择需要播放的文件 2. 在状态栏显示:视频的原始分辨率,分辨率级别,文件的码率、播放帧率、当前的播放 分辨率、当前的码率,CPU的使用率 3. 选择播放方式 4. 将解码后的图像显示、播放 5. 暂停、结束功能。 6. 暂停时提供截图功能 7. DEMO版暂时不提供音频和字幕功能 性能需求 高性能,播放器本身不导致太多的性能下降。 对于2K(2048*1080)的j2v视频,在8核电脑(CPU E5462, 2.8G 8 cores, 2G memory, Nvidia GTX260, Windows XP 32 professional)上测试,引擎本身的解码速率能达到21FPS(纯CPU解码)和26fps(GPU加速解码)。 在播放器中,在添加了读文件和回显功能后,性能下降不能超过10%。即在同一电脑上测试,应该达到19fps和23fps以上。 功能需求详述 1. 选择需要播放的文件 a) 弹出文件选择窗口,显示j2v后缀的文件供用户选择 2. 在状态栏显示:视频名称,视频的原始分辨率(OrgRes),当前的播放分辨率(CurRes)、 分辨率级别(DwtLevel),当前分辨率级别(CurDwtLvl),文件的码率(BitsRate)、当前的码 率(CurBitsRate),视频帧率(FPS)播放帧率(CurFPS)、CPU的使用率(CPUU) a) 视频名称:即当前的j2v文件名,不包含.j2v后缀 b) 视频的原始分辨率 分辨率级别 当前的播放分辨率 当前分辨率级别 从这些属性数值中,可以在解码成功后,调用引擎函数 decoder->CheckProperties(handler, properties); 获得。其中当前分辨率级别是在调用引擎前由用户指定: sSize mSize; // 视频原始分辨率 sSize mOutputSize; // 当前的输出分辨率 sSize mThumbOutputSize; // 缩略图大小 OutputFormat mOutputFormat; // 输出格式,在调用的时候指定 sSize mCodeBlockSize; // 码块大小,jpeg2000的属性 sSize mTileSize; // 分块大小,jpeg2000的属性 s2d mTileNum; // 分块数量,jpeg2000的属性 short mComponentNum; // 通道数量,jpeg2000的属性 short mCalculatedComponentNum; // 输出的通道数量,jpeg2000的属性 short mDwtLevel; // 分辨率级别,jpeg2000的属性,在下文“选择播放方式”中需要用到 short mLayer; // 分层数量,jpeg2000的属性 short mBitDepth; // 通道位深,jpeg2000的属性 short mRoiShift; // 感兴趣区域设置,jpeg2000的属性 EncodeFormat mFormat; // 编码格式,jpeg2000的属性 EncodeMathod mMethod; // 编码方式,jpeg2000的属性 Jp2_Progression mProgression; // 渐进方式,jpeg2000的属性 int mHeaderLength; // 码流的头大小,jpeg2000的属性 从这些属性数值中,可以获得 视频的原始分辨率 分辨率级别 当前的播放分辨率 另外当前分辨率级别是在调用引擎前由用户指定 c) 文件的码率:以Mbits/sec为单位,精确到整数。在j2v文件头可以获取视频的码 率: BitRate = video_bitsRate / 1048576 d) 当前码率:以Mbits/sec为单位,精确到小数点后一位。每秒更新一次,计算该秒 内的输入视频码流大小得到: CurBitRate = total_sinput_ize_of_current_second_in_bytes * 8 / 1048576 e) 视频帧率:在j2v的文件头可以获得这个数值,在DCP规范中只有24FPS和48FPS 两个合法值。为整数。 f) 播放帧率(CurFPS):每秒更新一次,显示播放器运行到当前的总帧率,简单讲就是 本视频从开始到当前引擎成功解码并回显的帧数除以播放时长。精确到小数点后一 位 g) CPU使用率:每秒更新一次,简单回显当前的CPU使用率,精确到小数点后一位 h) 显示举例如下: Demo 分辨率:1024*540(2048*1080) DWT级别:4 / 5 码率:230.8//250MBS 帧率:21..2/24FPS CPU:98.4% 3. 选择播放方式 a) 缺省为原始大小的文件 b) 菜单上提供选项,用户可以选择分辨率级别, DCP规范不大于6,所以在菜单上 我们提供选择1-6和全尺寸。将此参数,传给“解码库”,解码库可以提供不同的 分辨率输出。 举例,视频的分辨率级数为5,当用户选择4,则解码到分辨率4级,如果用户选 择6,大于合法的分辨率级别,则忽略该选择,仍输出5 4. 将解码后的图像显示、播放 a) 为效率考虑,本版本只需要显示引擎的输出分辨率,不进行视频的拉伸和变形。 b) 如果播放的视频大小小于窗口,则将视频显示在窗口正中 c) 如果视频尺寸大于窗口,也仅需要显示正中即可 d) 回显格式可以使用24位BMP 5. 暂停、结束功能。 6. 暂停时提供截图功能 a) 暂停时,菜单栏提供选项,可以将当前画面另存为jp2(即直接存储输入的码流) 或BMP(输出的码流,缺少文件头,可以调用引擎工具存储) b) 为简单考虑,文件名可以自动设定为视频名称加上计数。例如Demo001.jp2 7. DEMO版暂时不提供音频和字幕功能 J2v文件格式说明 1. J2v视频文件包括文件头,帧头和帧三个部分: ……………………………………….. 文件头 帧头 第一帧 帧头 第一帧 帧头 第一帧 2. 文件头格式:文件头长度为16524字节,可以使用如下结构读出: struct j2k_video_file_header_s { union { char mDcpHeader[16524]; struct { char mJ; // "J" char mV; // "J" int mHeaderLength; // 头长度 = 16524 int mVideoSize; // 视频长度 char mReservedInfoEnable; // =0 示随后的信息无用,=0xff表示随后的信息有 char mReserved[256]; // 保留信息,通常显示版权,版本等信息 int mFrameCount; // 视频总帧数, 由此和播放帧率可以计算时长 int mFps; // 播放帧率,必须为24或48 float mBitsRate; // 视频码率 int mWidth; // 全尺寸的宽度(像素) int mHeight; // 全尺寸的高度(像素) int mBitdepth; // 每通道的位深 int mChannel; // 通道数 }; }; } typedef struct j2k_video_file_header_s J2kVideoHeader; 该结构定义在decoder/j2kf2v/j2kvideo.h 代码示例为: J2kVideoHeader videoHeader; const int DCP_HEADER_LENGTH = 16524; fread(&videoHeader, 1, DCP_HEADER_LENGTH, fp); 其中 mJ 和mV是j2v文件的标志,必须为字母“J”和“V” 除去以上所指示的内容外,其他字节暂时无用。 3. 帧头格式 每个帧头的长度为20字节: A B C 0 – 16 字节 其中0-16字节保留 第17到19字节记为A,B,C,保存本帧的长度(字节数) 帧长度 = (A << 16) + (B << 8) + c 4. 帧格式 每一帧实际上就是一帧jpeg2000的码流,以0xFF , 0X4F 打头 在截屏的时候,可以将本段内容直接以二进制方式存为jp2格式的图片 解码引擎调用说明 请参见历程jp2viewer或jp2vplayer获得调用的示例
/
本文档为【视频播放器】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
热门搜索

历史搜索

    清空历史搜索