02-Media-10-video_decoder.py 对H.264或H.265格式视频解码并在液晶屏或外接HDMI显示屏上进行显示的示例程序
video_decoder.py 对保存在TF卡中的视频编码H.264或H.265格式视频解码并在液晶屏或外接HDMI显示屏上进行显示的示例程序,此篇为前一篇文章《02-Media-9-video_encoder.py 使用视频编码器(VENC)来捕获并编码视频,保存在TF卡中的示例程序》姊妹篇。
程序步骤详解:
-
导入必要的模块:
-
media.media:媒体处理的核心模块,提供基本的媒体处理功能。
-
mpp.payload_struct:可能包含一些负载结构定义。
-
media.vdecoder:视频解码器模块。
-
media.display:显示模块,用于将解码后的图像显示到屏幕。
-
time, os:系统模块。
-
-
定义常量STREAM_SIZE = 40960,表示每次从文件中读取的流数据大小。
-
定义vdec_test函数,参数为文件路径和视频的宽高(默认1280x720)。
-
函数内部:
a. 设置解码通道号(vdec_chn)为VENC_CHN_ID_0。
b. 将宽度对齐到16(视频编解码常见要求)。
c. 设置显示类型(使用ST7701液晶LCD屏)。
d. 根据文件后缀判断是H.264还是H.265。
e. 实例化视频解码器(vdecoder.Decoder),并传入文件类型(H.264或H.265)。
f. 初始化显示(Display.init),根据不同的显示类型设置参数。如果是虚拟显示(VIRT),则设置宽高和fps;否则(如ST7701或LT9611)设置to_ide=True(使用IDE显示)。
g. 初始化媒体管理的VB(Video Buffer)池(