My thoughts on Slackware, life and everything

Tag: handbrake

New handbrake and mkvtoolnix packages for Slackware 14.2 and -current

handbrake_logoI was a couple of releases behind on the Handbrake video transcoding software. I am always a bit hesitant with upgrading Handbrake. It has a history of being hard to compile on the stable Slackware releases.

Most notably it is the GTK+3 based GUI for which our Slackware libraries are often too old. And indeed, with the latest 1.3.0 release I found that this would not compile on Slackware 14.2 despite the hack I already used for the previous package (1.2..2) which I created earlier in 2019. It took me a day to come up with a second patch that allows Handbrake 1.3.0 to compile against our gtk+3 3.18.9 while in fact the program’s GUI component wants gtk+3 3.20.0 or higher.
So, Slackware 14.2 users – please tell me if you find that some functionality of the GUI is not working… it should all work properly but you never know.
In addition, I had to add a patch to make the new dav1d AV1 decoder compile on Slackware 14.2 but luckily I could just re-implement what I had already done for VLC.

The package for Slackware-current built without any glitches. Yay.

Note that my ‘handbrake‘ package does not have any external dependencies – unlike the slackbuilds.org version.
Install and run, it’s that simple. Everything you need is compiled statically into the package. The ‘HandBrakeCLI‘ program is the command-line variant, whereas ‘ghb‘ is the GUI variant of HandBrake, also found in the “Multimedia” menu of your desktop environment.

Packages for Slackware 14.2 and -current with AAC audio encoding support can be obtained from my “restricted” repository:

The variant which does not support AAC audio encoding and therefore does not violate the stupid US software patents can be downloaded from the regular repository:

 

I also have neglected my mkvtoolnix package for a while. You may be aware already that MKVToolNix is a set of tools to create, alter and inspect Matroska files (most widely known as the MKV video container format).

When working on the handbrake packages, I decided to check out the latest mkvtoolnix as well. And what do you know… the latest release won’t compile on Slackware 14.2!
I went back through the releases of 2019 and found that 38.0.0 is the most recent version which still compiles using the gcc compiler of Slackware 14.2 against the boost libraries of Slackware 14.2. Anything newer will not compile. End of the line for mkvtoolnix releases on the stable Slackware then.
These issues are absent on Slackware-current. I could compile mkvtoolnix 41.0.0 (the most recent release) easily.

Note the dependencies for mkvtoolnix:
Since its GUI and multimedia support is based on Qt5, you’ll have to install libxkbcommon and qt5 from my repository. And the qt5 dependencies as well: OpenAL and SDL_sound. On Slackware 14.2 two more even: libinput and libwacom.
Starting with mkvtoolnix 20.0.0 there’s another, new, dependency: cmark. Like with all the other dependencies I mentioned, cmark can be downloaded from my repository or any of its mirrors.
Get all the packages here:

Enjoy! Eric

Handbrake 1.2.2 packages fix library mismatch in -current

handbrake_logoHandbrake in Slackware-current was broken after a libvpx upgrade. So I had to recompile. Instead I took the opportunity to compile the new release of HandBrake (1.2.2). Read the releasenotes for the 1.2.x series if you are interested. Most notable is that the team switched back from libav to ffmpeg 4.x as the core engine.

Always uncertain whether the GTK+-3 based GUI will compile. This time, I had to patch a function call out of the sourcecode that was introduced in a later version of GTK+3 than we have in Slackware 14.2. But that was relatively easy, all you will miss is a clickable link to the Handbrake homepage in the “About” box I think. Slackware-current is still uptodate as far as GTK+-3 is concerned.

Please use the comments section to share your feedback about the Slackware package and the use of the Handbrake binary. I did not test, one of the reasons being that I do not have a DVD reader. I remember people giving feedback about older releases of Handbrake where DVD ripping had issues.
Note that my ‘handbrake‘ package does not have any external dependencies – unlike the slackbuilds.org version.
Install and run, it’s that simple. Everything you need is compiled statically into the package. The ‘HandBrakeCLI‘ program is the command-line variant, whereas ‘ghb‘ is the GUI variant of HandBrake, also found in the “Multimedia” menu of your desktop environment.

Packages for Slackware 14.2 and -current with AAC audio encoding support can be obtained from my “restricted” repository:

The variant which does not support AAC audio encoding and therefore does not violate US software patents can be downloaded from the regular repository:

Eric

HandBrake 1.1.0 – now also in a patent-friendly package

handbrake_logoA new release of HandBrake, the video transcoder/ripper. The version 1.1.0 (released last month) comes with a load of enhancements, bug fixes and new features. Read the announcement to get all the details.

And its GTK+-3 based GUI still compiles on Slackware 14.2. The devs must have done something right. Thank you! Still, it is sad that I can not compile the HandBrake GUI on Slackware 14.1 – or older – due to the GTK+-3 requirement (how I wish that the Qt based GUI was still an option). You could still build the CLI-only variant I suppose. But it might also be a good idea to upgrade to Slackware 14.2 if you thought of running the graphical HandBrake program…

I did not test the program’s functionality yet, mainly because I don’t have a need for a video ripper/transcoder myself, but I appreciate your feedback about the Slackware package. Note that my ‘handbrake‘ package does not have any external dependencies – unlike the slackbuilds.org version.
Install and run, it’s that simple. Everything you need is compiled statically into the package. The ‘HandBrakeCLI‘ program is the command-line variant, whereas ‘ghb‘ is the GUI variant of HandBrake, also found in the “Multimedia” menu of your desktop environment.

