KKTICK TANK T6 手錶影片轉檔教學:466x466 AVI 正確 ffmpeg 參數解析

  • 25
  • 0

最近買了一隻 CP 值很高的手錶,這次實驗對象是 KKTICK TANK T6(沒有業配就不上連結了)。

因為有一些小需求,我想把自製影片放進手錶裡播放,但一開始就遇到問題 

他附的內建轉檔軟體竟然一直出錯..

看到錯誤訊息後大概就知道它底層是用 ffmpeg,但看起來不像是沒安裝的問題。我重新下載官方版本的 ffmpeg 測試,發現直接轉出來的 avi 不是不能播放,就是比例變形。

後來我乾脆把手錶連到電腦,找到裡面的 sample video,然後用:

ffmpeg -i show_gps_demo_video_cn.avi

把它的編碼資訊完整拆出來,才確認這支手錶真正吃的規格。順帶一提,它要求的影片解析度是 466x466。


 
    [aist#0:1/adpcm_ima_wav @ 000002a46ee4afc0] Guessed Channel Layout: mono
    Input #0, avi, from 'show_gps_demo_video_cn.avi':
      Metadata:
        software        : Lavf61.1.100
      Duration: 00:01:40.83, start: 0.000000, bitrate: 4710 kb/s
      Stream #0:0: Video: mjpeg (Baseline) (MJPG / 0x47504A4D), yuvj420p(pc, bt470bg/unknown/unknown), 466x466 [SAR 1:1 DAR 1:1], 4523 kb/s, 30 fps, 30 tbr, 30 tbn
      Stream #0:1: Audio: adpcm_ima_wav ([17][0][0][0] / 0x0011), 44100 Hz, mono, s16p, 176 kb/s
    At least one output file must be specified
  
  
  

接著我依照 sample 的規格對齊,再請 ChatGPT 協助微調,最後整理出這條指令:


    
  
   ffmpeg -i "source.mp4" -vf "scale=466:466:force_original_aspect_ratio=decrease,pad=466:466:(ow-iw)/2:(oh-ih)/2" -pix_fmt yuvj420p -r 30 -c:v mjpeg -q:v 6 -c:a adpcm_ima_wav -ar 44100 -ac 1 -y "output.avi"
  
    
  

命令提示字元好閱讀版本


    
  
         ffmpeg -i "source.mp4" ^
        -vf "scale=466:466:force_original_aspect_ratio=decrease,pad=466:466:(ow-iw)/2:(oh-ih)/2" ^
        -pix_fmt yuvj420p ^
        -r 30 ^
        -c:v mjpeg ^
        -q:v 6 ^
        -c:a adpcm_ima_wav ^
        -ar 44100 ^
        -ac 1 ^
        -y "output.avi"
  
    
  

這裡面主要修正幾個重點:

1. 對齊聲音格式(ADPCM 44100Hz mono),設備對音訊編碼有明顯限制

2. 使用等比例縮放並補黑邊,避免畫面變形

3. 將 -q:v 調整為 6 以控制體積,如果想要畫質更好可以改成 2,但檔案會明顯變大

另外要注意,因為它只能播放 .avi,而且使用的是 MJPEG 編碼,壓縮效率非常低

所以檔案體積會偏大。我測試一個 33 分鐘的影片,最後產生的檔案大約 800 多 MB,這是格式本身的限制,沒辦法 AVI 就是這樣

補上成功播放畫面:

--
本文首發於 : TANK T6 手錶影片轉檔教學:466x466 AVI 正確 ffmpeg 參數解析

--

---

The bug existed in all possible states.
Until I ran the code.