这篇文章上次修改于 2189 天前,可能其部分内容已经发生变化,如有疑问可询问作者。
在树莓派上面实现视频播放是方便的,不用去读取内存卡什么的操作,Python已经帮你弄好了,毕竟是在Linux上面嘛。Adafruit_Python_SSD1306这个库里面有image.py示例写明如何在屏幕加载图片
使用Pyav加载视频,提取视频帧打印到屏幕中。我制作的视频每秒24帧,1/24=0.041s,即每帧占用0.041秒,最后测试下来在0.04秒左右最合适(视频播完声音也差不多结束)
for frame in clip.decode(video=0):
starttime = time.time() #每帧开始时间
print('{} ------'.format(frame.index))
imgs = frame.to_image() #提取视频帧
# img = imgs.resize((disp.width, disp.height), Image.ANTIALIAS).convert('1') # 将图片分辨率调整为屏幕大小,色彩1bit
img = imgs.convert('1') #如果视频分辨率匹配屏幕使用此项,色彩1bit
disp.image(img)
disp.display()
endtime = time.time() #屏幕加载所用时间
times = endtime - starttime
timec = round(times,3)
print(timec),
if(timec < 0.040): #避免播放过快
print(0.040-timec)
time.sleep(0.040-timec)
endtimes = time.time() #该帧所用时间
print(endtimes - starttime)
屏幕硬件接口是可以修改的,有hardware和software之分,software接口可以自定义,代价是要更慢一些,具体可以看一下程序开头的注释
查看硬件接口图可以用这个命令
gpio readall
后期添加了requirements.txt文件,方便安装对应的依赖
pip install -r requirements.txt
项目仓库:
https://github.com/Jackadminx/Badapple-nokia5110_Raspi
https://github.com/Jackadminx/SSD1306_RaspberryPi
没有评论