One important change compared to previous releases is that you’ll find a ‘handbrake’ package in my regular repository as of now. Similar to my ‘ffmpeg‘ and ‘vlc‘ packages, I have introduced a variable “USE_PATENTS” and set it to “NO” to disable the patent-encumbered AAC encoder. That produces a package which can be re-distributed without restrictions – including on the Slackware server in the US.

Packages for Slackware 14.2 and -current with AAC audio encoding support can be obtained from my “restricted” repository:

The variant which does not support AAC audio encoding can be downloaded from the regular repository:

Eric

Handbrake 0.10.2 (but only for slackware-current)

handbrake_logo Nearly a year after my rant about Handbrake’s switch from GTK+2 to a bleeding edge version of GTK+3, I am about to give up on my attempts to build the required GTK+3 static libraries into the handbrake package. Unlike the situation with applications that use Qt or WxWidgets for their GUI, creating a private run-time for GTK is like wading through the pools of hell. GTK wants caches, configuration files and stuff all over the place. My handbrake with private GTK+3 crashes because it might still be trying to use the older GTK+3 libraries on my Slackware 14.1 computer.

So I said to myself: “fuck it” and build Handbrake 0.10.2 for Slackware-current exclusively. The development version of Slackware does have a GTK+3 which is contemporary enough and with some tweaks, I was able to compile a (hopefully) working handbrake GUI.

handbrake-0.10.2

It is of course possible to compile the commandline version of Handbrake on Slackware 14.1 because that does not require GTK+3 as a dependency. Come to think of it, perhaps I should adapt the handbrake.SlackBuild with a switch parameter that will allow you to skip the “ghb” GUI program and only compile “HandBrakeCLI“.

I wonder if anyone will step up and write a Qt-based wrapper about the HandBrakeCLI program. That would be really welcome, because I do not think that the Handbrake developers will ever produce a Qt based GUI variant. They attempted that once if I remember correctly, but nothing good came from that.

When I have some spare time I will prod further at getting Handbrake to use a private GTK+3 run-time, but don’t hold your breath. I have a program that compiled with zero errors, but it crashes on the GTK component libraries. I am not sure if I ever find out how to overcome that… I am not aware of anyone else ever successfully creating a GTK+3 based GUI program on Linux that used its own private library versions.

Anyway, have fun with handbrake if you are running Slackware-current.

You can get the package from my “restricted” repository. The package contains software which is under patent dispute (the MP3 and AAC audio encoders) so I can not host the package on the Slackware server.

Eric

Handbrake – lost for Slackware

handbrake_logo Yesterday, I read about the newest release of Handbrake, the powerful video transcoder. I have handbrake in my Slackware repository, so I decided to dissect the source tarball for the 0.10.0 release and see what was needed to compile it into a package.

Boo hoo.

Handbrake 0.10.0 switched from a GTK+2 to a GTK+3 graphical user interface. Not only that, but it requires a version of GTK+3 that is not even contained in Slackware-current. We have 3.8.2 while handbrake uses functionality which was introduced with 3.10. We’re out in the cold, folks!

You might debate whether Slackware’s GTK+3 is not too old anyway, but then again, GTK releases are notorious for breaking all kinds of stuff thanks to ABI incompabilities. Slackware does not contain GNOME, so there is little reason to stay uptodate on the GTK+3 front when running the risk to break dependent packages.

Anyway, it means that you will not be getting a new handbrake package from me anymore. Perhaps when Slackware-current adopts a newer GTK+3 stack, I can reconsider. But even in that case, Slackware 14.1 and older will have to stick with handbrake 0.9.9 as the last release which will compile.

If time permits I will investigate the possibility of statically compiling GTK+3 plus several of other GTK+3 dependendants into the handbrake package. But that needs time which I do not have. You might already have guessed that – this blog has been pretty silent during the past month. Work related frustrations augmented by family issues, resulting in shifting priorities. To me, Slackware essentially is a hobby, it does not have to make me any money (even though some of you donated, for which my eternal gratefulness) and real life sometimes takes over.

If all you wanted to know was about handbrake then you can leave now.

So I’ll rant on if you cared to stay. Handbrake – big disappointment yesterday I must confess. I really liked that program. There’s also this general feeling of depression I have over the state of GNU/Linux, the Open Source community. my work on Slackware, and whether I can still make a difference. The effort I have put into Slackware, promoting the distro and Open Source in general, I’ve always enjoyed doing that. But the fun is eroding away, and there is this sense of stagnation. Things are moving perpendicular to the direction I want to go in. I am going to need some time for reflection around the end of 2014 and find a way to get invigorated again. Suggestions on a direction to take are welcome. There is not so much action around the distro currently. KDE 4 is about frozen, and KDE 5 is not mature. No joy there. LXQt seems to have jumped from Qt4 to Qt5, another step i do not like. Chromium dropped support for compiling NaCL support into 32-bit package – precisely the reason why I hate it that I need to depend on binary toolchains that are impossible to compile on Slackware. And what to do with my ARM port – I am looking at the mountain of work required to revive it. The list of recent frustrations is much longer than that, but you get the point… it all feels so pointless.

Depressed, you say? You bet! It must be an autumn feeling. Where’s the exit? Going to grab me a beer.

Eric

© 2024 Alien Pastures

Theme by Anders NorenUp ↑