Flash Video(简称FLV),是一种网络视频格式,用作流媒体格式,它的出现有效地解决了视频文件导入Flash后,使导出的SWF文件体积庞大,不能在网络上有效使用等缺点。
![]() | |
扩展名 |
.flv |
---|---|
互联网媒体类型 |
video/x-flv |
开发者 | Adobe Systems |
格式类型 | 视频文件格式 |
一般FLV文件包在SWF PLAYER的壳里,并且FLV可以很好的保护原始地址,不易下载,从而起到保护著作权的作用。但还是有些视频格式转换软件将FLV转成一般的视频格式,如中国的软件格式工厂。随着视频网站的丰富,在2008年时这个格式已经非常普及,包括YouTube、NICONICO动画、Google Video、Yahoo! Video、MySpace,以及中国的优酷、酷6、BiliBili等大部分视频分享网站均采用这个格式。
然而,Flash存在着包括大量耗电以及资讯安全等若干问题,随着移动设备与移动应用程序的发展与普及而日益严重,2010年乔布斯曾公开抨击。2011年11月9日,Adobe公司宣布停止开发个人电脑平台以外的Flash Player,而专注于开发非专利标记语言HTML5。
2016年,Youtube已经改采用HTML5技术,Google公司表示flash广告会自动转换为HTML5形式[1]。2015年6月[2],Google宣布公司旗下的Chrome浏览器停止了Flash外挂的自启动。2015年9月1日起,Chrome浏览器默认不支持这些插件[3],并且Amazon公司旗下电子商务和广告平台也停止使用Flash技术[4]。
中国视频网站哔哩哔哩为了减少迁移至HTML5成本而开发了flv.js,可以通过浏览器支持的Media Source Extension播放FLV文件格式中的H.264和AAC编码内容,所以如今Chrome、Edge等浏览器仍然可以收看来自BiliBili的影片。[5]
2020年12月31日,Chrome作为最后一个宣布将不再支持使用Flash的应用程式浏览器,flv影片均无法透过Google Chrome收看,除开BiliBili、优酷等视频网站以外的影片网站均停止使用flv作为影帧式。
F4V
FLV在H.264的视频规格或是AAC的音源规格都达到功能极限,为了克服这个格式上的限制,F4V于是诞生。F4V是基于ISO base media file format制定出来的容器格式(Container format)。至少于Flash Player 12.0 update 3以上版本才能播放。F4V支持的视频类型为H.264,影像类型为GIF、PNG以及JPEG,音频类型为AAC以及MP3。
FLV文件构成
FLV文件=FLV头文件+ tag1+tag内容1 + tag2+tag内容2 + ...+... + tagN+tag内容N
FLV头文件:(9字节)
- 1-3:前3个字节是文件格式标识(FLV 0x46 0x4C 0x56)。
- 4-4:第4个字节是版本(0x01)
- 5-5:第5个字节的前5个bit是保留的必须是0.
- 第5个字节的第6个bit音频类型标志(TypeFlagsAudio)
- 第5个字节的第7个bit也是保留的必须是0
- 第5个字节的第8个bit视频类型标志(TypeFlagsVideo)
- 6-9: 第6-9的四个字节还是保留的。其数据为00000009 .
- 整个文件头的长度,一般是9(3+1+1+4)
tag类型资讯,固定长度为15字节
- 1-4:前一个tag长度(4字节),第一个tag就是0
- 5-5:tag类型(1字节);0x8音频;0x9视频;0x12脚本数据
- 6-8:tag内容大小(3字节)
- 9-11:时间戳(3字节,毫秒)(第1个tag的时候总是为0,如果是脚本tag就是0)
- 12-12:时间戳扩展(1字节)让时间戳变成4字节(以存储更长时间的flv时间资讯),本字节作为时间戳的最高位。
在flv回放过程中,播放顺序是按照tag的时间戳顺序播放。任何加入到文件中时间设置数据格式都将被忽略。
- 13-15:streamID(3字节)总是0
flv文件中的元资讯,是一些描述flv文件各类属性的资讯。这些资讯以AMF格式保存在文件的起始部分。adobe官方的标准flv元资讯项目如下[6]:
- audiochannels
- audiocodecid
- audiodatarate
- audiodevice
- audioinputvolume
- audiosamplerate
- creationdate
- duration (media files only)
- fmleversion (Flash Media Live Encoder version)(media files only)
- framerate
- height
- lastkeyframetimestamp (media files only)
- lasttimestamp (media files only)
- presetname
- videocodecid
- videodatarate
- videodevice
- videokeyframe_frequency
- width
两个常用的操作metadata的工具是flvtool2和FLVMDI,都是把keyframes作为一个默认的元资讯项目。
FLV播放程序
这些播放程序包括:
- Adobe Media Player
- BitComet FLV Player
- ExtraPlayer
- GOM Player
- K-Multimedia Player
- MPlayer
- Perian
- PotPlayer
- Real Player 11
- VLC media player
- FLV Player by Martijn de Visser
- Quick Time 10
- 任何基于FFmpeg的播放程序
- 任何利用DirectShow配合ffdshow的播放程序
- JW FLV Player(授权方式:CC by-nc-sa)
- Moyea Web Player(页面存档备份,存于互联网档案馆)(免费使用。可装上插件进行功能上的扩展,所见即所得图形界面软件。)
- Dreamsocket Media Player(授权方式:CC by-nc-sa)
- FV H.264 FLV Ads Player免费软件
- Sonettic Cinema FLV Player免费与商业版软件均有
- Hitasoft Free RIPE FLVPlayer
- FLV / H.264 Video Player I, II and III by FlashXpert
注释及参考来源
外部链接
Wikiwand - on
Seamless Wikipedia browsing. On steroids.