# Web 音视频(零)概览

Web 音视频目录

WebCodecs API 已经发布一段时间(chrome 94),在浏览器中处理音视频文件或实时视频流已经可行。
计划开一个系列介绍 Web 音视频基础知识,及如何在浏览器中处理视频文件(或视频流)。

作者也是音视频领域的新手,本系列文章也算是个人的学习总结,若发现错误内容可在评论区留言
本系列适合有一定经验的前端开发者入门音视频领域,不会深入介绍音视频相关知识,会尽量提供链接引用

# Web 音视频历史阶段

  1. 荒芜 时代
    Web 不支持流媒体,PC 硬件标配光驱,软件标配本地播放器
    用户:下载电影然后离线观看
  2. Flash 时代
    Flash 插件是浏览器的标配,可以播放 FLV 视频,以及 RTMP 推流,Flash 死了,这两个协议现在还活着,可谓影响深远
    用户:在线观看视频逐渐流行
  3. HTML5 时代
    Video 标签可直接播放 MP4 视频,对与大量已存在的 FLV 视频文件,可在浏览器使用 JS 转封装为 fMP4,使用 MSE API 播放;FLV.js 成为明星项目
    用户:在线观看视频是首选方式,本地播放器被冷落
  4. WebCodecs 时代
    补全 Web 缺失的音视频生产、编辑能力,能力已具备,生态还未成熟
    用户:预计在线剪辑、配合 AI 生成视频,视频会议、直播推流等工具将逐渐网页化

# Web 音视频现状

音视频工作流程
音视频工作流程

编解码是整个链路中最消耗计算资源的,在 WebCodecs 之前 Web 技术栈缺失可控编解码的能力。

其中解封装、解码、播放能力被统一封装进了 HTMLMediaElement、MSE 等 API 中,所以在网页中播放音视频基本没问题;
但因为没有开放底层数据控制或操作能力,像视频帧处理、播放缓冲区控制等功能是难以或无法实现。

而编码能力的缺失,导致 Web 端少有视频生产工具;现有的在线剪辑工具都强依赖服务端能力支持。

原生编解码能力缺失,于是大家寻求各种编解码器的 WASM 版或 ffmpeg.wasm 来满足最基本的诉求;
但仍然受到性能和功能性的制约,极大地限制了应用场景。

WebCodecs 就是来改变这个现状的;
WebCodecs 是 Web 平台音视频处理的基础;
WebCodecs 将会像 HTML5 一样,促进音视频在 Web 平台的应用和发展。

这就是本系列文章的写作动机。

如果之前没接触过 WebCodecs,建议先阅读【译】WebCodecs 说明,能快速了解 WebCodecs API 的动机与目标

# 本系列内容预告

  • 系列概览
  • Web 音视频基础知识
    • WebCodecs 常用 API 介绍
    • 音视频编码、封装,及常见格式
  • 在浏览器中解析视频
    • 解析视频、视频逐帧处理...
    • WebCodecs 解码相关 API 应用
  • 在浏览器中创建视频
    • 从 Canvas、摄像头、麦克风等采集数据创建并导出视频文件
    • WebCodecs 编码相关 API 应用
  • 在浏览器中处理音频
    • 在浏览器中采集、处理、编码、封装音频数据全流程介绍
    • 音频数据基本处理:音量调节、混流、淡入淡出、重采样
  • 在浏览器中合成视频
    • 在视频上添加素材(视频、音频、图片、文字)
    • 合成、拼接多个视频
  • 图像素材处理
    • 图像处理
    • 控制素材层级、给素材添加动画,导出视频
    • 素材动画:位移、旋转、不透明度...
  • 中期回顾
    • 个人回顾
    • WebCodecs 的价值、应用场景、案例分析

点击 WebAV 标签 可以查看本系列目录

本系列的素材、案例来源于 WebAV 项目 (opens new window)
WebAV 尝试提供简单易用的 API 在浏览器中处理音视频数据。

你可以扫码打赏,给作者提供更新动力(压力 :)
支付宝 微信

Star 或 Watch WebAV 项目 (opens new window)来跟进项目进展、体验 DEMO、查阅示例代码;
可通过公众号或 RSS 订阅 (opens new window)本博客站点,以接收本系列文章更新。

# Web 音视频相关 API

# 附录

💗 博主正处于裸辞待业状态,欢迎 商务合作 💗

相关文章

WebAV SDK(Web 视频编辑)V1 发布

