CN102098572B - 基于flash的自定义流媒体嵌入与播放系统及其实现方法 - Google Patents
基于flash的自定义流媒体嵌入与播放系统及其实现方法 Download PDFInfo
- Publication number
- CN102098572B CN102098572B CN 201110027307 CN201110027307A CN102098572B CN 102098572 B CN102098572 B CN 102098572B CN 201110027307 CN201110027307 CN 201110027307 CN 201110027307 A CN201110027307 A CN 201110027307A CN 102098572 B CN102098572 B CN 102098572B
- Authority
- CN
- China
- Prior art keywords
- data
- module
- flash
- subsystem
- video file
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
一种信息处理技术领域的基于FLASH的自定义流媒体嵌入与播放系统及其实现方法,该系统包括:录制子系统和与之相连接的播放子系统,该播放子系统读取来自录制子系统生成的FLASH视频文件并输出。本发明能够将任意编码格式的流媒体数据嵌入到FLASH视频格式文件中,还可以同步播放其中的数据流,并且不需要用户下载额外的解码器插件,而且方便网络服务的提供方管理教学资源,既可以满足点播服务,也可以直接在本地进行播放。
Description
技术领域
本发明涉及的是一种信息处理技术领域的装置及方法,具体是一种基于FLASH的自定义流媒体嵌入与播放系统及其实现方法。
背景技术
目前,FLASH的视频技术已经相当成熟,支持包括FLV,MPEG-4:MP4、M4V、F4V,3GPP等格式的视频文件(目前视频网站所用的基本都是FLV格式)以及多种编解码器(MP3,h.264,SPEEX,On2VP6,Sorenson Spark等)。基于FLASH的视频点播服务被广泛应用,那些主流的视频分享网站,如YouTube,优酷,土豆等,都使用Flash player播放视频,使用体积较小的FLV作为文件封装格式。而且,据统计目前大约有90%的网络用户在浏览器中默认安装了Flash player,可以无需额外安装其他播放器插件就收看收听视频、动画、音乐等各种多媒体资源。
但是,FLASH视频格式文件支持的视频编码格式的种类有限,如果既想要利用Flashplayer插件的便利来播放流媒体数据,又想要在FLASH视频文件中封装自定义编码格式的流媒体数据,目前没有相关的有效做法。因此,如何在FLASH平台中嵌入自定义编码格式的流媒体数据及其播放系统的方法具有一定研究价值,
经过对现有技术文献的检索发现,中国专利申请号为200810247484.4“一种与视频同步的信息发布及播放方法”,记载了一种与FLASH视频同步发布文本或语音信息的播放方法,但是该技术将附加信息存储在服务器端的数据库中,而不是嵌入在FLASH视频格式文件中,因此不利于对视频资源的管理。同时,因为附加信息如果不和视频文件整合在一起,所以也不利于提供本地播放等功能。
发明内容
本发明针对现有技术存在的上述不足,提供一种基于FLASH的自定义流媒体嵌入与播放系统及其实现方法,能够将任意编码格式的流媒体数据嵌入到FLASH视频格式文件中,还可以同步播放其中的数据流,并且不需要用户下载额外的解码器插件,从而方便网络服务的提供方管理教学资源,既可以满足点播服务,也可以直接在本地进行播放。
本发明是通过以下技术方案实现的:
本发明涉及一种基于FLASH的自定义流媒体嵌入与播放系统,包括:录制子系统和与之相连接的播放子系统,该播放子系统读取来自录制子系统生成的FLASH视频文件并输出。
所述的录制子系统包括:编码模块和录制模块,其中:编码模块与数据源相连接以获取待编码数据流并将编码数据输出至录制模块,录制模块将预定义的回调函数名和从录制模块接收到的编码数据封装生成FLASH视频文件并输出至播放子系统。
所述的FLASH视频文件中含有封装了编码数据以及预定义的回调函数名的数据标签,该数据标签与FLASH视频文件中其他标签按时间戳顺序排列。
所述的播放子系统包括:控制模块、解码模块和播放模块,其中:控制模块从收到的FLASH视频文件中获取编码数据并输出至解码模块,解码模块对编码数据进行解码并将解码后的数据流输出至播放模块进行多媒体输出。
本发明涉及上述系统的实现方法,包括以下步骤:
第一步、在录制端,录制模块定义回调函数名,并在每一个录制周期内将回调函数名以字符串类型写入FLASH视频文件的数据标签中,再将编码模块输出的流媒体数据以ByteArray类型写入数据标签中,最后以录制模块的录制时间为时间戳写入到录制的FLASH视频文件中;
第二步、在播放端,将控制模块连接并访问上述FLASH视频文件中的数据流,当获取到DATA TAG时,控制模块将该TAG中的编码数据传输给解码模块,解码模块调用回调函数对编码数据做相应解码,其中回调函数名须与嵌入到DATA TAG中的回调函数名一致,最后,解码模块将解码后的数据传输给播放模块并加以显示。
当本发明的基于FLASH的自定义流媒体嵌入与播放系统及其实现方法可以广泛地应用于流媒体点播服务,视频在录制阶段将自定义编码格式的流数据按照给定帧率写入到FLASH视频文件中,在播放阶段,用户打开安装有Flash player的网页浏览器,载入由ActionScript语言编写的FLASH应用程序,连接到指定的FLASH视频文件,Flash player会自动播放录制的流媒体影音数据。
相比之前其他类似的系统或方法,本发明主要优点在于,首先,可以将任意编码格式的流媒体数据嵌入到FLASH视频格式文件中并在该平台播放,而不是将这些数据存放在数据库中,能对媒体资源集中管理;其次,利用Flash player在网络应用中的高使用率使用现成的FLASH技术播放流媒体数据,省去用户手动安装解码器插件播放流媒体文件的繁琐操作;同时,还可以利用Adobe的流媒体传输技术更好地进行流媒体传输控制,优化服务质量等。
附图说明
图1是本发明结构示意图。
图2是本发明具体实施例的系统结构图。
图3所示为FLVDATA结构示意图。
具体实施方式
下面对本发明的实施例作详细说明,本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
实施例1
如图1所示,本实施例包括:录制子系统和与之相连接的播放子系统,该播放子系统读取来自录制子系统生成的FLASH视频文件并输出。
所述的录制子系统包括:编码模块和录制模块,其中:编码模块与数据源相连接,获取待编码数据流并编码数据输出至录制模块,录制模块将预定义的回调函数名和从录制模块接收到的编码数据封装生成FLASH视频文件并输出至播放子系统。
所述的FLASH视频文件中含有封装了编码数据以及预定义的回调函数名的DATA TAG,该DATA TAG与FLASH视频文件中其他标签按时间戳顺序排列。
所述的播放子系统包括:控制模块、解码模块和播放模块,其中:播放模块从收到的FLASH视频文件中获取编码数据并输出至解码模块,解码模块对编码数据进行解码并将解码后的数据流输出至播放模块进行多媒体输出。
实施例2
如图2所示,为本发明具体应用于教学视频的实施例,该实施例中涉及的数据源为摄像头、麦克风,编码模块分别使用视频编码器、音频编码器以及屏幕编码器实现。
所述的编码模块分别采用的是符合H.264编码规范的开源编码器x264、符合Speex编码规范的编码器libspeex,以及自主开发的屏幕编码器SJSC+,其中屏幕分辨率设置为800*600,关键帧率0.1帧/秒,帧率10帧/秒,最后由FLV录制模块将三种编码格式的数据按FLV的规定格式嵌入到FLV视频中,其中H.264编码的视频数据和Speex编码的音频数据根据ADOBEFLV SPECIFICATION官方文档的规定格式,分别以标准的AVCVIDEOPACKET及AUDIODATA格式封装到VIDEO TAG中;SJSC+编码的自定义屏幕数据以ByteArray类型数据,和预先定义的回调函数名一起,封装进DATATAG中,从而完成自定义数据的嵌入工作。最后在上述三种TAG的TAG HEADER中按录制时间点写入时间戳,随即写入FLV视频文件中,被保存至Adobe流媒体服务器FLASH Media Server(以下简称FMS)中。
图3所示为FLV DATA结构示意图,解释了FLV录制模块如何将回调函数名及ByteArray数据按FLASH能识别的格式嵌入到DATA TAG中。如图,其中Header由11个字节组成,分别是1字节的标签类型TagType,3字节的标签数据大小DataSize,4字节的时间戳TimeStamp及TimeStampExtended,流标识StreamID,及DataSize个字节数据域Data。Data由两个AMFData数据域组成,第一个AMF Data由一个字节的AMF3类型AMF3Type,1字节的字符串类型StringType,2字节的字符串长度StringLength,和若干字节的String组成。第二个AMFData则由一个字节的AMF0类型AMF0Type,1字节的ByteArray类型ByteArrayType,1~4字节的ByteArrayLength,及若干字节的ByteArray值组成。其中TagType标签须标识为0x0F,表示该DATA TAG类型。AMF3Type标签须标识为0x00,StringLength标签此处设为16位无符号整数,如,值为“onScreenVideo”字符串长度,而String标签即回调函数名,为“onScreenVideo”。AMF0Type标签须标识为0x11,ByteArray Type须标识为0x0C,ByteArrayLength标签根据AMF0官方描述文档有无符号的8位到32位不等的整数表示。ByteArray标签即使用实施例中的屏幕编码数据填充。而其余各数据域可根据Adobe官方文档对应填充完成。
本实施例中的播放子系统采用FLASH平台下的SWF文件格式连同一个包含它的HTML脚本一起放在FMS的APACHE前端服务器中,实施例中需在FMS目录下的applications目录中创建VOD应用,并将之前录制好的FLV视频放入该VOD中。学生端用户通过浏览器登录上述HTML网页,其中的Flash player插件执行该HTML中的SWF并点播VOD中FLV视频。
当学生在界面中开始播放视频后,FMS将FLV视频流式地传给学生端,当FMS传输DATATAG数据时,SWF根据嵌在TAG中的回调函数名,将TAG中自定义编码的ByteArray数据作为参数传给对应解码模块中的回调函数“onScreenVideo”,随即使用其中的解码器对其进行解码,并最终以BitMap格式将解码后的每一帧屏幕图像数据显示在Flash player中,从而完成了整个教学视频的点播及自定义流媒体数据的显示过程。
本发明有如下几个创新点,首先,通过步骤一中的录制过程,能将自定义编码的流媒体数据嵌入到FLASH视频格式的文件中,根据Adobe官方的制定,FLASH平台只能支持官方制定的7种视频编码数据及15种音频编码数据,而本发明所创新的方法可以使得FLASH平台播放任意编码的流媒体数据,给FLASH平台的媒体播放带来了很高的扩展性。
第二,从视频文件的码率这一性能指标上来看,通过本发明所创新的在FLASH视频中嵌入自定义编码的流媒体数据,在相同录制参数设置下,录制出来的屏幕编码视频要比当前网络中别的屏幕教学视频要更加清晰,且码率更小,从而使网络视频点播服务更加流畅,即使在网络条件不佳的情况下也能顺畅收看课程内容而不间断。比如,对比美国伯克利大学的网络公开课程和上述实施例中所描述的录制课程,伯克利的屏幕教学视频点播服务传输视频格式为mp4,编码器采用当前最先进的h.264编码器,视频分辨率640*480,帧率7fps,视频码率60kbps,而使用本发明录制的课程视频,采用专用的SJSC+屏幕编码器,视频分辨率800*600,比前者要更清晰,帧率10fps比前者要更连贯,视频码率35kbps比前者更小,显然可见,在采用了本发明以后,使用专门的屏幕编码器可以有效地编码屏幕动态图形,提高视频质量的同时降低视频码率,减少网络传输延迟。
第三,根据Adobe官方文档的制定,FLASH流媒体文件无法同时播放多路视频流,且目前现有的FLASH平台的多路流媒体同步播放技术仅能做到将多路流媒体分开存放于服务器上,而用本发明所创新的方法可以实现FLASH平台上多路视频流的同步播放,同时所有流媒体数据集中在一个FLASH多媒体文件中,保证了多媒体资源的统一性,便于管理与媒体资源整合,可以支持网络传输方式和本地播放方式,比现有的附加数据信息与FLASH视频文件分离的现状在使用上要更高效,从而增加了FLASH应用的范围。
而根据本实施例的效果,屏幕数据的嵌入完整、正确,学生端能正确、接收到屏幕数据,并进行解码和播放,没有延时或异步现象,很好的达到了视频点播的目标。
Claims (3)
1.一种基于FLASH的自定义流媒体嵌入与播放系统,包括:录制子系统和与之相连接的播放子系统,该播放子系统读取来自录制子系统生成的FLASH视频文件并输出,其特征在于:所述的录制子系统包括:编码模块和录制模块,其中:编码模块与数据源相连接以获取待编码数据流并将编码数据输出至录制模块,录制模块将预定义的回调函数名和从录制模块接收到的编码数据封装生成FLASH视频文件并输出至播放子系统;
所述的FLASH视频文件中含有封装了编码数据以及预定义的回调函数名的数据标签,该数据标签与FLASH视频文件中其他标签按时间戳顺序排列。
2.根据权利要求1所述的基于FLASH的自定义流媒体嵌入与播放系统,其特征是,所述的播放子系统包括:控制模块、解码模块和播放模块,其中:控制模块从收到的FLASH视频文件中获取编码数据并输出至解码模块,解码模块对编码数据进行解码并将解码后的数据流输出至播放模块进行多媒体输出。
3.一种根据上述任一权利要求所述系统的实现方法,其特征在于,包括以下步骤:
第一步、在录制端,录制模块定义回调函数名,并在每一个录制周期内将回调函数名以字符串类型写入FLASH视频文件的数据标签中,再将编码模块输出的流媒体数据以ByteArray类型写入数据标签中,最后以录制模块的录制时间为时间戳写入到录制的FLASH视频文件中;
第二步、在播放端,将控制模块连接并访问上述FLASH视频文件中的数据流,当获取到DATA TAG时,控制模块将该TAG中的编码数据传输给解码模块,解码模块调用回调函数对编码数据做相应解码,其中回调函数名须与嵌入到DATA TAG中的回调函数名一致,最后,解码模块将解码后的数据传输给播放模块并加以显示。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110027307 CN102098572B (zh) | 2011-01-26 | 2011-01-26 | 基于flash的自定义流媒体嵌入与播放系统及其实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110027307 CN102098572B (zh) | 2011-01-26 | 2011-01-26 | 基于flash的自定义流媒体嵌入与播放系统及其实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102098572A CN102098572A (zh) | 2011-06-15 |
CN102098572B true CN102098572B (zh) | 2013-02-27 |
Family
ID=44131405
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201110027307 Expired - Fee Related CN102098572B (zh) | 2011-01-26 | 2011-01-26 | 基于flash的自定义流媒体嵌入与播放系统及其实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102098572B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102447965B (zh) * | 2011-08-25 | 2014-04-30 | 深圳市佳信捷技术股份有限公司 | 支持视频插件接入的视频快速平滑显示的方法及装置 |
CN103020297B (zh) * | 2012-12-31 | 2016-05-18 | 北京奇艺世纪科技有限公司 | 兼容多种平台的视频文件编解码方法和系统 |
CN109785687B (zh) * | 2019-01-31 | 2021-11-16 | 北京谦仁科技有限公司 | 一种用于在线视频教学的数据处理方法、装置及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5788504A (en) * | 1995-10-16 | 1998-08-04 | Brookhaven Science Associates Llc | Computerized training management system |
CN101071530A (zh) * | 2006-05-12 | 2007-11-14 | 姜雪亭 | 一种计算机模拟课堂方法 |
CN101458715A (zh) * | 2008-12-31 | 2009-06-17 | 北京大学 | 一种与视频同步的信息发布及播放方法 |
-
2011
- 2011-01-26 CN CN 201110027307 patent/CN102098572B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5788504A (en) * | 1995-10-16 | 1998-08-04 | Brookhaven Science Associates Llc | Computerized training management system |
CN101071530A (zh) * | 2006-05-12 | 2007-11-14 | 姜雪亭 | 一种计算机模拟课堂方法 |
CN101458715A (zh) * | 2008-12-31 | 2009-06-17 | 北京大学 | 一种与视频同步的信息发布及播放方法 |
Non-Patent Citations (3)
Title |
---|
李键 等.基于自定义流媒体格式的远程教学系统设计.《微处理机》.2007,(第2期),第64-65页,图1-2. * |
赵志靖 等.利用flash实现"影音同步"的方法及应用.《教育信息化》.2006,第75-76页,图2. |
赵志靖 等.利用flash实现"影音同步"的方法及应用.《教育信息化》.2006,第75-76页,图2. * |
Also Published As
Publication number | Publication date |
---|---|
CN102098572A (zh) | 2011-06-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101927016B1 (ko) | 멀티미디어 파일 라이브 방송 방법, 시스템 및 서버 | |
JP6681986B2 (ja) | トランスポートのためのコード化された次世代オーディオデータの選択 | |
CN102598688B (zh) | 流式传输经编码视频数据 | |
CN105744382B (zh) | 用于发射经编码视频数据的方法和装置 | |
CN106134146B (zh) | 处理连续的多周期内容 | |
CN103069769B (zh) | 用于经译码视频数据的网络串流传输的特技模式 | |
CN106993239B (zh) | 直播过程中的信息显示方法 | |
US10887645B2 (en) | Processing media data using file tracks for web content | |
CN108513143A (zh) | 提供串流内容的装置及方法 | |
CN107634930B (zh) | 一种媒体数据的获取方法和装置 | |
CN103024603B (zh) | 一种用于解决播放网络视频时短时停顿的装置及方法 | |
CN106878804A (zh) | 经译码视频数据的网络流式传输 | |
CN104081785A (zh) | 来自多个源的多媒体数据的流式传输 | |
CN102625193B (zh) | 一种借助辅助文件实现多媒体文件网络播放的方法 | |
CN103873888A (zh) | 一种媒体文件直播方法及直播源服务器 | |
CN111602406B (zh) | 一种处理媒体数据的方法、装置和计算机可读存储媒体 | |
US10986421B2 (en) | Identification and timing data for media content | |
CN105453582A (zh) | 一种在浏览器内播放媒体流的方法 | |
CN108494792A (zh) | 一种flash播放器播放hls视频流的转换系统及其工作方法 | |
CN102098572B (zh) | 基于flash的自定义流媒体嵌入与播放系统及其实现方法 | |
CN103581741A (zh) | 特效播放设备和方法 | |
CN102036121A (zh) | 基于数字电视浏览器的马赛克视频导航方法 | |
CN103905922A (zh) | 一种基于http协议的流媒体协议封装方法及装置 | |
WO2022253079A1 (zh) | 基于hls流的字幕显示方法及装置 | |
JP2009089350A (ja) | ネットワーク基盤のカスタマイズコンテンツを提供するためのユーザ装置及びその方法並びに著作装置及びその方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130227 Termination date: 20160126 |
|
EXPY | Termination of patent right or utility model |