IPTV播放器音视频分离模块设计

2016-10-11 07:24袁明磊陈业
关键词:播放器音视频分离器

袁明磊, 陈业

(1. 安徽国防科技职业学院 信息工程系, 安徽 六安, 221600; 2. 六安大江信息技术有限公司, 安徽 六安, 221600; 3. 冠捷显示科技有限公司 厦门创新中心TV部, 福建 厦门, 361000)

IPTV播放器音视频分离模块设计

袁明磊1, 2, 陈业3

(1. 安徽国防科技职业学院 信息工程系, 安徽 六安, 221600; 2. 六安大江信息技术有限公司, 安徽 六安, 221600; 3. 冠捷显示科技有限公司 厦门创新中心TV部, 福建 厦门, 361000)

媒体文件存在多种格式, 为了播放这些文件, 需要对媒体文件进行音视频流的分离。本文分析了多媒体文件解析的过程, 定义了音视频媒体分离过程中用到的关键数据结构, 依据面向对象的思想设计了一种易扩展的音视频分离模块, 实现了音视频播放时的跳转功能。该音视频分离模块符合高内聚低耦合的设计原则,可以在该模块的基础上灵活地进行功能扩充。

交互式网络电视; 音视频分离; 媒体文件头信息

IPTV又称交互式网络电视, 是一种集网络技术、通讯技术、多媒体技术于一体, 利用宽带资源提供多媒体信息, 以电视机、计算机等为显示终端的媒体服务, 是互联网业务和传统电视业务融合后产生的新业务[1–5]。音视频数据的分离是IPTV播放器的关键技术之一。IPTV播放器对媒体文件的播放最终是通过音频处理芯片和视频处理芯片完成的, 能否将某种格式的媒体文件进行音视频数据分离, 直接影响到IPTV播放器对该类型文件的支持[6–10]。目前IPTV播放器都有支持多种媒体格式的要求, 因此,设计一个支持多种媒体格式并且扩展性良好的IPTV播放器是IPTV制作厂商的迫切任务。为了解决该问题, 本文给出了一个扩展性良好的音视频分离模块设计方法。

1 音视频分离模块结构框图

考虑到系统的可扩充性, 本文设计的IPTV播放器的音视频分离模块框图如图1所示。图1中: MediaDemux为不同媒体格式分离器的基类; DemuxListner是MediaDemux的成员变量, 为MediaPlayerServer在MediaDemux中所注册的监听器; MediaDemux在解析媒体数据并进行音视频数据分离时, 会将音频元数据和视频元数据保存在AudioStreamInfo和VideoStreamInfo, 同时, 音频流数据和视频流数据存储至AudioStream和VideoStream中; Stream为AudioStream和VideoStream的基类。

每一种媒体格式都会有一个相应的分离器类(XxxDemux)继承自 MediaDemux, 且每一个分离器类(XxxDemux)都会包含一个解析该媒体格式的解析器类(XxxParser)实例。未来播放器若需支持一种新的媒体格式的话, 只需实现一个继承自MediaDemux的数据源类(X-xxDemux)和与该媒体格式相对应的媒体解析器类(XxxParser)即可。

图1 播放器音视频分离模块框图

2 音视频分离模块的运行流程

音视频分离模块的工作流程如图 2所示, 对模块运行步骤作如下说明。

(1) 初始化某个音视频解析器。

(2) 解析文件头, 确认媒体流数据所属的媒体类型,并提取相关元数据信息。

(3) 判断系统是否支持从步骤(2)中获取到的编码类型。若不支持, 直接退出, 否则执行下一步。

(4) 判断分离器是否已经分离结束。若是, 直接退出,否则执行下一步。

(5) 若存在控制命令, 判断具体的命令类型, 并更新播放状态。若为停止命令, 则退出; 若为播放、快进、快退和跳转命令, 则执行数据解析动作, 之后执行步骤(4);若是暂停命令, 则休眠300 ms, 之后执行步骤(4)。

(6) 若不存在控制命令, 判断当前的播放状态是否为暂停。若当前播放状态为暂停, 则休眠300 ms, 之后执行步骤(4); 否则, 执行数据解析动作, 之后执行步骤(4)。

图2 音视频分离模块的工作流程

3 音视频分离模块关键技术

音视频分离模块主要的任务是接收由 Media Player Server递送来的媒体流数据, 找到与媒体流匹配的音视频分离器进行音频帧和视频帧分离, 并且给每一帧标上正确的时间戳。模块在音视频分离过程中的主要任务是:定义关键类; 对媒体文件的文件头进行解析; 对播放过程中的播放、暂停和跳转动作进行处理。

3.1关键类定义

关键类定义由以下程序完成。

3.2媒体文件头解析

为了实现对不同格式媒体文件的音视频数据分离, 首先需要对不同格式文件的文件头进行解析。解析流程如图3所示, 流程说明如下。

(1) 依据媒体格式的规范定义, 解析由播放器服务端提供的媒体流数据, 并判断文件是否合法及媒体格式是否支持。

