音视频基础概念入门_FFmpeg学习笔记

音视频基础概念入门:封装、编码、转码、码率、帧率、分辨率、HLS

适合零基础学习 FFmpeg、视频平台开发、音视频转码前阅读。

核心目标:先搞清楚"视频文件里到底装了什么",再理解 FFmpeg 命令为什么这样写。


1. 一个视频文件不等于只有视频

很多人一开始会以为:

一个 .mp4 文件 = 一段视频画面

其实不完全对。

一个视频文件里面通常可能包含:

内容 说明
视频画面数据 也就是我们看到的画面
音频声音数据 背景音乐、人声、环境音
字幕数据 中文字幕、英文字幕等
封面信息 视频缩略图、封面图
时间信息 每一帧、每一段音频的时间戳
编码信息 视频、音频使用了什么压缩格式
元数据 标题、作者、时长、旋转角度等信息

例如一个 movie.mp4 可能是这样:

text 复制代码
文件:movie.mp4

封装格式:MP4
视频编码:H.264
音频编码:AAC
分辨率:1920x1080
帧率:30fps
视频码率:3000kbps
音频采样率:44100Hz

所以,学习音视频时要先记住一句话:

MP4、AVI、MKV 这些一般说的是"封装格式";H.264、H.265、AAC、MP3 这些一般说的是"编码格式"。


2. 核心概念总览

概念 简单理解 常见例子 重点
封装格式 / 容器 视频文件的"外壳" MP4、AVI、MKV、FLV、MOV、TS、MPG 负责把视频、音频、字幕等装在一起
视频编码 视频画面的压缩方式 H.264、H.265、AV1、VP9 决定压缩效率、兼容性、画质
音频编码 声音数据的压缩方式 AAC、MP3、Opus、PCM、MP2 决定音质、体积、兼容性
转码 把一种编码转换成另一种编码 H.265 转 H.264 通常比较耗 CPU
码率 每秒占用多少数据量 3000kbps、5Mbps 影响清晰度、文件大小、带宽
帧率 每秒播放多少张画面 24fps、30fps、60fps 影响流畅度
分辨率 画面宽高 1920x1080、1280x720 影响清晰度和体积
采样率 每秒采集多少次声音 44100Hz、48000Hz 影响音频细节
GOP 一组视频帧 I 帧到下一个 I 帧之前 影响拖动、秒开、切片
滤镜 对音视频做加工 缩放、裁剪、水印、字幕 FFmpeg 常用能力
流选择 选择输入文件里的某些流 选择中文音轨、去掉字幕 常用 -map 参数

3. 封装格式:视频文件的"容器"

封装可以理解为:

视频文件的"外壳"或者"容器"。

常见封装格式:

text 复制代码
MP4、AVI、MKV、FLV、MOV、TS、MPG

.mp4.avi.mkv 这些文件后缀,通常表示的就是封装格式。

封装格式负责把这些内容组织在一起:

  • 视频流
  • 音频流
  • 字幕流
  • 时间戳
  • 封面
  • 元数据

可以用快递箱来理解:

类比 音视频概念
快递箱 MP4 / MKV / AVI
衣服 视频流
鞋子 音频流
说明书 字幕流
快递单信息 元数据、时间戳

也就是说:

封装格式本身不等于视频画面,也不等于音频声音,它只是负责把各种数据装起来。


4. 常见容器格式总结

容器格式 常见后缀 特点 常见场景
MP4 .mp4 兼容性最好,网页和移动端支持广 普通上传、网页播放、移动端播放
AVI .avi 较老,文件可能偏大,网络播放体验一般 老视频、旧系统
MKV .mkv 支持多音轨、多字幕,功能强 高清电影、多字幕资源
FLV .flv 早期直播和网页视频常见 旧直播平台、旧网页视频
MOV .mov Apple 体系常见 iPhone、Final Cut、QuickTime
TS .ts 适合切片传输,容错能力较好 HLS 直播、点播切片
MPG / MPEG .mpg.mpeg 较老的视频封装格式 VCD、DVD、早期视频

