需要强调一个极其重要的背景信息:

Flash 技术及其 FLV 格式已于2025年12月31日正式被 Adobe 停止支持,并被所有主流浏览器(Chrome, Firefox, Edge, Safari 等)禁用。 在今天的网页开发中,绝对不应该再使用 Flash FLV 播放器。
下面我将为你详细解释为什么,并回顾它的历史,最后告诉你现代网页视频播放的正确方案。
Flash FLV 播放器的历史与工作原理
在 HTML5 的 <video> 标准普及之前(大约2005-2025年),Flash 是网页上嵌入视频最主流、最可靠的技术。
为什么当时选择 FLV 和 Flash?
- 浏览器原生视频支持差:在早期,不同浏览器对视频编解码器的支持混乱且不统一,使用
<video>标签无法保证所有用户都能播放。 - Flash 的跨平台性:Flash Player 作为浏览器插件,可以在 Windows, macOS, Linux 等不同操作系统上提供一致的视频播放体验。
- 流媒体能力:Flash Media Server (FMS) 或开源的 Red5 服务器可以实现 RTMP (Real-Time Messaging Protocol) 协议,提供低延迟的“伪直播”(直播流)和渐进式下载功能,这在当时是 HTML5 无法比拟的。
- 丰富的交互性:Flash 视频播放器可以轻松地与 ActionScript 结合,实现自定义的播放控制界面、广告插入、数据统计等复杂交互。
工作流程
一个典型的 Flash FLV 视频播放器工作流程如下:

