RGB565_video icon indicating copy to clipboard operation
RGB565_video copied to clipboard

尝试“SPIFFS_MJPEG_JPEGDEC_MP3_audio_ESP32I2S8”但失败了

Open xiaocuiphoto opened this issue 3 years ago • 10 comments

非常有趣的项目!我通过这个项目已经基本熟悉了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吗?

xiaocuiphoto avatar Sep 17 '21 21:09 xiaocuiphoto

try "No OTA (1MB APP/3MB FatFS)"

moononournation avatar Sep 17 '21 23:09 moononournation

尝试“无OTA(1MB应用程序/3MB FatFS)”

尝试之后,执行“ESP32 Sketch Date Upload”

会提示——SPIFFS Error: partition size could not be found

xiaocuiphoto avatar Sep 17 '21 23:09 xiaocuiphoto

source have link download the uploader

moononournation avatar Sep 18 '21 00:09 moononournation

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!”

xiaocuiphoto avatar Sep 18 '21 11:09 xiaocuiphoto

are you selected FatFS while upload?

moononournation avatar Sep 18 '21 12:09 moononournation

are you selected FatFS while upload?

是的,包括FatFS在内的几种方式我都试过了

xiaocuiphoto avatar Sep 19 '21 07:09 xiaocuiphoto

The complete step should be:

  • check all code using FatFS
  • select "No OTA (1MB APP/3MB FatFS)"
  • upload
  • upload file system
  • reset and run

moononournation avatar Sep 19 '21 07:09 moononournation

虽然用esp32内存的方式一直没成功,不过我昨天已经成功用sd卡的方式让esp32播放320x480分辨率的MJPEG,4寸的7796屏幕

可惜不是很流畅,我感觉每秒不到15帧

难道是esp32的性能无法流畅播放24帧或30帧的320x480分辨率的MJPEG吗?

image

xiaocuiphoto avatar Oct 12 '21 12:10 xiaocuiphoto

虽然用esp32内存的方式一直没成功,不过我昨天已经成功用sd卡的方式让esp32播放320x480分辨率的MJPEG,4寸的7796屏幕

可惜不是很流畅,我感觉每秒不到15帧

难道是esp32的性能无法流畅播放24帧或30帧的320x480分辨率的MJPEG吗?

image

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帧进行了修改,但声音还是很不理想,就像有回音一样

image

xiaocuiphoto avatar Oct 13 '21 10:10 xiaocuiphoto

"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.

moononournation avatar Oct 13 '21 11:10 moononournation