[AS3]视频播放器处理flv,mp4,f4v元数据的问题
as3 中元数据 metadata 是干什么用的,比如
[Property(value="1")]
public var acceleration:Number = 1;
这里的[Property(value="1")]是干什么用的?
能否自定义 元数据, 自定义元数据有什么用处?
元数据用途:
元数据在代码中的作用就是向编译器提供如何编译程序的信息,专门给编译器用的,说白了是告诉编译器做某些事情, 就Bindable来讲,它的作用是告诉flex编译器,给某些东西建立绑定关系,flex编译器会在编译过程中给AS加事件发生和处理的代码。
自定义元数据
元数据是可以自定义的,在"additional compiler arguments(附加的编译器参数)"中添加 "-keep-as3-metadata = Meta1,Meta2", 注意,使用逗号来分隔不同的元数据标签。
方法1
从mvhd - movie header atom中找到time scale和duration,duration除以time scale即是整部电影的长度。
time scale相当于定义了标准的1秒在这部电影里面的刻度是多少。
例如audio track的time scale = 8000, duration = 560128,所以总长度是70.016,video track的time scale = 600, duration = 42000,所以总长度是70
方法2
首先计算出共有多少个帧,也就是sample(从sample size atoms中得到),然后整部电影的duration = 每个帧的duration之和(从Time-to-sample atoms中得出)
例如audio track共有547个sample,每个sample的长度是1024,则总duration是560128,电影长度是70.016;video track共有1050个sample,每个sample的长度是40,则总duration是42000,电影长度是70
[mp4文件格式]获取mp4文件信息2 - 计算电影图像宽度和高度
从tkhd – track header atom中找到宽度和高度即是。
[mp4文件格式]获取mp4文件信息3 - 计算电影声音采样频率
从tkhd – track header atom中找出audio track的time scale即是声音的采样频率。
[mp4文件格式]获取mp4文件信息6 - 查找sample
热门文章推荐
- [HLS]做自己的m3u8点播系统使用HTTP Live Streaming(HLS技术)
- [FMS]FMS流媒体服务器配置与使用相关的介绍
- [AS3]什么是M3U8,与HTML5的区别是什么
- AS2.0 让flash自适应全屏,并且不自动缩放
- [AS3]as3.0的sound类常用技巧整理
- [AS3]as3与ByteArray详解、ByteArray介绍、ByteArray用法
- 关于RTMP,RTMPT,RTMPS,RTMPE,RTMPTE协议的介绍
- [JS]分享浏览器弹出窗口不被拦截JS示例