<Kim v0.13> now comes with write support for uncom...
# feed
s
Kim v0.13 now comes with write support for uncompressed JPEG XL (JXL) files. There is no real need and nobody asked for this, but I felt that I want to do my part on supporting this new technology. 🙂 I also requested support for JXL on other projects like skiko, so I hope that JXL support in Ashampoo Photos will be a thing in the future. Maybe I’m just driven by the desire to convert my own photo library to a more modern format. 😄 Enjoy 😊
👍 3
K 3
a
Do you know something similar for audio/video files?
s
Not for Kotlin Multiplatform. This is the only project for that. 😄 On JVM only there is metadata-extractor, which covers some more files. But it comes without write support. If you are Desktop only it should be easy to utilize the famous ExifTool by Phil Harvey, which has read & write support for literally every format. 😄 But since it’s Perl it might not be very convenient to use it on Android & iOS. Also you won’t get the best performance of course. So we decided to develop Kim. Tell me which formats you are interested in and I will see if I can add support for them.
For example HEIC, AVIF & JXL are based on BMFF, which originates from QuickTime and is used in MP4 as well. It should be possible to add support.
❤️ 1
a
I would be happy to have support for mp4 at least, as that is the most popular, also support for mp3, oppus, flac. And to have the ability to add title, author and a bitmap for thumbnail.
There are indeed not many options, a few on jvm.
s
I'm just looking into that. QuickTime & MP4 video formats should be feasible. Since HEIC & AVIF are still images in a video container they blurred the line. MP3, Ogg & flac use ID3, which is something different. Could be worth its own lib. Interestingly ExifTool supports all these, even if it has nothing to do with Exif 😄 https://exiftool.org/TagNames/ID3.html By the time Ashampoo Photos gets support for Video playback, which was requested on community forums, I can definitely justify working on support for video formats... even if kim stands for kotlin image metadata 😄
I think I will rename it to KMM, the Kotlin Media Metadata, then... Yes, KMM will confuse nobody... Oh weit... KMP, the Kotlin Metadata Parser, is better... KMP, yes. 😄
@Alexandru Caraus Ok, for the past hours I looked into the topic of processing MP4 & MOV. In general it's possible, because it's ISO BMFF just like HEIC, AVIF & JXL. On a branch I added file type detection and redirected them to the handler. I get the boxes. But now my problem ist that I don't know how to navigate the structure to discover the EXIF. 👀 I know it’s in my sample files because ExifTool shows it to me. For HEIC I was able to ask ChatGPT and look up a Java implementation in metadata-extractor to guide me. For JPEG XL I asked on their GitHub. For MP4 & MOV ChatGPT won't tell me and metadata-extractor does extract some metadata that's not very interesting and omits what I'm after. So right now I don't know how to get it. If you find a spec describing it or sample code that does it (except ExifTool which I can barely read), I'm open to implement the support for it. The damn ISO specs are always behind expensive paywalls. 🙄
However, you can request MOV & MP4 support on GitHub.
👍 1
a
Yep, info on this topic is a bit scarce and confusing. There is also ffmpeg, which can read the metadata from videos, didn't see a way to add pictures for thumbnail though.