FLV是流媒体格式的一种
FLV是一个二进制文件,由文件头(FLV header)和很多tag组成。
tag又可以分成三类:audio、video、script,分别代表音频流,视频流,脚本流(关键字或者文件信息之类)
FLV文件 = FLV头文件 + tag1 + tag内容1 + tag2 + tag内容2 + ... + ... + tagN + tag内容N
FLV包括文件头(FileHeader)和文件体(File Body)两部分:
Tag为每一个内容,目前包括音频、视频、脚本。
previousTagSize为前一个Tag的长度。
Header下面四个字节的PreviousTagSize,因为前一个没有Tag,所以值填写0
FLV格式使用
文章开头我们有提到 flv可以用于直播也可以用于点播的封装格式。之前的H264编码有讲到I帧(关键帧),P帧,B帧。关键帧可以独立解码出一张图片并且解码P,B也是需要I的。所以在点播,直播/点播的时候用户是从任意时间看的,而不是从文件头开始。这样当用户定位到某个时间的时候就需要寻找最近的I帧,从这里开始解码播放。所以我们在实际应用中,特别是现在直播的应用中,我们往往需要向FLV格式中写入关键帧索引,并将这些索引文件写在Metadata 中。
1. 使用FFmpeg生成带关键索引信息的FLV
2.使用ffprobe -v trace -i U1.flv 查看信息:
flv文件怎么打开
播放FLV的两种方法:
1、嵌入式播放:
这种方法比较简单,在文件选项下点击导入,然后选择你所要的文件即可。会感觉到,导入的速度很快。
2、流式播放:
a) 当然,首先要安装Flashcom服务器。在安装完成后,会产生一个叫做Flash Communication Server MX的目录。接下来,要建立自己应用文件夹,在这个目录下面:C:\Program Files\Macromedia\Flash Communication Server MX\flashcom\applications。比如:目录叫做elearning。下面这步很关键,把作好的FLV文件考入这个目录下,C:\Program Files\Macromedia\Flash Communication Server MX\flashcom\applications\elearning\streams\_definst_ 。这样,就完成了第一步。
b) 接下来,开始Flash文件的编码和制作。按下F11,打开库面板,在右上脚的菜单上,选择New video。将这个对象拖到舞台上。取一个实例名称“MyVideo”。在第一帧上,添加下面的代码。
#include "NetDebug.as"
stop();
nc=new NetConnection();
nc.connect("rtmp:/elearning");
NewStream=new NetStream(nc);
MyVideo.attachVideo(NewStream);
NewStream.play("FLV文件");
好了!这样就可以流式播放视频文件啦!
Copyright (C) 1999-20120 www.ahcar.com, All Rights Reserved
版权所有 环球快报网 | 豫ICP备17019456号-52联系我们:52 78 229 @qq.com