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文档