视频压制(Video Compression)是一种通过编码技术将原始视频数据进行压缩和优化的过程,目的是在不明显降低视频质量的前提下减小视频文件的体积。
从影视角度来看,这里的压制是对后期音、视频的具体处理工序。
大致流程可分为以下几步:
一、音视频分离与解码
(1)音视频分离:
是指将音视频数据从封装格式(如MP4、MKV等)中提取出来的过程。在封装格式中,视频和音频数据通常是交织在一起的,需要我们通过分离操作将它们分开。同时,音视频分离可以基于不同的需求,比如提取视频中的音频作为音频文件、从视频中提取字幕等。
(2)音视频解码:
是指将压缩的音视频数据恢复成原始数据的过程。
在数字视频处理中,音视频数据通常以压缩的方式来减小文件的体积。这样更有利于存储和传输。然而,为了进一步处理这些压缩数据,也需要将其解码成原始格式。
解码过程通常包括以下几个步骤:
a解封装:从封装格式中提取视频、音频和其他元数据。
b视频解码:将压缩的视频编码数据解码为未压缩的图像帧,如YUV或RGB格式。
c音频解码:将压缩的音频编码、数据解码为未压缩的音频样本数据,如PCM格式。
d音视频同步:根据音视频解码结果,将音频和视频数据同步播放,来实现流畅的观看体验。
二、音视频重编码
是一种将音视频数据从一种封装格式转换为另一种封装格式的过程,同时保留原始音视频数据的编码格式和画质。它的目的是为了实现不同的播放需求、适应不同的平台和设备或为了优化文件大小和传输速度。
音视频重编码的具体步骤如下:
a解封装:从原始封装格式中提取视频、音频和其他元数据。
b视频编码:将原始视频编码数据重新封装到新的容器格式中。
c音频编码:将原始音频编码数据重新封装到新的容器格式中。
d音视频同步:根据音视频编码结果,将音频和视频数据同步封装。
e封装:将视频、音频和其他元数据封装到新的容器格式中。
三、音视频重封装
音视频重封装仅涉及封装格式的改变,而不涉及音视频数据的重新压缩。因此,在重封装的过程中不会导致画质的损失,同时也保留了原始音视频数据的编码格式和特点。
在操作音视频重封装时我们要注意以下事项:
(1)选择合适的工具:如幻彩流音器软件:一套可以用来记录、转换数字音频、视频、开源的系统,提供流化音视频的完整解决方案,包含非常先进的音频、视频编解码库。容器/文件(Conainer/File):特定格式的多媒体文件,如mp4、flv、mkv等。同时,幻彩流音器软件能保留封装格式,包括:ffmpeg -i test.mp4 -acodec copy -vn audio.mp4、ffmpeg -i test.mp4 -vcodec copy -an video.mp4。提取视频——保留编码格式:ffmpeg -i test.mp4 -vcodec copy -an test_copy.h264、强制格式:ffmpeg -i test.mp4 -vcodec libx264 -an test.h264。提取音频——保留编码格式:ffmpeg -i test.mp4 -acodec copy -vn test.aac、强制格式:ffmpeg -i test.mp4 -acodec libmp3lame -vn test.mp3。
(2)保留原始编码格式:在重封装过程中,确保原始音视频数据的编码格式得到保留。这样能尽量避免因重新编码导致的画质损失。
(3)避免二次压缩:避免将音视频数据进行二次压缩,导致画质缺失的情况。
(4)注意封装格式的兼容性:在选择新的封装格式时,确保与目标播放器、设备、平台的兼容性。
(5)检查输出结果:在重封装操作完成后,检查输出文件的画质、音质和播放是否正常,以确保重封装过程的成功。
(6)保留元数据:在重封装过程中,尽量保留原始的元数据,以便在新封装格式中继续使用。