视频编码:移动端游览器视频自动播放
发布于: 2024/06/01
字数: 0
status
type
category
tags
slug
date
summary
icon

前言

最近遇见一个需求,想要把一段十几秒 .mp4 视频当成自动播放的静音背景。
🚫
转为 .gif 的话,文件会过大。
但在某些游览器,比如微信内置游览器 / iOS 的夸克游览器会播放异常。
 
在开头附上最终方法,短短几行即可实现:
结合 jsmpeg 库,将视频文件转为 .ts 格式,再绘制到 canvas
(从而伪装 “骗” 过游览器)
🚫
自己绘制 .mp4canvas 上不行吗?
如果不使用 <video> 元素,则需要自己进行视频解码,这涉及非常复杂的操作。
  • 视频本地转换工具FFmpeg
    • -i in.mp4:输入文件
    • -f mpegts:输出格式为 MPEG-TS
    • -codec:v mpeg1video:视频编码器为 MPEG-1
    • -q:v 2:视频质量因子为 2,数字越小质量越高,范围通常在 1 到 31 之间
    • -codec:a mp2:音频编码器为 MPEG Layer II (MP2)
    • out.ts:输出文件

视频解析

MPEG (Moving Picture Experts Group) ITU (International Telecommunication Union) 这两个组织都在视频标准的开发上起到了重要作用。
它们各自有独立的标准,在某些情况下也会通过 JVT (Joint Video Team),进行合作开发。

视频编码

压缩 大体积的视频数据成更小的文件 的过程

H.264

  • 支持从低分辨率到高清 (HD) 和超高清 (4K) 视频

H.265

  • 比前者提高约 50% 的压缩效率
  • 支持 4K 和 8K 超高清分辨率
  • 需要较先进的设备来处理视频,在旧设备上很难流畅播放

视频封装

打包 压缩后的视频数据以及音频、字幕等 的过程
notion image
notion image
一个 MP4 文件,它的视频为 H.264 / H.265 编码都有可能。

.avi

Audio Video Interleave
  • 较古老的格式,微软于 1992 年发布

.ts

MPEG2-TS (Transport Stream)
  • 使用固定大小的数据包,有利于实时传输中的错误检测和修正
  • 为实时传输设计的,具有强大的容错和多路复用能力,适用于监控、直播等环境

.mp4

MPEG-14 Part 4
  • 使用灵活的数据结构,包含丰富的元数据
  • 现在最常见的容器格式,适用于单个视频流的存储和播放

拓展阅读

2023 - 2026