视频平台常见选择

场景 推荐格式
用户上传后保存源文件 保留原始格式,或转成 MP4
普通网页播放 MP4 + H.264 + AAC
移动端播放 MP4 + H.264 + AAC
多清晰度在线播放 HLS,也就是 m3u8 + ts
直播 HLS、FLV、WebRTC 等
高清电影文件 MKV 比较常见

5. 编码格式:数据的压缩方式

编码可以理解为:

把原始音视频数据压缩成某种格式。

原始视频数据非常大。

假设一个视频每秒 30 张图片,每张图片都是高清图,如果完全不压缩,体积会非常恐怖。

所以需要编码压缩。

常见视频编码:

text 复制代码
H.264、H.265、AV1、VP9、MPEG-1、MPEG-2

常见音频编码:

text 复制代码
AAC、MP3、Opus、PCM、MP2

例如一个 MP4 文件里面可能是:

text 复制代码
封装格式:MP4
视频编码:H.264
音频编码:AAC

也就是说:

部分 含义
MP4 箱子 / 容器
H.264 视频压缩方式
AAC 音频压缩方式

6. 常见视频编码总结

视频编码 特点 优点 缺点 常见场景
H.264 / AVC 目前最常见的视频编码 兼容性非常好 压缩效率不如 H.265、AV1 网页视频、短视频、直播、移动端
H.265 / HEVC H.264 的升级版 同等画质下体积更小 兼容性和授权问题更复杂 4K 视频、高清视频、部分移动端
AV1 新一代开源编码 压缩率高,适合未来趋势 编码速度较慢,设备支持仍在普及 长视频平台、在线视频
VP9 Google 推动的视频编码 压缩效率较好,网页支持较多 生态不如 H.264 普遍 YouTube、Web 视频
MPEG-1 很早期的视频编码 老设备支持 压缩效率低,画质一般 VCD、老视频
MPEG-2 早期广播和 DVD 常见 稳定成熟 文件较大 DVD、电视广播、老设备

新手建议

对于视频平台开发和普通网页播放来说,最常见组合是:

text 复制代码
MP4 + H.264 + AAC

原因是:

  • 浏览器支持好
  • 移动端支持好
  • 播放器兼容性好
  • 转码和播放成本可控

7. 常见音频编码总结

音频编码 特点 优点 缺点 常见场景
AAC 视频领域常见音频编码 音质好,兼容性好 相比 MP3 稍复杂 MP4、HLS、短视频、直播
MP3 最经典的音频格式 兼容性极好 压缩效率不如 AAC、Opus 音乐、老播放器
Opus 适合实时语音和网络传输 低延迟,低码率音质好 兼容性不如 MP3、AAC 普遍 语音通话、WebRTC
PCM 未压缩音频 音质原始,处理简单 文件非常大 音频采集、音频处理、中间格式
MP2 较老的音频编码 广播系统中常见 压缩效率一般 广播、老系统

视频平台常见音频选择

场景 常见选择
MP4 文件播放 AAC
HLS 播放 AAC
语音通话 Opus
音频原始处理 PCM
老音频文件 MP3

8. 转码:把一种编码转换成另一种编码

转码就是:

把一种编码格式转换成另一种编码格式。

例如:

text 复制代码
H.265 → H.264
MP3 → AAC

为什么需要转码?

因为不同设备、浏览器、播放器支持的格式不一样。

例如:

用户上传了一个 H.265 视频,但是某些浏览器不支持 H.265,平台就需要把它转成 H.264。

FFmpeg 转码命令示例:

bash 复制代码
ffmpeg -i input.mp4 -c:v libx264 -c:a aac output.mp4

含义:

参数 含义
ffmpeg 调用 FFmpeg 程序
-i input.mp4 输入文件是 input.mp4
-c:v libx264 视频编码转成 H.264
-c:a aac 音频编码转成 AAC
output.mp4 输出文件是 output.mp4

