找回密码
 立即注册
查看: 5054|回复: 35

一个音视频播放例程【USART-SPI==>DMA-P2P==>SPI, +I2S】@AI8051U

[复制链接]
  • 打卡等级:以坛为家II
  • 打卡总天数:487
  • 最近打卡:2026-03-27 08:57:04
已绑定手机

104

主题

4202

回帖

9329

积分

荣誉版主

无情的代码机器

积分
9329
发表于 2025-8-12 21:03:34 | 显示全部楼层 |阅读模式


截图202508122058342091.jpg

视频P2P播放,时间计算:

fps20,50ms 周期
刷屏时间:160*80 一帧刷屏时间28.2ms
帧间隔:50ms-28.2ms=21.8ms

音频双缓冲区交叉播放,利用视频播放帧间隔加载下一个缓冲区音频数据,时间计算:
16000采样率 16bit 双声道 一秒32000字节
一个缓冲区播放时间:4K采样点,一通道2K,播放时间2K/16K*1000ms = 125ms
DMA取点时间:3.3V@900B/ms,4*1024/900=4.55ms


视频预处理:

分辨率160*80缩放示例:
ffmpeg -i xxx.mp4 -vf scale=160:80 -c:a copy src.mp4
分辨率加截取示例:
ffmpeg -ss 00:01:13 -i xxx.mp4  -t 25 -vf scale=160:80 -c:a copy src.mp4
截取xxx.mp4 1分13秒开始,时长25s

资源生成命令:
ffmpeg -i .\src.mp4 -t 25 -vn -ac 2 -f s16le -ar 16000 -acodec pcm_s16le audio.bin
ffmpeg -i .\src.mp4 -t 25 -vf "fps=20" -pix_fmt rgb565be -f rawvideo video.bin

测试前先使用“QSPI_刷Flash专用_40M”固件,烧录音视频文件到W25Q中:
截图202508122054231994.jpg
烧录演示视频:




烧录后屏幕正常初始化完毕刷红等待命令,USB-CDC串口发送video字符串开始播放:

video_play-20250814.zip (3.51 MB, 下载次数: 201)


参考链接:
SPI / QSPI 编程外部串行Flash | 配合ISP软件中【工具 | 串行Flash编程器】,2/5 - QSPI/3组SPI/I2S/I2C,一线制温湿度传感器 国芯人工智能技术交流网站 - AI32位8051交流社区
Ai8051U实现USB全双工声卡,同时 录音/ 放 音,微信通话/腾讯会议 可用, 重磅开源 - 51 发烧友,UAC,极致音频,大国工匠,艺术人生,乐林漫步 国芯人工智能技术交流网站 - AI32位8051交流社区
基于 Ai8051U 的电子鞭炮设计 - 开源广场及教学视频交流 国芯人工智能技术交流网站 - AI32位8051交流社区
AiCube 图形化自动生成程序,驱动 ST7735S,TFT-彩屏, @Ai8051U, 跟帖问TFT, ST7739 - 第9页 - TFT彩屏,触摸屏,DMA-i8080/M6800并口自动刷屏,DMA-SPI刷屏,外设直接到外设 国芯人工智能技术交流网站 - AI32位8051交流社区






2 喜欢他/她就送朵鲜花吧,赠人玫瑰,手有余香!
三天不学习,赶不上刘少奇~
回复

使用道具 举报 送花

3

主题

2857

回帖

1461

积分

等待验证会员

积分
1461
发表于 2025-8-12 21:08:00 | 显示全部楼层
国芯人工智能技术团队针对您提供的音视频播放例程“USARTSPI-SPI-P2P+I2S@AI8051U”及配套资料,进行如下专业分析与说明:

本例程基于AI8051U平台,实现了通过SPI、I2S等接口完成音视频数据的传输与播放。其中,视频部分采用P2P(点对点)方式传输,并结合帧率控制与刷屏时间计算,确保画面流畅;音频部分则采用双缓冲区交叉播放机制,以充分利用视频帧间隔时间加载下一缓冲区数据,提升播放连续性。

在视频播放方面,设定为20fps,即每帧刷新周期为50ms。实际刷屏时间为282ms,导致帧间隔为218ms。此配置下,需确保系统具备足够的处理能力以维持稳定帧率,避免画面卡顿或丢帧现象。建议进一步优化图像处理算法或调整刷新频率,以提高整体性能。

音频播放采用双缓冲区设计,每个缓冲区包含4K采样点(单通道2K),采样率为16kHz,每秒32,000字节。因此,每个缓冲区播放时间为125ms。同时,DMA取点时间为455ms,表明数据传输速度可能成为瓶颈。建议优化DMA配置或调整缓冲区大小,以减少等待时间,提升音频播放质量。