(2) 媒体格式若是支持, 解析文件头并获取相关元数据; 否则, 返回媒体格式不支持标志。

(3) 建立关键帧索引列表, 供后续做跳转、快进和快退操作使用。

(4) 判断编码类型是否支持, 系统若是不支持, 返回编码类型不支持标志; 否则, 返回文件头解析成功标志。

图3 文件头解析流程

3.3播放跳转操作

在IPTV播放器播放或者暂停时, 用户经常会执行播放跳转动作, 即将视频的播放时间点进行调整。IPTV播放器对于跳转动作需要做出正确的响应和处理。本播放器音视频分离模块对跳转动作的处理过程如下。

(1) 将用户在界面上的跳转操作所指定的目标位置转化为目标时间。

(2) 暂停数据源获取和分离器分离等操作, 停止解码动作, 清空解码器解码所需的帧缓冲队列, 停止输出模块运作。

(3) 根据文件头解析中所建立的关键帧索引表, 找到目标时间对应的关键帧, 进而得到该帧所在媒体流中的绝对偏移位置。

(4) 将关键帧所处的绝对偏移位置传至数据源获取模块, 获取媒体数据, 然后将新获取到的媒体数据递送给音视频分离模块进行音视频分离。分离成功后, 将得到的音频帧和视频帧送至解码器模块解码。解码后所得的音频帧和视频帧数据会被送至音视频输出模块输出。

(5) 播放器服务端会控制协调相关模块, 将播放状态恢复至跳转前的状态, 并通知应用层模块跳转动作完成。

4 结语

本文依据面向对象的思想, 研究并设计了音视频分离时用到的主要数据结构、媒体类型解析的流程,并提出了音视频分离过程中播放跳转的方案。

[1] 纪越峰. 综合业务接入技术[M]. 北京: 北京邮电大学出版社, 1999: 3–7.

[2] 赵维亮. IPTV嵌入式流媒体播放器的设计与实现[D]. 北京: 北京邮电大学, 2010: 36–38.

[3] 吕伟梅. 移动流媒体播放器的设计与实现[J]. 计算机科学, 2008, 35(9): 621–821.

[4] 王志立, 欧晓鸥, 刘莉. IPTV(网络电视)的技术研究[J]. 电子工程, 2007, 33(12): 44–46.

[5] 车君. IPTV技术及其标准浅析[J]. 贵阳学院学报(自然科学版), 2007, 2(1): 13–19.

[6] 赵进, 叶梧, 冯穗力. 基于RTP协议族的流媒体系统设计和实现[J]. 计算机工程, 2005, 31(2): 195–197.

[7] 金海, 邵艳明, 韩宗芬. 基于实时流协议的流媒体客户端[J]. 计算机工程, 2004, 30(11): 192–194.

[8] 朱英南, 陈晓, 曾学文. 一种嵌入式流媒体播放器VCR控制的设计与实现[J]. 中国有线电视, 2003(19/20): 8–11.

[9] 陶洪久, 柳健, 田金文, 等. RealMedia流媒体技术的分析研究[J]. 武汉理工大学学报(交通科学与工程版), 2002, 26(2): 261–263.

[10] 曹燕萍, 谢剑英. Windows流媒体技术及其应用[J]. 计算机工程, 2002, 28(8): 6–8.

(责任编校: 刘刚毅)

Design of audio and video separation module for IPTV player

Yuan Minglei1, 2, Chen Ye3
(1. Department of Information Engineering, Anhui Vocational College of Defense Technology, Luan 221600, China; 2. Luan Bigriver Information Technology Co Ltd, Luan 221600, China; 3. TPV Display Technology Co Ltd, Xiamen Innovation Center TV Section, Xiamen 361000, China)

There are a variety of media file formats, in order to play these files, it is need to separate the audio and video streaming media files. The multimedia file parsing process is analyzed to define critical data structures used in audio and video media separation process, and according to the idea of object-oriented design, a kind of audio and video separation module is designed, which is easy to be extended.

IPTV; separate audio and video; the media file header information

TP 391

1672–6146(2016)02–0030–04

10.3969/j.issn.1672–6146.2016.02.007

袁明磊, yuanxiaohei@qq.com。

2016–01–23

安徽高校省级自然科学研究重点项目(KJ2016A122)。

猜你喜欢
播放器音视频分离器
差异旋风分离器并联的气相流场研究
Microchip推出首款车载以太网音视频桥接(AVB)全集成解决方案
双轴向粗粉分离器流动特征研究
Walkman诞生40周年 索尼适时发布NW-ZX500和NW-A100系列播放器
旋风分离器切向进料接管焊缝修理与改进建议
3KB深圳市一禾音视频科技有限公司
基于STM32的MP3播放器设计
Moon ACE播放器/放大器一体机
WIFI音视频信号传输的关键问题探究
单双级重力式气液分离器结构优化及分离性能仿真