使用树莓派5和微雪墨水屏制作超慢速电影播放器
树莓派墨水屏超慢电影播放器
·
一、测试连接
https://www.waveshare.net/w/upload/7/71/E-Paper_code.zip
解压后cd到examples目录
cd /e_paper/RaspberryPi_JetsonNano/python/examples
将40pin引脚插好或使用杜邦线连接好8条线

python3 epd_3in52_test.py#例如3.52英寸的墨水屏
若屏幕能正常显示则说明连接无误
二、配置环境
首先建立一个虚拟环境否则ffmpeg库可能无法正常下载
python3 -m venv --system-site-packages .slowmovie# .为隐藏的
source .slowmovie/bin/activate#启动虚拟环境
pip3 install ffmpeg-python
pip3 install pillow
#请自行安装所需的库
pip list#查看
三、程序
使用不同的屏幕请注意在不同的例程中进行修改,这里是3.52寸,不同屏幕在刷新时,代码略有不同
ffmpeg.input('视频的路径 格式/x/x/x.mp4',ss=frame_number/30).output('存储截取出来帧的地方/frame.bmp', vframes=1, s=f'{360}*{240}')分辨率修改为与对应屏幕相同这里是360*240
#!/usr/bin/python
# -*- coding:utf-8 -*-
import sys
import os
picdir = os.path.join(os.path.dirname(os.path.dirname(os.path.realpath(__file__))), 'pic')
libdir = os.path.join(os.path.dirname(os.path.dirname(os.path.realpath(__file__))), 'lib')
if os.path.exists(libdir):
sys.path.append(libdir)
import logging
from waveshare_epd import epd3in52#屏幕型号
import time
from PIL import Image,ImageDraw,ImageFont
import traceback
import ffmpeg
logging.basicConfig(level=logging.DEBUG)
try:
logging.info("epd3in52 Demo")
epd = epd3in52.EPD()
logging.info("init and Clear")
epd.init()
epd.display_NUM(epd.WHITE)
epd.lut_GC()
epd.refresh()
epd.send_command(0x50)
epd.send_data(0x17)
time.sleep(2)
total_frames = int(ffmpeg.probe('视频的路径 格式/x/x/x.mp4')['streams'][0]['nb_frames'])
for frame_number in range(total_frames):
ffmpeg.input('视频的路径 格式/x/x/x.mp4',ss=frame_number/30).output('存储截取出来帧的地方/frame.bmp', vframes=1, s=f'{360}*{240}').run(overwrite_output=True)
logging.info(f"display frame {frame_number + 1}/{total_frames}")
Himage = Image.open(os.path.join(picdir, 'frame.bmp'))
epd.init()
epd.display(epd.getbuffer(Himage))
epd.lut_GC()
epd.sleep()
time.sleep(100)
epd.refresh()
logging.info("Clear...")
epd.Clear()
logging.info("Goto Sleep...")
epd.sleep()
except IOError as e:
logging.info(e)
except KeyboardInterrupt:
logging.info("ctrl + c:")
epd3in52.epdconfig.module_exit(cleanup=True)
exit()
通过修改time.sleep()来实现不同延时
四、效果

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)