Post
2025年10月31日 下午08:16
歡迎所有互動

新功能上線,明天早上再來寫公告

另外還有一些一堆累積問題要修

還沒有人留言。想成為第一個嗎?
Mosir 開發筆記14 篇文章
歡迎所有互動

GraphQL 以及 Mosir 的檔案上傳系統

開發筆記 Frontend Backend

GraphQL 是現代服務常用的 API Query Language,高效能跟靈活性使得許多人在開始新專案時會直接考慮,Mosir 也在專案初期就選擇 GraphQL 作為前後端的共通標準。但 GraphQL 本身的架構在遇到檔案上傳時帶來不少麻煩。

歡迎所有互動

一點關於 AVIF 的小事

一般常見的 JPEG 除了內容的 RGB/YUV 之外還會有 ICC 作為輔助色彩描述。但在 AVIF,雖然格式本身也支援 ICC,但同時有新的 NCLX/CICP 標準。

AOMedia 的 libavif 支援寫入 ICC 或 CICP(CICP 為主),而社群的開源專案如 ravif(rav1e-based)偏好 CICP。

所以⋯⋯我猜 Best Practice 是用 lcms2 解 ICC 的 primaries 跟 transfer,重包 CICP 交給 ravif。

🫠

歡迎所有互動

講到圖片色差就剛好想到另一件事

Mosir 並沒有使用 imagemagick、libvips、ffmpeg/libav 或 handbrake。

雖然對處理過影像/影片的人來說可能會很詭異,但這幾個解決方案真的是肥到我沒有很想用,而且 dependency 也多到一個爆炸。

不選擇常用方案的後果是前前後後加起來大概有一整個人月的時候都消耗在多媒體處理上。雖然過程中也學了不少東西,但我不確定這是不是好做法。

不過相對而言的好處是,Mosir 的 media worker 是 stream-based 的,從 network source、buffer、processor、network target 可以一口氣跑完,沒有不必要的暫存檔。未來(我不確定有沒有機會)也可以支援直播或是 voice chat。