Răsfoiți Sursa

add:更新101 video demo

Dozingfiretruck 3 ani în urmă
părinte
comite
7fe3139fcf
1 a modificat fișierele cu 15 adăugiri și 14 ștergeri
  1. 15 14
      demo/video_play/Air101/main.lua

+ 15 - 14
demo/video_play/Air101/main.lua

@@ -20,36 +20,37 @@ sys.taskInit(function()
     sdio.init(0)
     sdio.init(0)
     sdio.sd_mount(0,"/sd",0)
     sdio.sd_mount(0,"/sd",0)
 
 
-    spi_lcd = spi.deviceSetup(0,20,0,0,8,20*1000*1000,spi.MSB,1,1)
-    log.info("lcd.init",
-    lcd.init("st7735s",{port = "device",pin_dc = 17, pin_pwr = 7,pin_rst = 19,direction = 2,w = 160,h = 80,xoffset = 1,yoffset = 26},spi_lcd))
-    
---[[-- v0006及以后版本可用pin方式
     spi_lcd = spi.deviceSetup(0,pin.PB04,0,0,8,20*1000*1000,spi.MSB,1,1)
     spi_lcd = spi.deviceSetup(0,pin.PB04,0,0,8,20*1000*1000,spi.MSB,1,1)
-    log.info("lcd.init",
-    lcd.init("st7735s",{port = "device",pin_dc = pin.PB01, pin_pwr = pin.PB00,pin_rst = pin.PB03,direction = 2,w = 160,h = 80,xoffset = 1,yoffset = 26},spi_lcd))
-]]
+    lcd.init("st7735s",{port = "device",pin_dc = pin.PB01, pin_pwr = pin.PB00, pin_rst = pin.PB03,direction = 2,w = 160,h = 80,xoffset = 1,yoffset = 26},spi_lcd)
+
     -- 使用ffmpeg.exe将视频转成字节流文件sxd.rgb放入TF卡
     -- 使用ffmpeg.exe将视频转成字节流文件sxd.rgb放入TF卡
     -- 先缩放成目标大小
     -- 先缩放成目标大小
     -- ffmpeg -i sxd.mp4 -vf scale=160:80 sxd.avi
     -- ffmpeg -i sxd.mp4 -vf scale=160:80 sxd.avi
     -- 然后转rbg565ble 字节流
     -- 然后转rbg565ble 字节流
     -- ffmpeg -i sxd.avi -pix_fmt rgb565be -vcodec rawvideo sxd.rgb
     -- ffmpeg -i sxd.avi -pix_fmt rgb565be -vcodec rawvideo sxd.rgb
-    local rgb_file = "sxd.rgb"
+
+    -- 使用ffmpeg.exe将视频转成字节流文件.rgb放入TF卡 教程见 https://wiki.luatos.com/appDevelopment/video_play/105/video_play.html
+    local video_w = 160
+    local video_h = 80
+    local rgb_file = "mwsy.rgb"
+
+    local buff_size = video_w*video_h*2
     local file_size = fs.fsize("/sd/"..rgb_file)
     local file_size = fs.fsize("/sd/"..rgb_file)
     print("/sd/"..rgb_file.." file_size",file_size)
     print("/sd/"..rgb_file.." file_size",file_size)
+    
     local file = io.open("/sd/"..rgb_file, "rb")
     local file = io.open("/sd/"..rgb_file, "rb")
     if file then
     if file then
         local file_cnt = 0
         local file_cnt = 0
-        local buff = zbuff.create(25600)--分辨率160*80 160*80*2=25600
+        local buff = zbuff.create(buff_size)
         repeat
         repeat
             if file:fill(buff) then
             if file:fill(buff) then
-                file_cnt = file_cnt + 25600
-                lcd.draw(0, 0, 159, 79, buff)
+                file_cnt = file_cnt + buff_size
+                lcd.draw(0, 0, video_w-1, video_h-1, buff)
                 sys.wait(20)
                 sys.wait(20)
             end
             end
-        until( file_size - file_cnt < 25600 )
+        until( file_size - file_cnt < buff_size )
         local temp_data = file:fill(buff,0,file_size - file_cnt)
         local temp_data = file:fill(buff,0,file_size - file_cnt)
-        lcd.draw(0, 0, 159, 79, buff)
+        lcd.draw(0, 0, video_w-1, video_h-1, buff)
         sys.wait(30)
         sys.wait(30)
         file:close()
         file:close()
     end
     end