转码一般比较耗 CPU,因为它要经历:

text 复制代码
解码 → 重新编码

所以:

转码不是简单复制文件,而是重新处理音视频数据。


9. 转封装和转码的区别

很多新手容易把"转码"和"改容器"混在一起。

转封装

转封装是:

编码不变,只是换一个容器。

例如:

bash 复制代码
ffmpeg -i input.mkv -c copy output.mp4

含义:

参数 含义
-c copy 音视频编码都不重新编码,直接复制流
output.mp4 换成 MP4 容器

特点:

  • 速度很快
  • CPU 消耗低
  • 画质不变
  • 但要求 MP4 容器支持原来的编码格式

转码

转码是:

重新解码,再重新编码。

例如:

bash 复制代码
ffmpeg -i input.mkv -c:v libx264 -c:a aac output.mp4

特点:

  • 速度慢
  • CPU 消耗高
  • 可能有画质损失
  • 兼容性更可控

对比总结

类型 是否重新编码 速度 CPU 消耗 画质变化 常见参数
转封装 不变 -c copy
转码 可能变化 -c:v-c:a

10. 码率:每秒占用多少数据量

码率可以理解为:

每秒钟视频或音频占用多少数据量。

更准确地说:

码率 = 每秒钟要传输或者存储多少 bit 数据。

注意这里的单位通常是 bit ,不是 Byte


11. bit、Byte、kbps、Mbps、MB/s 单位换算

单位 中文 说明
bit 比特 最小数据单位,用小写 b 表示
Byte 字节 常见文件大小单位,用大写 B 表示
1 Byte 1 字节 等于 8 bit
kbps kilobits per second 每秒多少千比特
Mbps megabits per second 每秒多少兆比特
KB/s kilobytes per second 每秒多少千字节
MB/s megabytes per second 每秒多少兆字节

核心换算关系

换算 结果
1 Byte 8 bit
1 KB 1024 Byte
1 MB 1024 KB
1 Mbps 1000 kbps
8 Mbps 约等于 1 MB/s
1 Mbps 约等于 0.125 MB/s

注意:网络码率常用 Mbps,文件大小常用 MB

小写 b 是 bit,大写 B 是 Byte,二者差 8 倍。

常见换算示例

码率 换算成 MB/s 含义
1000kbps 约 0.125MB/s 每秒约 0.125MB
3000kbps 约 0.375MB/s 每秒约 0.375MB
5Mbps 约 0.625MB/s 每秒约 0.625MB
8Mbps 约 1MB/s 每秒约 1MB
20Mbps 约 2.5MB/s 每秒约 2.5MB

12. 文件大小如何计算

核心公式:

text 复制代码
文件大小 = 码率 × 时长

但是要注意单位换算:

text 复制代码
bit → Byte 需要除以 8

示例 1:视频码率 3000kbps,时长 10 分钟

text 复制代码
3000kbps = 3Mbps
10 分钟 = 600 秒

3Mbps × 600 秒 = 1800Mb
1800Mb ÷ 8 = 225MB

所以大约是:

text 复制代码
225MB

示例 2:音频码率 128kbps,时长 10 分钟

text 复制代码
128kbps × 600 秒 = 76800kb
76800kb ÷ 8 = 9600KB
9600KB ÷ 1024 ≈ 9.4MB

所以大约是:

text 复制代码
9.4MB

常见音频码率大小估算

音频码率 1 分钟大小 10 分钟大小 说明
64kbps 约 0.48MB 约 4.8MB 语音可以接受
128kbps 约 0.96MB 约 9.6MB 普通音乐常见
192kbps 约 1.44MB 约 14.4MB 音质更好
320kbps 约 2.4MB 约 24MB 高码率音乐

常见视频码率大小估算

视频码率 1 分钟大小 10 分钟大小 说明
800kbps 约 6MB 约 60MB 低清视频
1500kbps 约 11.25MB 约 112.5MB 480p / 720p 低码率
3000kbps 约 22.5MB 约 225MB 720p / 1080p 常见
5000kbps 约 37.5MB 约 375MB 1080p 较清晰
8000kbps 约 60MB 约 600MB 高码率 1080p

