-
Notifications
You must be signed in to change notification settings - Fork 267
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[add] libheif #2516
Comments
I don't recall if ffmpeg supports those formats already in some manner ... After quick google, I have not yet spotted anything in ffmpeg to say it supports libheif and a reasonable guess would be that ffmpeg needs to be updated to support it. In fact https://github.com/strukturag/libheif#software-using-libheif does not list ffmpeg as software which uses libheif. On that basis, since MABS is a build system for ffmpeg and dependencies, I guess that no change to MABS would achieve what you are seeking ? Lack of heif support seems to be a long overdue shortcoming in ffmpeg, based on TRAC comments. |
It's funny (or not) that ffmpeg supports so called "avif" but no "heic". It's just a container! |
Yes, things seem a tad peculiar. |
Using media-autobild's msys shell, I was able to compile libheif with all HEVC & AV1 encoders/decoders I want to use - there are no Windows binaries around the web for that. I didn't use add it to media-suite_compile.sh, but did a manual cmake - which was a LOT of hassle, I had to set the respective PKGCONF LIBRARY and INCLUDE_DIR params. If anyone happens to have a patch / addition for media-suite_compile.sh which is 'fire and forget', please do share. |
There is another request in the German Gleitz video forum |
I'm a bit late to the party. A new comment over on ffmpeg TRAC: https://trac.ffmpeg.org/ticket/6521#comment:23 |
That commit was not related to libheif. It's the native demuxer in FFmpeg. But still no muxer support for HEIC. |
And even as long as ffmpeg hesitates to implement new support for single image formats based on established video format I-frames, some people are interested in at least separate encoders for these formats. |
I'll see what I can do after it finished building everything with new version of clang ;) |
Test branch I don't know what to do with the linking issues... |
Successfully built libheif 1.19.3 8a139a6 32 and 64 bit code contain a different selection of codecs; and heif-dec contains no HEIC decoder. (I wonder if libavcodec is able?) |
Thank you. Also, eek at
|
Well, of course, some codecs like VVC exist in 64 bit only. No surprise. The other issue sounds more important, if it is called "heif-dec", it should be able to fulfill its name at least. So hoping for libde265 or any alternative decoder to work, |
libde265 is working (or, "linking" to be precise?) I haven't tested the actual decoding though. |
I did not test daily. Now that I downloaded the latest release, VulkanLoader fails... makes testing hard until solved. |
There's something strange about that. some links: |
As I already mentioned: At that time when I tested it, this branch did not yet solve the linking issue. Now it is fixed, libde265 links. But I could not yet test it again. |
Disabling vulkan and libplacebo due to issues. And OpenH264 asks for a newer version because MSYS2 ships newer headers. The following codecs are reported for my build v1.19.5 c057050: Win32
Win64
Could x264 or OpenH264 be used as AVC encoder? The Win32 binary not supporting VVC is no surprise, Fraunhofer did not provide x86 optimized code; x86-64 code can use more internal registers and more RAM per process, so developing a separate x86 branch would not be efficient. |
x264 support is not implemented in upstream. There's a commented line in CMakeLists refering OpenH264 encoding but it's not implemented as well. (it's in the TODO list, maybe?) |
You may have a little typo in the install script, a path is doubled:
PS: May not be your fault, rather upstream. Looks not even very sensible to me. |
Sometimes I wonder myself where did that heif-convert.exe go? But this copy process is controled by the CMake, since the rest of the executables get installed in the right place... I don't think I did a typo. It must be CMake that did something wrong. |
BTW: libde265 compiles to a separate dec265.exe too; but it does not print any console output, not even its own help text. Probably nothing to really worry about, as long as nobody seriously wants to use it... |
You ready? imma say it, here it goes: it's fine on my side. (kinda hate to say it but it's the fact...) |
In case of Av1an, it was necessary to have Python 3.12+ and VapourSynth in it installed. Does dec265 have the same requirements? If so, is that documented? |
I don't think so, the here built dec265's requirement should be just itself (and some standrad Windows libraries / runtimes). |
My system is indeed a little special, it is Windows 10 upgraded from Windows 7. I noticed that the OS detection may behave slightly differently when running either as normal user or "as Administrator". In case of Stellarium, the Qt6 installer failed, only the Qt5 installer worked... But I see no reason why any console application would not want to print anything (possibly fail before any output and crash?). In a most recent build, Av1an creates a log which looks very brief to me. |
I have already commented on the pull request, but that wasn't the proper place: I suggest adding shared compilation option for libheif, i.e. like av1an or like mabs already does for ffmpeg. The reason is that libheif produces several exe files - which are all similarly huge in the static build. Some like heif-info do trivial things, but always include all of what is heif.dll in a shared build. |
I'm a bit of a newbie when it comes to coding but I'm try to fumble my way through getting chat gpt to make a script to extract frames from a 10 bit video .mov using FFMPEG, I want to output 10 bit heic files but I can't seen to find a prebuilt binary for ffmpeg with heic/heif support is one out there or is this still in progress? |
Lacking ffmpeg internal heif support, you can of course always write an intermediary high-quality jpeg file with ffmpeg and use that in the stand-alone heif-enc encoder... |
Yeah, unfortunately that would destroy the 10bit data which I’d like to keep, ive experimented with avif, jxl, png, and tiff but the decoder takes about 100x as long than working with jpeg! I think im just going to have to stick with 8 bit now until they add heif support |
Oh my, I'm often encoding 10-bit heif (--encoder x265) from 16 bit png sources and didn't realize that decoding other than jpeg is a bottleneck... I'll have to benchmark that sometimes. If you can reproduce a severe decoding issue, you might add a bug ticket for libheif https://github.com/strukturag/libheif/issues |
Well, by design the HEVC, even with only one Intra frame, is much, much more complex than jpeg (1992). |
Please don't mind me reminding you that this project is not the perfect place for cozy discussions about the usage of tools, as mentioned in the readme of this project. Forums like doom9 or VideoHelp are more suitable. |
In the coziest way possible I'm all about isolating if there's a possible bug that should be handled in the approprate place, either by mabs or upstream. |
hi, is it possible to add libheif to this script?
https://github.com/strukturag/libheif
The text was updated successfully, but these errors were encountered: