视频压缩、码率与流媒体传输知识总结

发布于:2025-06-21 ⋅ 阅读:(21) ⋅ 点赞:(0)

🎥 视频压缩、码率与流媒体传输知识总结

本笔记整理了 I/P/B 帧结构、码率计算、文件大小估算、压缩格式对比、推流带宽建议等视频工程常见技术要点。


一、单帧与未压缩视频数据量估算

  • 分辨率:1920×1080(1080p)

  • 色深:8bit × 3通道 = 24bit = 3 字节/像素

  • 每帧大小:

    • 1920 × 1080 × 3 ≈ 5.93 MB
  • 未压缩视频大小估算(30fps × 1.5 小时):

    • 5.93 MB × 30 × 60 × 90 ≈ 960 GB

二、压缩格式与文件大小对比(1.5 小时)

编码格式 压缩方式 平均码率(估算) 文件大小估算 播放建议带宽
未压缩 无压缩 ~1524 Mbps ~960 GB ≥1.6 Gbps
H.264 有损压缩 8–16 Mbps 6–12 GB ≥20 Mbps
H.265 / HEVC 高效压缩 5–10 Mbps 3–7 GB ≥10 Mbps
AV1 极致压缩 2–6 Mbps 2–4 GB ≥6 Mbps


三、RTSP 推流时的 2K@30fps 带宽需求估算

  • H.264:推荐码率 8–16 Mbps → 推荐带宽 12–20 Mbps
  • H.265:推荐码率 5–10 Mbps → 推荐带宽 8–15 Mbps

实际带宽 ≈ 码率 × 1.2–1.5,用于冗余、丢包与网络抖动。


四、码率、大小与时间三角关系

核心公式:

`text

  1. Bitrate (bps) = Size (Bytes) × 8 ÷ Duration (s)
  2. Size (Bytes) = Bitrate × Duration ÷ 8
  3. Duration (s) = Size × 8 ÷ Bitrate
    `

示例:

  • 文件大小:600 MB
  • 播放时长:10 分钟 = 600 秒
  • 平均码率 ≈ (600 × 1024² × 8) ÷ 600 ≈ 8.39 Mbps

五、码率设定的依据

目标码率 ≠ 简单计算,需参考:

  • 分辨率、帧率
  • 编码格式效率(H.264 < H.265 < AV1)
  • 画面复杂度(动作/纹理丰富 → 提高码率)
  • 画质预期目标(高压缩 or 无损)

经验表(1080p@25fps):

画质等级 H.264 推荐码率
高质量 5–8 Mbps
中画质 3–5 Mbps
一般监控 1.5–3 Mbps


六、查看视频码率与类型

使用 MediaInfo:

  • Bit rate:视频平均码率
  • Bit rate mode:
    • Constant → CBR
    • Variable → VBR

使用 ffprobe:

bash ffprobe -v error -selectstreams v -showentries stream=bitrate -of default=noprintwrappers=1 input.mp4


七、I帧 / P帧 / B帧 解码与播放顺序详解

  • I帧:关键帧,独立解码
  • P帧:预测帧,参考前 I/P帧
  • B帧:双向预测帧,需前后参考帧

示例播放顺序:

播放顺序:I - B - B - P - B - B - P 解码顺序:I → P4 → B2/B3 → P7 → B5/B6

解码依赖图:

解码顺序 ┌──────────────┐ ↓ ↓ [I] → [P4] [P7] ↑ ↑ ↑ [B2] [B3] [B5][B6] └────┴──────────┘


八、编码参数简要说明(ffmpeg)

  • -g:GOP 长度(控制 I 帧间隔)
  • -bf:B 帧数量(B 帧越多压缩越好,但延迟上升)
  • -refs:参考帧数量
  • -b:v:目标码率(可配合 CBR/VBR/CRF)

网站公告

今日签到

点亮在社区的每一天
去签到