13. 码率对画质、文件大小、带宽的影响

码率越高,通常:

  • 画质越好
  • 文件越大
  • 占用带宽越高
  • 播放越容易卡
  • 存储成本越高

码率越低,通常:

  • 文件更小
  • 更省带宽
  • 播放更流畅
  • 但画面可能变糊

同样是 1080p 视频:

码率 可能效果
800kbps 很可能比较糊
3000kbps 比较清晰
8000kbps 更清晰,但文件大、带宽高

FFmpeg 设置视频码率:

bash 复制代码
ffmpeg -i input.mp4 -b:v 1000k output.mp4

含义:

text 复制代码
把视频码率设置为大约 1000kbps

FFmpeg 设置音频码率:

bash 复制代码
ffmpeg -i input.mp4 -b:a 128k output.mp4

含义:

text 复制代码
把音频码率设置为大约 128kbps

14. 帧率:一秒播放多少张画面

帧率就是:

一秒钟播放多少张画面。

单位是:

text 复制代码
fps

fps = frames per second,意思是每秒帧数。

常见帧率:

帧率 常见场景
24fps 电影
25fps 电视、部分地区视频制式
30fps 普通视频、短视频
60fps 游戏录屏、运动视频、高流畅视频

可以把视频理解成动画片:

text 复制代码
1 秒播放 30 张图片,就是 30fps
1 秒播放 60 张图片,就是 60fps

帧率越高:

  • 画面越流畅
  • 数据量可能越大
  • 对设备性能要求更高

FFmpeg 设置帧率:

bash 复制代码
ffmpeg -i input.mp4 -r 30 output.mp4

含义:

text 复制代码
输出视频帧率设置为 30fps

15. 分辨率:视频画面的宽和高

分辨率就是:

视频画面的宽和高。

例如:

text 复制代码
1920x1080
1280x720
854x480
3840x2160

1920x1080 的意思是:

text 复制代码
宽 1920 个像素,高 1080 个像素

常见分辨率:

名称 常见分辨率 说明
360p 640x360 低清
480p 854x480 标清
720p 1280x720 高清
1080p 1920x1080 全高清
2K 2560x1440 更高清
4K 3840x2160 超高清

分辨率越高:

  • 画面越清晰
  • 文件可能越大
  • 转码更耗 CPU
  • 播放更吃带宽

FFmpeg 设置分辨率:

bash 复制代码
ffmpeg -i input.mp4 -s 1280x720 output.mp4

更常见的是使用滤镜:

bash 复制代码
ffmpeg -i input.mp4 -vf scale=1280:720 output.mp4

在视频平台里,经常会把一个原视频转成多个清晰度:

text 复制代码
1080p
720p
480p
360p

这样用户网络好就看高清,网络差就看低清。


16. 音频采样率:每秒采集多少次声音

音频采样率可以理解为:

每秒钟采集多少次声音。

常见采样率:

采样率 常见场景
8000Hz 电话语音
16000Hz 语音识别
44100Hz 音乐、普通音频
48000Hz 视频、影视制作

例如:

text 复制代码
44100Hz = 每秒采集 44100 次声音

可以这样理解:

类型 类比
视频 每秒拍很多张图片
音频 每秒采集很多次声音

采样率越高:

  • 声音细节越多
  • 音质可能越好
  • 文件可能越大

FFmpeg 设置音频采样率:

bash 复制代码
ffmpeg -i input.mp4 -ar 44100 output.mp4

设置音频编码、码率、采样率、声道数:

bash 复制代码
ffmpeg -i input.mp4 -c:a aac -b:a 128k -ar 44100 -ac 2 output.mp4

含义:

参数 含义
-c:a aac 音频编码为 AAC
-b:a 128k 音频码率为 128kbps
-ar 44100 音频采样率为 44100Hz
-ac 2 声道数为 2,也就是双声道