前言 WebAV 是基于 WebCodecs 构建的 SDK,用于在 Web 平台上创建/编辑视频文件。 V1 对项目来说是里程碑版本,意味着 API 已经稳定,且功能的稳定性也经过了长时间的考验,可用于生产环境。 我在 20 年加入 B 站,开始接触 Web 音视频相关的知识(Web 播放器), WebCodecs API 在 21 年发布; 我预期 WebCode ...

纯 Web 视频剪辑

前言 WebCodecs API 为 Web 平台提供了音视频编解码能力,使得在 Web 平台(网页、Electron)上实现高效、专业的视频剪辑成品成为可能。 读者可阅读笔者的入门系列文章获取更详细的信息,或直接使用 WebAV 开源项目在浏览器中创建/编辑音视频文件。 背景 & 方案 为了解决主播投稿场景中,需要对直播视频进行简单编辑的诉求, ...

Google IO 分享 WebCodecs、OPFS 文字版

背景 2024 北京 Google I/O 邀请我参加合作者开发者论坛,主题是 "Build powerful Web App"; 笔者近期在公司项目中实践 WebCodecs,对应的开源项目是 WebAV,在 Web 音视频领域算是相对前沿的探索; 本文主要分享基于 WebCodecs、OPFS 实现的视频剪辑产品,探讨这些 API 还有哪些应用场景; W ...

WebCodecs 性能表现及优化思路

笔者开源 WebAV 已经一年半,还写了系列文章帮助初学者入门 Web 音视频。 之前一直隐隐担心在 Web 平台处理音视频与 Native APP 会有明显性能差距,因为 WebCodecs API 毕竟被浏览器代理了一层,且一些数据处理需要 js 配合,不确定有多大的性能损耗。 相信刚接触 WebCodecs 的读者也非常关心它的性能表现如何。 ...

WebCodecs 编码字符串(codec)介绍

笔者的 Web 音视频系列文章 视频播放经常会看到这样的字符串 video/mp4; codecs="avc1.4d002a",WebCodecs 编解码器初始化也需要配置 codec 参数,本文尝试简单介绍编码字符串含义。 视频编码分许多种类,每个种类还分多个版本,不同种类、版本对应的编解码算法、支持的能力(分辨率上限、色深等等)不同 ...

WebCodecs 开启 Web 音视频新篇章

你可以先略过下面的无聊文字,体验一番 WebCodecs 的实力 WebCodecs 是什么 WebCodecs 是一个 Web 规范,21 年 9 月份在 Chrome 94 中实现 WebCodecs 提供访问编解码能力的接口,可精细控制音视频数据 Web 音视频 API 存在什么问题 音视频技术在 Web 平台上的应用非常广泛,已有许多 Web ...

【译】WebCodecs 说明

本文翻译至 WebCodecs Explainer 问题与动机 已有许多 Web API 在内部使用媒体编解码器来支持特定用途,比如: HTMLMediaElement and Media Source Extensions WebAudio (decodeAudioData) MediaRecorder WebRTC 但是还没有一种通用的方式来灵活 ...

Web 音视频(六)图像素材处理

Web 音视频目录 前序章节介绍了如何在浏览器中解析、创建视频,以及给视频添加一些自定义素材(图片、音频、文字...); 本章介绍如何给图像素材加特效、加动画,实现转场、移动水印、图像滤镜美化等功能。 你可以跳过原理介绍,直接查看 WebAV 示例 素材动画 在视频制作中实现动画跟其他场景略有不同,因为视频 ...

Web 音视频(七)中期回顾

Web 音视频目录 个人回顾 本系列更新至今,持续了一个月时间,内容可以总结为音频、视频数据的 解析 - 处理 - 合成,在浏览器中比较粗粒度地实现音视频编辑的主要环节,差不多是把 WebAV 项目的原理讲完了。 讲解的知识非常浅,目标读者是准备在 Web 平台进行音视频开发的新手; 这是我第一次进行高频率技术写作,将一 ...

Web 音视频(五)在浏览器中合成视频

Web 音视频目录 经过前序章节的介绍,读者能大致了解如何在播放器中解析、创建视频; 本章介绍何在浏览器中合成视频,这是视频编辑中最基础的功能。 你可以跳过原理介绍,直接查看 WebAV 合成视频示例 在视频上叠加素材 常见的素材有:视频、音频、图片、文字 [在浏览器中创建视频](/posts/2 ...