title | update | |||||||||
---|---|---|---|---|---|---|---|---|---|---|
MaixPy 播放视频 |
|
本文档提供播放视频功能的使用方法。
MaixPy
支持播放h264
、mp4
、flv
格式的视频,需要注意目前只支持avc
编码的mp4
和flv
文件
一个播放mp4
视频的示例,视频文件路径为/root/output.mp4
from maix import video, display, app
disp = display.Display()
d = video.Decoder('/root/output.mp4')
print(f'resolution: {d.width()}x{d.height()} bitrate: {d.bitrate()} fps: {d.fps()}')
d.seek(0)
while not app.need_exit():
ctx = d.decode_video()
if not ctx:
d.seek(0)
continue
img = ctx.image()
disp.show(img)
print(f'need wait : {ctx.duration_us()} us')
步骤:
-
导入模块并初始化摄像头
from maix import video, display, app disp = display.Display()
disp = display.Display()
用来初始化显示屏,用于显示解码的图像
-
初始化
Decoder
模块d = video.Decoder('/root/output.mp4')
d = video.Decoder('/root/output.mp4')
用来初始化解码器,并设置需要播放的视频文件路径。如果你需要播放flv
文件,则可以填写flv
为后缀的文件路径,例如{your_file_path}.flv
,如果你需要播放h264
文件,则可以填写h264
为后缀的文件路径,例如{your_file_path}.h264
-
设置解码的位置
d.seek(0)
- 可以用来设置播放视频的位置,单位是秒
-
获取解码后的图像
ctx = d.decode_video() img = ctx.image()
- 每次调用都会返回一帧图像的上下文
ctx
,通过ctx.image()
获取img
。目前解码后只能支持输出NV21
格式的图像
- 每次调用都会返回一帧图像的上下文
-
显示解码后的图像
disp.show(img)
- 显示图像时使用
ctx.duration_us()
可以获取每帧图像的时长,单位是微秒
- 显示图像时使用
-
完成,更多
Decoder
的用法请看API文档