流媒体-转码与转封装

作者:zhangyunlong 发布时间: 2025-11-09 阅读量:2 评论数:0

转码

转码的核心是 “解码” + “再编码”

  1. 解码:将原始的音视频数据(例如H.264视频流和AAC音频流)进行解压缩,还原成未压缩的、原始的数据(例如YUV/RGB像素数据、PCM音频数据)。这个过程需要消耗计算资源。

  2. 再编码:将上一步得到的原始数据,按照新的参数和标准,再次进行压缩编码,生成一个新的、不同的音视频格式。

为什么要转码?(转码的目的)

  • 改变编码格式/压缩标准

    • 为了节省带宽和存储空间。例如,将旧的、效率低的H.264视频转码成新的、效率高的H.265视频,在同等画质下文件体积可以减小一半。

    • 为了兼容老设备。例如,将较新的AV1编码视频转码成普及度更高的H.264,以确保在旧款手机或电视上能够播放。

  • 改变码率、分辨率、帧率

    • 自适应码率流媒体(如MPEG-DASH、HLS):为了适应不同网络状况的用户,需要将同一个原始视频转码成720p、1080p、2K等不同分辨率、不同码率的多个版本,供用户动态切换。

    • 降低文件体积:将4K高清视频转码成1080p,以方便在手机上传输和播放。

  • 统一内容规格

    • 在一个视频平台上,用户上传的视频千差万别。平台需要将它们转码成统一的格式、码率和分辨率,以方便管理和分发。

转码的代价

  • 耗时:因为涉及复杂的编解码计算,过程比较慢。

  • 损失质量:由于是有损压缩,每次转码都会带来一定的画质或音质损失(代代损失)。

  • 消耗计算资源:需要强大的CPU或专用的硬件(如GPU、FPGA)来加速。

转封装

转封装的核心是 “流复制”

它不改变音视频流本身的编码内容,只是将它们从一种容器格式(也叫“封装格式”)中提取出来,然后放入另一种容器格式中。

容器格式是什么?

你可以把它想象成一个箱子或者快递包裹。它的主要作用是:

  • 打包:将视频流、音频流、字幕、元数据(如标题、作者)等“捆”在一起,形成一个文件。

  • 同步:确保播放时,画面和声音是同步的。

  • 提供索引:方便播放器快速跳转到视频的任意时间点。

常见的容器格式有:.mp4, .mkv, .avi, .mov, .ts, .flv 等。

为什么要转封装?(转封装的目的)

  • 改变文件格式:将一个.mkv格式的视频文件快速转换成.mp4格式,因为某些播放器或编辑软件可能不支持MKV,但支持MP4。

  • 适应流媒体协议:在直播中,经常需要将编码后的流从一种格式(如FLV)转封装成另一种更适合传输的格式(如HLS的TS片段)。

  • 提取或编辑元信息:快速修改文件的元数据,或者从中提取出音轨或字幕。

  • 快速完成任务:因为不涉及编解码,只是重新“打包”,所以速度非常快,几乎是在瞬间完成,且没有任何质量损失

转码和转封装的对比

转码

转封装

核心过程

解码 + 再编码

流复制 + 重新打包

是否改变数据

,音视频编码数据被改变

,音视频编码数据原样复制

速度

,消耗大量计算资源

极快,几乎I/O速度

质量

有损,可能降低质量

无损,质量不变

主要目的

改变编码标准、分辨率、码率;压缩体积;兼容性

改变文件格式;适应流媒体协议;快速无损转换

常见场景

视频网站生成多清晰度版本;压缩视频;老设备兼容

将MKV转为MP4;直播流协议转换;提取音轨

形象的比喻

你即将交付一份产品调研报告, 你整理出了一些ppt文件, 打包为zip发送给客户.

转封装: 客户打不开zip包, 要求你换一种压缩包. 你重新打包为tar.gz发送给客户.

转码: 客户打不开ppt文件, 要求你整理为txt文本. 你将丰富的ppt内容改写简单的文本后打包发给客户.

评论