🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# video_范例 ***** * [ ] **播放 avi 视频** > 首先保证视频是`320x240`大小, 视频压缩格式为`mjpeg`, 音频压缩格式位`PCM` ``` import video,time, lcd from Maix import GPIO from board import board_info from fpioa_manager import fm lcd.init() AUDIO_PA_EN_PIN = 32 if AUDIO_PA_EN_PIN: fm.register(AUDIO_PA_EN_PIN, fm.fpioa.GPIO1) wifi_en=GPIO(GPIO.GPIO1, GPIO.OUT) wifi_en.value(1) fm.register(34, fm.fpioa.I2S0_OUT_D1) fm.register(35, fm.fpioa.I2S0_SCLK) fm.register(33, fm.fpioa.I2S0_WS) v = video.open("/sd/MixPY.avi") print(v) v.volume(50) while True: if v.play() == 0: print("play end") break v.__del__() ``` > 使用了`I2S0`来播放音频, 所以需要设置`I2S0`对应的引脚, 关闭WiFi是因为WiFi对音质的干扰 ***** * [ ] **录制 avi 视频** > 首先保证视频是`320x240`大小, 视频压缩格式为`mjpeg`, 音频压缩格式位`PCM` ``` import video, sensor, image, lcd, time lcd.init() sensor.reset() sensor.set_pixformat(sensor.RGB565) sensor.set_framesize(sensor.QVGA) sensor.run(1) sensor.skip_frames(30) v = video.open("/sd/capture.avi", record=1, interval=200000, quality=50) i = 0 tim = time.ticks_ms() while True: tim = time.ticks_ms() img = sensor.snapshot() lcd.display(img) img_len = v.record(img) # print("record",time.ticks_ms() - tim) i += 1 if i > 100: break print("finish") v.record_finish() lcd.clear() ``` > 可以取消打印屏蔽来看实际的录制间隔有没有达到设置的帧间隔(比如这里设置的`200000us`) 实际打印应该是`200ms`, 如果实际帧间隔大于设置的值,则说明实际性能没有达到设置的要求,需要调大设置的帧间隔即减小帧率。 另外去掉显示和打印也可以一定程度上增加帧率 *****