- 服务器端:
- 视频文件:将视频编码成 FLV (Flash Video) 格式。
- 流媒体服务器:部署一个 RTMP 服务器(如 Adobe FMS, Wowza, Red5),视频文件可以存储在服务器上,通过 RTMP 协议分发给客户端。
- 客户端 (网页):
- 嵌入播放器:在 HTML 页面中使用
<object>和<embed>标签(或者后来的 SWFObject 库)嵌入一个 SWF 格式的 Flash 播放器。 - 播放器:这个 SWF 文件就是一个用 Adobe Flash (ActionScript) 编写的小程序,它负责:
- 接收来自网页的参数,比如视频文件的 URL(可能是 FLV 文件的直接链接,也可能是 RTMP 流地址)。
- 通过 NetConnection 和 NetStream 类连接到 RTMP 服务器或加载 FLV 文件。
- 渲染视频画面,并提供播放/暂停、音量、进度条等控制界面。
- 处理用户交互事件。
- 嵌入播放器:在 HTML 页面中使用
曾经流行的 Flash FLV 播放器
- JW Player:当时最流行的商业播放器之一,功能强大,可定制性高。
- Flowplayer:另一个非常流行的开源/商业播放器,以其美观的界面和强大的功能著称。
- OSFLV Player:一个开源的轻量级选择。
- 自定义开发:很多公司会自己用 ActionScript 开发符合其业务需求的播放器。
Flash FLV 播放器的致命缺点
尽管在历史上扮演了重要角色,但 Flash FLV 播放器存在许多固有的问题,这些问题最终导致了它的淘汰。
- 严重的安全漏洞:Flash 是黑客攻击的重灾区,频繁爆出高危漏洞,对用户电脑安全构成巨大威胁,这也是苹果公司创始人乔布斯当年拒绝在 iPhone/iPad 上支持 Flash 的主要原因之一。
- 性能问题:Flash 播放器消耗大量 CPU 和内存资源,尤其是在播放高清视频时,容易导致电脑风扇狂转、浏览器卡顿甚至崩溃。
- 移动端不支持:iOS 设备(iPhone, iPad)从一开始就拒绝支持 Flash,这使得 Flash 视频在移动互联网时代完全失效。
- 插件依赖与兼容性问题:用户需要先安装并启用 Flash Player 插件,这带来了额外的安装步骤和版本兼容性问题。
- SEO 友好度差:搜索引擎无法索引 Flash 文件内部的内容,视频标题、描述等信息很难被有效抓取。
- 封闭与垄断:整个技术生态由 Adobe 主导,开放性和标准化程度低。
现代网页视频播放的正确方案:HTML5 + JavaScript
随着 HTML5 的成熟,现代网页视频播放已经完全抛弃了 Flash,取而代之的是一套基于开放标准的解决方案。
核心技术:HTML5 <video>
这是所有现代视频播放的基础,它提供了一个原生的、无需插件的播放器。
<video width="640" height="360" controls>
<source src="my-video.mp4" type="video/mp4">
<source src="my-video.webm" type="video/webm">
您的浏览器不支持 HTML5 视频,请升级浏览器。
</video>
controls:浏览器会提供一套默认的播放控制界面(播放/暂停、进度条、音量等)。
<source>:为了兼容性,通常会提供多种视频格式(如 MP4, WebM),浏览器会选择它支持的第一种格式进行播放。
视频编码格式
- MP4 (H.264/AAC):兼容性最好,被几乎所有浏览器和设备支持,是目前事实上的标准格式。
- WebM (VP8/VP9/AV1):由 Google 主导的开源格式,通常比同等质量的 H.264 文件体积更小,性能更好,是 MP4 的主要补充和未来方向。
- FLV 已被淘汰:FLV 格式效率低下,且没有硬件加速支持,在现代生态中已无立足之地。
视频容器/协议
- 渐进式下载:最简单的方式,直接将 MP4 文件放在 Web 服务器上,通过 HTTP 协议传输,用户边下载边播放。
- 自适应码率流媒体:这是目前提供最佳观看体验的技术,尤其是直播。
- HLS (HTTP Live Streaming):由 Apple 开发,基于 HTTP,通过
.m3u8 播放列表文件,将视频切分成小的 .ts 文件。iOS 和 Safari 必须使用 HLS,现在也被 Android 和其他平台广泛支持。
- MPEG-DASH (Dynamic Adaptive Streaming over HTTP):国际标准,也是基于 HTTP,通过
.mpd 播放列表文件,提供比 HLS 更好的灵活性和效率,被 YouTube、Netflix 等巨头广泛使用。
现代视频播放器库
虽然 <video> 标签自带控制界面,但为了获得更好的用户体验、跨平台兼容性和丰富的功能(如自定义 UI、广告、弹幕、数据分析等),开发者通常会使用 JavaScript 播放器库,这些库底层仍然使用 <video>
主流的开源播放器库:
(图片来源网络,侵删)
-
Video.js
- 特点:最流行、最成熟的开源播放器之一,社区活跃,插件丰富,支持 HLS 和 DASH。
- 适用场景:几乎所有需要自定义视频播放的场景,是开发者的首选。
-
Plyr
- 特点:轻量级、设计现代、易于使用,UI 美观,对移动端支持非常好。
- 适用场景:注重 UI/UX 和快速集成项目。
-
Clappr
- 特点:由 Globo.com (巴西最大的媒体集团) 开发,专门为大规模视频服务设计,对 HLS 和 DASH 支持良好。
- 适用场景:大型媒体网站、流媒体平台。
-
DPlayer
- 特点:一个为国内 Bilibili 弹幕体验设计的播放器,内置了弹幕功能,对国内视频网站常用协议支持较好。
- 适用场景:需要弹幕功能的视频网站。
总结与对比
特性
Flash FLV 播放器 (已淘汰)
HTML5 视频播放 (现代标准)
核心技术
Adobe Flash (SWF)
HTML5 <video> 标签 + JavaScript
视频格式
FLV, F4V
MP4 (H.264), WebM (VP8/VP9), AV1
流媒体协议
RTMP
HLS, MPEG-DASH (基于 HTTP)
浏览器支持
需要插件,已被禁用
原生支持,无需插件
移动端支持
完全不支持
完全支持
安全性
差,漏洞频发
高,开放标准,持续更新
性能
差,CPU 占用高
好,有硬件加速支持
SEO
差
好,可被搜索引擎索引
开发与维护
生态封闭,已停止更新
生态开放,持续发展
推荐度
0/10 (绝对不要使用)
10/10 (唯一选择)
最终建议
如果你正在开发一个新的网站或应用,请绝对不要使用任何 Flash FLV 播放器技术。
你应该遵循现代 Web 视频的最佳实践:
- 使用 HTML5
<video> 标签作为基础。
- 视频编码:将你的视频源转码为 MP4 (H.264) 和 WebM 两种格式,以获得最佳兼容性。
- 流媒体:如果涉及直播或需要自适应码率,请使用 HLS 或 MPEG-DASH 协议。
- 选择播放器库:根据你的需求,从 Video.js、Plyr 等现代 JavaScript 播放器库中选择一个来构建你的播放器界面和功能。
如果你维护的是一个老旧的网站,上面还有 Flash FLV 视频,唯一的正确做法是将它们逐步迁移到 HTML5 格式,以确保网站在未来仍然可用、安全且对用户友好。
这是所有现代视频播放的基础,它提供了一个原生的、无需插件的播放器。
<video width="640" height="360" controls> <source src="my-video.mp4" type="video/mp4"> <source src="my-video.webm" type="video/webm"> 您的浏览器不支持 HTML5 视频,请升级浏览器。 </video>
controls:浏览器会提供一套默认的播放控制界面(播放/暂停、进度条、音量等)。<source>:为了兼容性,通常会提供多种视频格式(如 MP4, WebM),浏览器会选择它支持的第一种格式进行播放。
视频编码格式
- MP4 (H.264/AAC):兼容性最好,被几乎所有浏览器和设备支持,是目前事实上的标准格式。
- WebM (VP8/VP9/AV1):由 Google 主导的开源格式,通常比同等质量的 H.264 文件体积更小,性能更好,是 MP4 的主要补充和未来方向。
- FLV 已被淘汰:FLV 格式效率低下,且没有硬件加速支持,在现代生态中已无立足之地。
视频容器/协议
- 渐进式下载:最简单的方式,直接将 MP4 文件放在 Web 服务器上,通过 HTTP 协议传输,用户边下载边播放。
- 自适应码率流媒体:这是目前提供最佳观看体验的技术,尤其是直播。
- HLS (HTTP Live Streaming):由 Apple 开发,基于 HTTP,通过
.m3u8播放列表文件,将视频切分成小的.ts文件。iOS 和 Safari 必须使用 HLS,现在也被 Android 和其他平台广泛支持。 - MPEG-DASH (Dynamic Adaptive Streaming over HTTP):国际标准,也是基于 HTTP,通过
.mpd播放列表文件,提供比 HLS 更好的灵活性和效率,被 YouTube、Netflix 等巨头广泛使用。
- HLS (HTTP Live Streaming):由 Apple 开发,基于 HTTP,通过
现代视频播放器库
虽然 主流的开源播放器库: Video.js Plyr Clappr DPlayer 如果你正在开发一个新的网站或应用,请绝对不要使用任何 Flash FLV 播放器技术。 你应该遵循现代 Web 视频的最佳实践: 如果你维护的是一个老旧的网站,上面还有 Flash FLV 视频,唯一的正确做法是将它们逐步迁移到 HTML5 格式,以确保网站在未来仍然可用、安全且对用户友好。<video> 标签自带控制界面,但为了获得更好的用户体验、跨平台兼容性和丰富的功能(如自定义 UI、广告、弹幕、数据分析等),开发者通常会使用 JavaScript 播放器库,这些库底层仍然使用 <video>

总结与对比
特性
Flash FLV 播放器 (已淘汰)
HTML5 视频播放 (现代标准)
核心技术
Adobe Flash (SWF)
HTML5
<video> 标签 + JavaScript
视频格式
FLV, F4V
MP4 (H.264), WebM (VP8/VP9), AV1
流媒体协议
RTMP
HLS, MPEG-DASH (基于 HTTP)
浏览器支持
需要插件,已被禁用
原生支持,无需插件
移动端支持
完全不支持
完全支持
安全性
差,漏洞频发
高,开放标准,持续更新
性能
差,CPU 占用高
好,有硬件加速支持
SEO
差
好,可被搜索引擎索引
开发与维护
生态封闭,已停止更新
生态开放,持续发展
推荐度
0/10 (绝对不要使用)
10/10 (唯一选择)
最终建议
<video> 标签作为基础。
