flv 全称是 Flash Video,它是曾经非常流行的流媒体视频容器格式,由 Adobe 推出,核心作用就是封装音视频编码数据,早年在线直播网页点播短视频平台大量使用 flv 格式,它最大优势是文件体积偏小加载速度快,很适合早期低带宽网络环境下的在线播放,虽然现在 Flash 已经被淘汰,主流网站不再原生支持 flv,但是很多录播素材老直播存档转码项目依然还在使用 flv,很多新手容易混淆一点,flv 本身只是容器,不等于固定视频编码,里面可以封装 h263 h264 vp6 等视频编码,音频一般是 mp3 或者 aac 编码,学习 flv 格式不能只停留在知道后缀是 flv,还要掌握它的文件内部结构封装原理优缺点适用场景,还有现代环境下播放转换的处理方案,下面从基础定义内部结构编码支持优缺点现代使用情况几个板块详细展开。
基础定义与发展背景
flv 是 Flash Video 的缩写,属于流媒体容器格式,设计目标就是适配 Flash 播放器在线流式播放,不需要完整下载整个文件就可以边下边播,在 2005 到 2014 年是互联网视频的主力格式,随着浏览器全面淘汰 Flash 插件,原生网页播放 flv 的场景消失,但是在直播推流 录屏存档 旧视频素材领域,flv 依然有留存,很多开源播放器现在通过 js 或者原生解码方式,依然可以播放 flv 封装的 h264 视频。
文件内部结构
flv 文件整体分为两大块,第一块是 flv 文件头,第二块是连续的 tag 标签数据块,所有音视频元数据全部放在 tag 里面。
| 结构部分 | 作用 |
|---|---|
| Flv Header 文件头 | 记录版本标记是否存在音频是否存在视频,占用 9 个字节 |
| Tag 标签单元 | 每个 tag 前面带 tag 头,标记类型时间戳数据长度,tag 分为三类 |
| Tag 类型 | 视频 tag 音频 tag 脚本数据 tag |
| Script Data Tag | 存放元数据,比如时长分辨率码率帧率这些信息 |
时间戳是 flv 很重要的设计,每个 tag 都携带时间戳,播放的时候依靠时间戳同步音视频,这也是它支持流式传输的核心基础。
支持编码清单
视频编码
- Sorenson H263
- VP6
- AVC H264 后期扩展支持,也是现在留存 flv 最常用编码
- MP3 最经典搭配
- AAC 后期新增支持
- Linear PCM 原始未压缩音频
音频编码
重点:如果 flv 内部是 h264 编码,现在现代播放器基本都能正常解码播放,如果是老式 vp6 或者 h263 编码,新版播放器解码支持会比较差。
优点和缺点对比表
| 优点 | 缺点 |
|---|---|
| 封装简单,流式传输友好 | 依赖 Flash 时代设计,官方已经停止维护 |
| 同码率体积控制较好 | 原生浏览器不再支持 Flash 插件 |
| 音视频同步机制成熟 | 部分新硬件解码器对老式编码兼容差 |
| 直播场景延迟表现优秀 | 不支持字幕轨多音轨等高级特性 |
现代使用与处理方式
1 播放方案 电脑端可以使用 VLC PotPlayer 这类本地播放器直接打开 flv 文件,网页端现在一般用 flvjs 开源库,在不使用 Flash 的情况下解码 flv 容器里面的 h264 视频
2 转码方案 如果需要把老 flv 素材转换成 mp4,一般使用 ffmpeg,把 flv 里面 h264 音轨直接复制流,不需要重新编码,速度很快,如果内部是 vp6 编码就必须重新编码成 h264
3 直播领域 现在很多低延迟直播协议依然沿用 flv 封装,也就是 http flv,虽然不再使用 Flash 插件,但是容器结构还保留,这点很多人不知道,误以为 flv 已经完全淘汰
关键区分知识点
flv 是容器,不是编码,这个是核心考点,就像 mp4 也是容器,容器只负责打包音视频,真正决定画质压缩率的是里面的编码,不要把 flv 等同于 h264。
【常见问题】
问题 1 flv 格式讲解里面 flv 是不是已经彻底不能播放
回答 1 flv 格式讲解里面 flv 并没有彻底不能播放,本地播放器 VLC PotPlayer 依旧支持打开,网页可以借助 flvjs 解码,只是不再依赖 Flash 插件原生播放。
问题 2 flv 格式讲解里面 flv 里面的视频编码只能是 h264 吗
回答 2 flv 格式讲解里面 flv 支持多种视频编码,早期有 h263 vp6,后期才扩展支持 h264,现在留存素材大多是 h264 编码。
问题 3 flv 格式讲解里面 flv 和 mp4 最大差别是什么
回答 3 flv 格式讲解里面 flv 和 mp4 都属于视频容器,flv 设计偏向早期流媒体低延迟,结构简单高级功能少,mp4 支持更多音轨字幕,生态更加现代通用。
【免责申明】
本文属于多媒体格式技术科普,相关技术信息参考公开技术规范,软件编码能力会随版本更新变化,本文不替代专业音视频工程培训。


