解码视频文件

解码视频文件以下代码展示了如何解流、解码并遍历一个视频的所有帧。该视频可以是任何有效的视频格式。mpegCoder.MpegDecoder可以自动识别视频所用的编码器(codec)。

decoding.pyimport mpegCoderd = mpegCoder.MpegDecoder()opened = d.FFmpegSetup('test-video.mp4')if opened: # 如果编码器没有正常载入,停止后续步骤。 gop = True while gop is not None: gop = d.ExtractGOP() # 提取当前的画面组。d.clear() # 关闭输入视频。在每个循环里,都会提取出一个画面组(亦称为图像组,GOP)。画面组是由连续的数帧构成的集合,同时也是视频压缩编码算法的最小单位。在mpegCoder里,图像组被处理成了一个四维数组np.ndarray。其形状(N, H, W, C)分别代表帧数、高度、宽度、以及通道数。每一帧在返还给用户的时候,都已经转移到了RGB (uint8)空间里。如果视频读取到了文件尾,返回的gop则会是None。

解码并缩放​用户可以通过设置MpegDecoder来缩放视频帧。例如,以下的代码将会确保无论原视频尺寸如何,返回的帧都是720x486的尺寸。

...d = mpegCoder.MpegDecoder()d.setParameter(widthDst=720, heightDst=486)opened = d.FFmpegSetup('test-video.mp4')...

Copyright © 2088 王者太极网游活动福利平台 All Rights Reserved.
友情链接