Open tamaina opened 1 year ago
Chromeってawait VideoEncoder.isConfigSupported({ codec: 'av01.0.01M.08', width: 256, height: 256 })
するとsupported: true
だすのでAVIFエンコード不可能なのは意外です
何とかVideoEncoder
使ってAVIF作る方法はないかな
何とか
VideoEncoder
使ってAVIF作る方法はないかな
これはそんなに大変でもなさそう
Mastodon関係なく、アニメーションでない場合(Safari, FirefoxがAnimated Avif非対応)、メディアプロキシやサムネイルではavifにするぐらいのことはして良さそう
Safari, FirefoxがAnimated Avif非対応
ツイッターみたいにGIF系は全て同映像に変換する方法も一応はあります
Safari 16.4からAnimated AVIFに対応
Firefoxは113からAnimated AVIF対応?
(本当はEdgeを無視してAVIFにしたいところ)
妥協案でAV1にしたい説
(Safariがサポートしてなかった…)
image proxyでAV1➡️AVIFとか逆とかできないでしょうか
image proxyでAV1➡️AVIFとか逆とかできないでしょうか
av1→jpgでやった方が(Mastodonに対しても)いろいろ潰しが効きそう
image proxyでAV1➡️AVIFとか逆とかできないでしょうか
av1→jpgでやった方が(Mastodonに対しても)いろいろ潰しが効きそう
なぜwebpじゃなくjpgでしょう
av1→じゃなくてavif→か
webpじゃなくjpg
ActivityPubを拡張しちゃえばMastodon v3がwebp対応していない問題にも対応できそう
…webpでいいか(実装がややこしいのと透過対応しないなと思った)
v3 forkでもその気さえあればWebP対応するのはそこまで難しくないはずですので
Edge 114 (6月第1週リリース) より、AVIF がデフォルトでアクティブ化されるようです。 https://twitter.com/xakuro_com/status/1647606715792379906
全部avifにするか
JPEG XL がプログレッシブかつ JPEG から損失なし変換できるのはかなり魅力的なんだけど Chrome サポート終了の件で非常に悩ましい
AVIFもprogressiveできるらしいです https://github.com/AOMediaCodec/av1-avif/pull/134
JPEG や WebP から損失なし変換できる
JPEGからはできますがWebPからはできないはず
記憶違いかも……(なんか 3 コーデックぐらいあった気がするんだけど他なんだっけ)
AVIFもprogressiveできるらしいです https://github.com/AOMediaCodec/av1-avif/pull/134
全部 AVIF にするか
AVIF progressive、sharp.jsにはprogressiveオプションないけど大丈夫かしら
((sharpのlibvipsで使っている)rav1eが対応しているのかみたいな)
画像圧縮 sharp やめて Rust ベースに移行するか
Sharpでやってるのは縮小とかbadge生成とかもあるので(まあ圧縮部分だけRustにすればいいだろうけど)
rav1eじゃなくてlibaom使ってた https://github.com/lovell/sharp-libvips/issues/97
wasmビルドも作って欲しい(Service Worker内で実行する)
Sharpでやってるのは縮小とかbadge生成とかもあるので(まあ圧縮部分だけRustにすればいいだろうけど)
全部 Rust ベースにして良さそうじゃね
wasmビルドも作って欲しい(Service Worker内で実行する)
misskey-dev/slacc はあくまでバインディングのみを目的としているからロジックは分離して slacc 経由でのバックエンドバインドと wasm バインドそれぞれ作ればよさそう
全部 Rust ベース
まあ可能なら(もはやそれ単体ですごいライブラリだと思う…)
全部 Rust ベース
まあ可能なら(もはやそれ単体ですごいライブラリだと思う…)
優れた crate がいっぱいあるしそこまで大変でもないと思う(楽観視)
😅
とりあえず libavif で未リリース機能としては存在するっぽい https://github.com/AOMediaCodec/libavif/blob/905e30049fda48053fc2049bc08422cdb3292ac8/CHANGELOG.md#unreleased
そういう調子だとブラウザのデコーダーが対応してるか怪しくない?
https://github.com/AOMediaCodec/av1-avif/pull/134 で追加されたファイルのデコーディングはFirefox/Chrome/Safariで全部問題なさそうです
Speed: the encoding process is single-threaded and dead slooow (I mean, really, really slow) - encoding a single 3072*2048 pixel image using the default options above takes ~4 min!
https://github.com/saschazar21/wasm-rav1e
wasmやっぱ遅いのか
(生vips使いたくない…と思ったけどd.tsがあるからまだマシかしら)
(wasm、ネイティブより遅いのとバンドルサイズが馬鹿にならないのは注意すべきよね)
どのみちメディアが十分大きいしキャッシュ効くから気にするほどではない
そろそろ手をつけたいがまだむり
Edgeってavif対応したんだろうか
Edge 114はダメらしい
JPEG XLにするか
(webpでも他のソフトに取り込めないとそれなりに文句が出てるわけだけど、jpeg xlにしたら大変なことになりそう)
ん、Firefoxはトグルがデフォルトでオフなのか
@saschanaz なんとかして
サーバーどうしにAccept="image/jxl"
とかしたらなんとかなるかも
Chromeもデフォルトが無効だった
Edgeも121からAVIFに対応したようです https://caniuse.com/avif
I don't think browser support should matter much in JPEG XL. It supports compressing legacy JPEG images further without any quality loss (while being fully reversible bit-by-bit), so we can reencode all saved JPEGs as JPEG XL internally and just serve JPEG on-the-fly. That's some free storage just waiting to be reclaimed for pretty large servers like misskey.io (up to 20% filesize saved on average)
お
Summary
Related to #6626, #9275
Mastodon v4からAVIFに対応したらしいので
https://caniuse.com/avif