RGB565_video
RGB565_video copied to clipboard
尝试“SPIFFS_MJPEG_JPEGDEC_MP3_audio_ESP32I2S8”但失败了
非常有趣的项目!我通过这个项目已经基本熟悉了Arduino_GFX
我首先尝试“SD_MJPEG_video_PCM_audio”,我成功了!我使用2.8寸240x320分辨率的7789屏幕,我将程序和视频素材文件都调整为每秒24帧,再将视频素材文件降低色调饱和度、降低对比度、降低锐度,降低到2300kb/s左右的码率再转成mjpeg,这样能够确保任何视频都能够绝对流畅。
我还有一块4寸320x480分辨率的7796屏幕,我像上面一样修改了“SD_MJPEG_video_PCM_audio”这个程序和我的视频素材文件,能够播放,我能听到pcm文件的声音,虽然屏幕的图像是扭曲的,但我还能继续调整,不过视频此时是非常不流畅的,可能不到每秒10帧,声音也是不流畅的,难道esp32的性能真的无法支持播放320x480分辨率的mjpeg吗?
我并不死心,于是我又尝试“SPIFFS_MJPEG_JPEGDEC_MP3_audio_ESP32I2S8”,希望这个程序能够让320x480分辨率的mjpeg流畅播放。
我已将esp32的分区设置改为“No OTA (1MB APP/3MB SPIFFS)”,并且我已成功上传data中的mjpeg和mp3文件到esp32的闪存内,但esp32依旧无法读取闪存内的文件,串口监视器显示:
05:39:31.497 -> 05:39:31.497 -> rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) 05:39:31.497 -> configsip: 0, SPIWP:0xee 05:39:31.497 -> clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00 05:39:31.497 -> mode:DIO, clock div:1 05:39:31.497 -> load:0x3fff0018,len:4 05:39:31.497 -> load:0x3fff001c,len:1216 05:39:31.497 -> ho 0 tail 12 room 4 05:39:31.497 -> load:0x40078000,len:10944 05:39:31.497 -> load:0x40080400,len:6388 05:39:31.497 -> entry 0x400806b4 05:39:32.153 -> ERROR: File system mount failed!
请问我的错误出在哪里呢?并且我还有必要继续尝试让esp32流畅播放320x480分辨率的mjpeg吗?
try "No OTA (1MB APP/3MB FatFS)"
尝试“无OTA(1MB应用程序/3MB FatFS)”
尝试之后,执行“ESP32 Sketch Date Upload”
会提示——SPIFFS Error: partition size could not be found
source have link download the uploader
source have link download the uploader
我看到有人遇到的问题和我一样,但同样不知应该如何解决 https://github.com/me-no-dev/arduino-esp32fs-plugin/issues/12
之后我尝试另一个功能更多的上传程序 https://github.com/lorol/arduino-esp32fs-plugin/tree/2.0.7 并且我还试过这个上传程序的erase flash功能
不同的方法尝试过很多次,目前为止我依然是能够上传闪存成功,但依然是“ERROR: File system mount failed!”
are you selected FatFS while upload?
are you selected FatFS while upload?
是的,包括FatFS在内的几种方式我都试过了
The complete step should be:
- check all code using FatFS
- select "No OTA (1MB APP/3MB FatFS)"
- upload
- upload file system
- reset and run
虽然用esp32内存的方式一直没成功,不过我昨天已经成功用sd卡的方式让esp32播放320x480分辨率的MJPEG,4寸的7796屏幕
可惜不是很流畅,我感觉每秒不到15帧
难道是esp32的性能无法流畅播放24帧或30帧的320x480分辨率的MJPEG吗?
虽然用esp32内存的方式一直没成功,不过我昨天已经成功用sd卡的方式让esp32播放320x480分辨率的MJPEG,4寸的7796屏幕
可惜不是很流畅,我感觉每秒不到15帧
难道是esp32的性能无法流畅播放24帧或30帧的320x480分辨率的MJPEG吗?
480x320分辨率现在流畅多了!我改为了15帧,还有前几行的代码:
#define AUDIO_FILENAME "/44100_u16le.pcm" #define FPS 15 //最高设定为30帧 #define MJPEG_FILENAME "/320_30fps.mjpeg" //自由设定SD卡里的文件名 #define MJPEG_BUFFER_SIZE (480 * 320 * 256 / 1024) //原480 * 320 * 2 / 14——非常重要的设定,按原始设定无法播放480x320 #define READ_BUFFER_SIZE 18000 //原2048——第一重要的设定,按原始设定无法播放480x320,超过2万会花屏
我是瞎蒙着改的,肯定还有更合理的 后面的i2s部分我也按15帧进行了修改,但声音还是很不理想,就像有回音一样
"480 * 240 * 2" is the 16- bit pixels size "/ 14" is the expected JPEG compression ratio. you need adjust the ratio to "/8" most likely your file JPEG quality set too high. The buffer can improvement playback a little bit, if it still have RAM remained. But the size should in the ratio of normal block size, e.g. 512, 1024, 2048, 4096 or it will introduce unnecessary overhead.