Maix Bit(K210)循环播放视频


  学习了使用使用Maix Bit 来播放视频,代码在github下载站可以下载。其中遇到最大的问题就是视频格式问题,在这个过程中出现了许多错误,但是最终还是解决了,后面附上格式转化的方法。

代码下载链接

开发板使用 Maix Bit
开发环境MaixPy IDE
原视频来源:https://www.bilibili.com/video/BV1Hi4y1j79V?t=17

在这里插入图片描述

1、基本要求

  根据MaixPy的文档要求播放视频的格式为:大小320x240 视频压缩格式为 mjpeg, 音频压缩格式位 PCM。如果格式不正确就无法读取。

2、代码

from Maix import GPIO, I2S

from fpioa_manager import fm
import lcd
import video
import time

lcd.init()

# AUDIO_PA_EN_PIN = None  # Bit Dock and old MaixGo
AUDIO_PA_EN_PIN = 32      # Maix Go(version 2.20)
# AUDIO_PA_EN_PIN = 2     # Maixduino

# init i2s(i2s0)
i2s = I2S(I2S.DEVICE_0)

# config i2s according to audio info
i2s.channel_config(i2s.CHANNEL_1, I2S.TRANSMITTER, resolution=I2S.RESOLUTION_16_BIT,
                       cycles=I2S.SCLK_CYCLES_32, align_mode=I2S.RIGHT_JUSTIFYING_MODE)

# open audio PA
if AUDIO_PA_EN_PIN:
    fm.register(AUDIO_PA_EN_PIN, fm.fpioa.GPIO1, force=True)
    wifi_en = GPIO(GPIO.GPIO1, GPIO.OUT)
    wifi_en.value(1)

fm.register(34,  fm.fpioa.I2S0_OUT_D1, force=True)
fm.register(35,  fm.fpioa.I2S0_SCLK, force=True)
fm.register(33,  fm.fpioa.I2S0_WS, force=True)

def Video_Play():
    v = video.open("/sd/Test.mjpeg.avi")
    print(v)
    v.volume(50)
    while True:
        if v.play() == 0:
            print("play end")
            break
    v.__del__()


if __name__=='__main__':
 while(True):
    Video_Play()

3、视频格式的转换

这部分算是比较麻烦一点的内容了。
首先准备好视频,MOV格式的视频
在这里插入图片描述
视频的大小裁剪,我使用的是AE软件,在输出的时候去除音频,即不输出音频。在这里插入图片描述
在这里插入图片描述
输出的时候一定要去除音频,如果要播放音频,一定要修改音频压缩格式位 PCM,不然就会报错。

3.1、转换成mjpeg格式

现象输出的视频任然不是满足播放条件的视频,还要在转换,在线转换网站https://convertio.co/zh/mov-mjpeg/
在这里插入图片描述
转换成功后下载视频:
在这里插入图片描述
现在的视频就满足播放播放要求了。

猜你喜欢

转载自blog.csdn.net/weixin_45488643/article/details/109135439