测试前需使用“QSPI刷Flash专用40M”固件,将音视频文件烧录至W25Q系列Flash中。该过程可通过ISP软件中的“串行Flash编程器”完成,确保数据准确写入并可被AI8051U平台正确读取。

参考链接提供了关于SPI/QSPI编程、I2S音频处理及USB声卡实现的相关信息,有助于深入理解本例程的技术细节与扩展应用。

综上所述,本例程展示了AI8051U平台在音视频处理方面的强大功能,适用于多种嵌入式应用场景。如需进一步优化或扩展功能,建议结合具体需求调整参数配置,并参考相关技术文档与社区资源进行深入开发。

[本文内容由国芯人工智能辅助生成,仅供参考]
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:506
  • 最近打卡:2026-03-26 21:23:46
已绑定手机

14

主题

228

回帖

2816

积分

金牌会员

积分
2816
发表于 2025-8-12 21:56:06 | 显示全部楼层


没用过I2S,那个抢滩登陆的BGM音效,是双PWM直推WAV,省成本。

这回学习一下I2S。

点评

感谢老铁的鲜花鼓励 这个双PWM直推WAV玩法有空开源分享下学习学习  详情 回复 发表于 2025-8-12 22:15
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:487
  • 最近打卡:2026-03-27 08:57:04
已绑定手机

104

主题

4202

回帖

9329

积分

荣誉版主

无情的代码机器

积分
9329
发表于 2025-8-12 22:15:46 | 显示全部楼层
C_w*** 发表于 2025-8-12 21:56
没用过I2S,那个抢滩登陆的BGM音效,是双PWM直推WAV,省成本。

这回学习一下I2S。

感谢老铁的鲜花鼓励

这个双PWM直推WAV玩法有空开源分享下学习学习
三天不学习,赶不上刘少奇~
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:506
  • 最近打卡:2026-03-26 21:23:46
已绑定手机

14

主题

228

回帖

2816

积分

金牌会员

积分
2816
发表于 2025-8-13 11:42:10 | 显示全部楼层
erci*** 发表于 2025-8-12 22:15
感谢老铁的鲜花鼓励

这个双PWM直推WAV玩法有空开源分享下学习学习

这阵有点忙,等有时间的,整理一下。
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:487
  • 最近打卡:2026-03-27 08:57:04
已绑定手机

104

主题

4202

回帖

9329

积分

荣誉版主

无情的代码机器

积分
9329
发表于 2025-8-13 17:55:52 | 显示全部楼层
香河英*** 发表于 2025-8-13 17:19
Rebuild target 'demo'
compiling main.c...
src\main.c(78): warning C47: 'dat': unreferenced parameter ...

没配置中断扩展导致的。
https://www.stcaimcu.com/data/do ... %96%AD%E5%8F%B7.zip

截图202508131811381031.jpg
三天不学习,赶不上刘少奇~
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:487
  • 最近打卡:2026-03-27 08:57:04
已绑定手机

104

主题

4202

回帖

9329

积分

荣誉版主

无情的代码机器

积分
9329
发表于 2025-8-13 17:56:52 | 显示全部楼层
香河英*** 发表于 2025-8-13 17:15
硬件不可直接替换:由于引脚定义和指令集不同,基于ST7735开发的模块无法直接替换为S6D02A1,反之亦然。例 ...

是ST7735驱动
三天不学习,赶不上刘少奇~
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:487
  • 最近打卡:2026-03-27 08:57:04
已绑定手机

104

主题

4202

回帖

9329

积分

荣誉版主

无情的代码机器

积分
9329
发表于 2025-8-13 17:58:01 | 显示全部楼层
三天不学习,赶不上刘少奇~
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:487
  • 最近打卡:2026-03-27 08:57:04
已绑定手机

104

主题

4202

回帖

9329

积分

荣誉版主

无情的代码机器

积分
9329
发表于 2025-8-13 18:06:15 | 显示全部楼层
香河英*** 发表于 2025-8-13 18:02
c251有,配置中断扩展具体如何操作?


使用说明在此压缩包内:
https://www.stcaimcu.com/data/do ... %96%AD%E5%8F%B7.zip
截图202508131805317665.jpg
三天不学习,赶不上刘少奇~
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:487
  • 最近打卡:2026-03-27 08:57:04
已绑定手机

104

主题

4202

回帖

9329

积分

荣誉版主

无情的代码机器

积分
9329
发表于 2025-8-13 18:40:18 | 显示全部楼层
香河英*** 发表于 2025-8-13 18:38
这3个.bin是烧录在flash里,还是哪里?

通过QSPI固件烧录到W25Q内
三天不学习,赶不上刘少奇~
回复

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2026-3-27 09:18 , Processed in 0.540741 second(s), 98 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表