關於「Jett」

邱柏宇,新北人,寫程式的工程師。踩到的坑習慣整理成筆記,從錯誤訊息一路追到根因才收工;在 JustBlog 寫開發除錯、工具與工作流程的實戰紀錄,下班喜歡哼歌、做點手作。 Jett Chiu is a New Taipei–based software engineer who writes up the bugs he runs into, tracing each error message down to its root cause.

白閃轉場讓 iPhone 卡住:同一支 H.264 混了 4:4:4

白閃轉場讓 iPhone 卡住:同一支 H.264 混了 4:4:4

環境:ffmpeg+libx264,直式短影片,轉場用 fade=color=white 做白閃,每段各自壓好再用 -c copy 串成一支。症狀:Chrome 播放正常,iPhone/Safari 播到轉場段就停住。轉場位置在 3.0s 和 16.8s 兩處穿白場,卡的就是那兩處。會遇到的場景:分段濾鏡處理、最後用 stream copy 拼接 H.264 的流程。

閱讀全文 →

2D 角色換色變體五種做法實測:從 SAM 2 換色到 ControlNet 重上色定案

2D 角色換色變體五種做法實測:從 SAM 2 換色到 ControlNet 重上色定案

做 2D 遊戲的應該都遇過這題:同一個角色要再出幾種配色,顏色要一眼分得出來,整套動作格每一格還得一致。聽起來是「調個色相就好」的小事,實際做下去踩了五條路。環境是 Unity 加 Python,素材是逐格 PNG 精靈圖。先講結論:最後定案是 ControlNet img2img 重上色,但起點不是原圖,是 Meta SAM 2 部位遮罩換色出來的結果,跑完再用鎖定遮罩把斑點、眼睛、效果符號換回去。下面是每條路怎麼翻車、怎麼活下來的。

閱讀全文 →

invalid_auth 之後 is_connected() 還是 True:Slack bot 靜默近 12 小時

invalid_auth 之後 is_connected() 還是 True:Slack bot 靜默近 12 小時

環境:事故機器實際在跑的是 Python 3.14.3、slack_sdk 3.44.0 的內建(builtin)SocketModeClient,外面包 Bolt 的 SocketModeHandler(它預設就是用這個 builtin client),程序跑在 macOS launchd 底下、KeepAlive 開著。症狀:Slack 端回了一次 invalid_auth 之後,SDK 自己重連(推定,沒有 log),is_connected() 之後回 True,程序沒有結束,但之後再也沒有任何事件被處理。原本的看門狗只看 is_connected():它在 00:09:13 記過一次「socket disconnected (1/5)」,之後就沒再記;它的程式碼在 is_connected() 回 True 時把計數歸零,所以計數沒累積到 5,也就沒有重啟。

閱讀全文 →