17. GOP:一组视频帧

GOP 这个词对新手有点抽象,可以先这样理解:

GOP 是一组视频帧,从一个关键帧开始,到下一个关键帧之前结束。

要理解 GOP,先知道视频帧大概有几种:

帧类型 名称 特点
I 帧 关键帧 可以独立解码,像一张完整图片
P 帧 前向预测帧 参考前面的帧
B 帧 双向预测帧 参考前后帧

最重要的是 I 帧。

I 帧可以独立解码,可以理解成一张完整图片。

P 帧、B 帧不是完整图片,它们依赖别的帧。

例如:

text 复制代码
I B B P B B P B B I

从第一个 I 帧到下一个 I 帧之前,就是一个 GOP。

GOP 为什么重要?

因为视频拖动进度条、切片、秒开都和关键帧有关。

例如你拖到第 10 秒:

  • 如果第 10 秒附近有关键帧,播放器很快能播放
  • 如果关键帧离得很远,播放器可能要往前找关键帧再解码

GOP 大小对比

GOP 设置 优点 缺点
GOP 较大 压缩率高,文件可能更小 拖动可能慢,HLS 切片不方便
GOP 较小 拖动更灵敏,切片更方便 文件可能变大

FFmpeg 设置 GOP:

bash 复制代码
ffmpeg -i input.mp4 -g 60 output.mp4

如果是 30fps,-g 60 大概表示:

text 复制代码
每 60 帧一个关键帧
也就是大约 2 秒一个关键帧

18. 滤镜:对音视频做加工处理

滤镜可以理解为:

对音视频做加工处理。

就像图片软件里的滤镜一样,FFmpeg 的滤镜可以处理视频画面和声音。

常见视频滤镜:

滤镜 作用
scale 缩放
crop 裁剪
pad 补边
overlay 加水印
rotate 旋转
fps 改帧率
subtitles 加字幕

缩放:

bash 复制代码
ffmpeg -i input.mp4 -vf scale=1280:720 output.mp4

含义:

text 复制代码
把视频画面缩放到 1280x720

裁剪:

bash 复制代码
ffmpeg -i input.mp4 -vf crop=1280:720:0:0 output.mp4

含义:

text 复制代码
从画面中裁剪出 1280x720 的区域

加水印:

bash 复制代码
ffmpeg -i input.mp4 -i logo.png -filter_complex overlay=10:10 output.mp4

含义:

text 复制代码
把 logo.png 叠加到视频左上角附近

常见参数:

参数 含义
-vf video filter,视频滤镜
-af audio filter,音频滤镜
-filter_complex 复杂滤镜,适合多输入、多滤镜组合

在视频平台里,滤镜常用于:

  • 生成不同分辨率
  • 加水印
  • 裁剪黑边
  • 旋转视频
  • 加字幕
  • 调整音量

19. 流选择:选择文件里的视频流、音频流、字幕流

流选择就是:

一个媒体文件里面可能有多个视频流、音频流、字幕流,你要选择哪些输出。

一个视频文件不一定只有一路视频和一路音频。

比如一个电影文件可能是:

内容
视频流 0 电影画面
音频流 1 中文音轨
音频流 2 英文音轨
字幕流 3 中文字幕
字幕流 4 英文字幕

如果你直接转码,FFmpeg 可能默认只选一部分。

如果你想明确指定,就要用 -map

示例:

bash 复制代码
ffmpeg -i input.mkv -map 0:v:0 -map 0:a:0 output.mp4

含义:

text 复制代码
从第 0 个输入文件中
选择第 1 路视频流
选择第 1 路音频流
输出到 output.mp4

解释:

写法 含义
0:v:0 第 0 个输入文件的第 0 路视频流
0:a:0 第 0 个输入文件的第 0 路音频流
0:a:1 第 0 个输入文件的第 1 路音频流

如果有多个音轨:

text 复制代码
0:a:0 中文
0:a:1 英文

想选英文音轨:

