MaixPy 播放视频
2024-08-19
更新历史
日期 | 版本 | 作者 | 更新内容 |
---|---|---|---|
2024-08-19 | 1.0.0 | lxowalle | 初版文档 |
简介
本文档提供播放视频功能的使用方法。
MaixPy
支持播放h264
、mp4
、flv
格式的视频,需要注意目前只支持avc
编码的mp4
和flv
文件。此外由于硬件编码器限制,如果播放视频时发现无法解码,先尝试ffmpeg
重新编码一遍后再试,参考命令:
ffmpeg -i input_video.mp4 -c:v libx264 -x264opts "bframes=0" -c:a aac -strict experimental output_video.mp4
播放MP4
视频
一个播放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文档