希望做个通用的视频播放应用,除PC平台外,在树莓派或其他xx派都能够运行,查阅各路文章,基本有三条路径:
1.调用pyglet
实例代码:
import pyglet
window = pyglet.window.Window(resizable=True)
@window.event
def on_draw():
player.get_texture().blit(0, 0)
if __name__ == "__main__":
player = pyglet.media.Player()
source = pyglet.media.load("./1.mp4")
player.queue(source)
player.play
pyglet.app.run()
按道理应该能运行,但是系统报错,可能缺库,但未找到原因。
'AVbin is required to decode compressed media')
pyglet.media.sources.riff.WAVEFormatException: AVbin is required to decode compressed media
待解
2.调用opencv播放
import numpy as np
import cv2
print("video play App .....")
cap = cv2.VideoCapture('./1.mp4')
while (cap.isOpened()):
ret, frame = cap.read()
cv2.imshow('frame', frame)
if cv2.waitKey(40) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
可以正常播放,但没有声音,不知何解,而且不方便移植到树莓派或其他盒子,因为树莓派这些开发板安装opencv 都挺费劲的,还不能调用系统支持硬解码的播放器。
3. 调用系统默认播放器,其实这才是最简单的,几行代码搞定,因为系统都有默认的视频播放器
import os,sys
os.system("cd /home/hy/program")
os.system("mpv 1.mp4 -loop")
三行代码,不用折腾:)