bash 复制代码
ffmpeg -i input.mkv -map 0:v:0 -map 0:a:1 output.mp4

在视频平台里,流选择用于:

  • 选择指定音轨
  • 去掉字幕
  • 保留字幕
  • 去掉音频
  • 只提取音频
  • 多输入合成

20. HLS、m3u8、ts 是什么

在视频平台里,经常会遇到:

text 复制代码
HLS
m3u8
ts

它们一般一起出现。

HLS

HLS 全称是:

text 复制代码
HTTP Live Streaming

可以理解为:

一种基于 HTTP 的流媒体播放方案。

它的核心思想是:

不直接播放一个完整的大视频文件,而是把视频切成很多小片段,然后边下边播。


m3u8

.m3u8 是播放列表文件。

它本身通常不是视频内容,而是一个文本文件,里面记录了:

  • 有哪些 ts 切片
  • 每个切片多长
  • 播放顺序是什么
  • 是否有多清晰度版本

可以理解为:

m3u8 是目录,告诉播放器应该按什么顺序播放哪些视频切片。


ts

.ts 是真正的视频切片文件。

例如:

text 复制代码
index.m3u8
segment_000.ts
segment_001.ts
segment_002.ts
segment_003.ts

播放器先请求 index.m3u8,再根据里面的内容依次请求 .ts 文件。

HLS 结构示例

text 复制代码
hls_output/
├── index.m3u8
├── segment_000.ts
├── segment_001.ts
├── segment_002.ts
└── segment_003.ts

HLS、m3u8、ts 总结

名称 类型 作用
HLS 流媒体协议 / 播放方案 把视频切片后通过 HTTP 播放
m3u8 播放列表文件 记录 ts 切片地址和播放顺序
ts 视频切片文件 真正存放音视频数据

FFmpeg 生成 HLS 示例:

bash 复制代码
ffmpeg -i input.mp4 \
  -c:v libx264 \
  -c:a aac \
  -hls_time 5 \
  -hls_list_size 0 \
  -f hls output.m3u8

参数解释:

参数 含义
-hls_time 5 每个 ts 切片大约 5 秒
-hls_list_size 0 m3u8 保留所有切片记录
-f hls 输出格式为 HLS
output.m3u8 输出播放列表文件

21. FFmpeg 常用命令总结

需求 命令
查看媒体信息 ffmpeg -i input.mp4
转成 H.264 + AAC ffmpeg -i input.mp4 -c:v libx264 -c:a aac output.mp4
只转封装,不重新编码 ffmpeg -i input.mkv -c copy output.mp4
设置视频码率 ffmpeg -i input.mp4 -b:v 1000k output.mp4
设置音频码率 ffmpeg -i input.mp4 -b:a 128k output.mp4
设置帧率 ffmpeg -i input.mp4 -r 30 output.mp4
设置分辨率 ffmpeg -i input.mp4 -vf scale=1280:720 output.mp4
设置音频采样率 ffmpeg -i input.mp4 -ar 44100 output.mp4
设置 GOP ffmpeg -i input.mp4 -g 60 output.mp4
去掉音频 ffmpeg -i input.mp4 -an output.mp4
只提取音频 ffmpeg -i input.mp4 -vn output.aac
选择指定音轨 ffmpeg -i input.mkv -map 0:v:0 -map 0:a:1 output.mp4
生成 HLS ffmpeg -i input.mp4 -c:v libx264 -c:a aac -hls_time 5 -hls_list_size 0 -f hls output.m3u8

22. 视频平台里的常见处理流程

一个简单的视频平台,用户上传视频后,后端可能会这样处理:

text 复制代码
用户上传视频
    ↓
保存源文件
    ↓
用 FFmpeg 分析文件信息
    ↓
判断编码、分辨率、码率、时长
    ↓
转码成平台统一格式
    ↓
生成多清晰度版本
    ↓
生成 HLS 切片
    ↓
前端播放器加载 m3u8 播放

常见输出格式:

清晰度 分辨率 参考码率
360p 640x360 500kbps ~ 800kbps
480p 854x480 800kbps ~ 1500kbps
720p 1280x720 1500kbps ~ 3000kbps
1080p 1920x1080 3000kbps ~ 6000kbps
4K 3840x2160 12000kbps 以上

具体码率不是固定值,要根据画面复杂度、编码格式、平台成本、目标用户网络情况调整。


23. 最重要的区别总结

容器和编码的区别

对比项 容器 / 封装格式 编码格式
作用 把视频、音频、字幕等装起来 压缩视频或音频数据
常见例子 MP4、MKV、AVI、TS H.264、H.265、AAC、MP3
类比 快递箱 箱子里的物品压缩方式
是否决定画质 不直接决定 很大程度影响
是否影响兼容性 会影响 也会影响

视频参数之间的关系

参数 主要影响
分辨率 清晰度、文件大小、转码压力
帧率 流畅度、文件大小
码率 画质、文件大小、带宽
编码格式 压缩效率、兼容性
GOP 拖动体验、秒开、切片效果
容器格式 播放器兼容性、是否适合流式播放

24. 新手学习路线建议

如果你是为了学习 FFmpeg 或视频平台开发,可以按这个顺序学:

  1. 先理解容器、编码、转码
  2. 再理解码率、帧率、分辨率
  3. 再理解音频采样率、声道、音频码率
  4. 再理解 GOP、关键帧
  5. 再学习 FFmpeg 常用命令
  6. 再学习 HLS、m3u8、ts
  7. 最后结合项目做上传、转码、切片、播放链路

对新手来说,不需要一开始就研究特别深的算法原理。

先能看懂这些命令就够了:

bash 复制代码
ffmpeg -i input.mp4 -c:v libx264 -c:a aac output.mp4
ffmpeg -i input.mp4 -vf scale=1280:720 output.mp4
ffmpeg -i input.mp4 -b:v 1000k -b:a 128k output.mp4
ffmpeg -i input.mp4 -hls_time 5 -hls_list_size 0 -f hls output.m3u8

25. 一句话总结

音视频文件可以这样理解:

text 复制代码
容器格式:负责装东西
视频编码:负责压缩画面
音频编码:负责压缩声音
码率:决定每秒数据量
帧率:决定每秒多少张画面
分辨率:决定画面大小
采样率:决定每秒采集多少次声音
GOP:决定关键帧间隔
HLS:把视频切片后在线播放
FFmpeg:负责分析、转码、切片、处理音视频

最常见的网页视频组合是:

text 复制代码
MP4 + H.264 + AAC

最常见的在线播放切片方案是:

text 复制代码
HLS = m3u8 + ts
相关推荐
red_redemption1 小时前
自由学习记录(196)
学习
踏着七彩祥云的小丑2 小时前
AI学习——记忆系统
人工智能·学习·ai
ACP广源盛139246256732 小时前
GSV2221@ACP# 高带宽低功耗显示转换芯片,赋能 TRAE SOLO 设备高清扩展升级
人工智能·嵌入式硬件·电脑·音视频
xcLeigh2 小时前
Python入门:Python3 operator模块全面学习教程
开发语言·python·学习·教程·python3·operator
Dest1ny-安全2 小时前
2026最新CTF知识库:12大Web漏洞深度文章+1156篇历年大赛WP+50+脚本+Payload速查 +AI/RAG离线在线知识库
java·学习·安全·web安全·servlet
丷丩2 小时前
MapLibre GL JS第30课:添加视频
javascript·音视频·gis·mapbox·maplibre gl js
魔法阵维护师2 小时前
从零开发游戏需要学习的c#模块,第三十二章(Boss 战系统)
学习·游戏·c#
洵有兮2 小时前
Shell 脚本编程学习总结(基础 + 变量 + 条件 + 流程控制 + 函数数组)
linux·学习
吃好睡好便好2 小时前
矩阵的左乘和右乘
人工智能·学习·线性代数·算法·matlab·矩阵