News:

--

Main Menu

appImage and Avidemux jobs queue

Started by Aardmark, September 27, 2020, 02:08:34 AM

Previous topic - Next topic

Aardmark

Ubuntu 20.04 64-bit Avidemux 2.7.6 [the 'appimage' version]

First time user of Avidemux, but decades of experience with VirtualDub and VDMod.

I found the 'Queue' button first, and added a few jobs to it.

Now, I can't see the job list. :^D

In the flavor of appimage-packaged Avidemux I have, "File->Show Joblist" Does Not Exist. 8^o  Ctrl-J does not show a joblist either.

I gather[1] that there may be a javascript .js file (or more) lying about that contain(s) the jobs, but even if found I would not know how to launch it.

[1] http://www.avidemux.org/admWiki/doku.php?id=using:joblist#show_the_joblist

eumagga0x2a

This documentation, being a decade out of date, is not valid for Avidemux 2.6 and later. Displaying and managing job list is the task of Jobs GUI. It is not possible to run this tool from appImage (even if it is present in the image), you need either to extract appImage* or build Avidemux from source (trivial on Ubuntu) and use run_jobs_template.sh for automatic setup of portable mode without installing Avidemux.

By all means, for better experience, please use the latest nightly rather than release.

*) Run it and copy the contents of /tmp/.mount* directory elsewhere, it is possible to run avidemux3_jobs_qt5 in portable mode with the option --portable when the usr/lib and usr/lib/qt5 directories within the image tree are prepended to LD_LIBRARY_PATH, see appImage/AppRun:17).

Aardmark

Quote from: eumagga0x2a on September 27, 2020, 11:46:14 AM... you need either to extract appImage*
or build Avidemux from source (trivial on Ubuntu)
and use run_jobs_template.sh for
automatic setup of portable mode without installing Avidemux.

By all means, for better experience, please use the latest nightly rather than release.

@eumagga0x2a

I had noticed that during the appImage run, a "/tmp/.mount*/" is created, thanks. (I suppose an appImage is actually an ephemeral install with its own personal opt/ and usr/ directories which disappear when it exits.)

I got the run_jobs_template.sh script and made the nec. changes to the variables, but I also had to edit one of the definitions to remove the string "install" in order for it to find the ADM_coreConfig.h file it was complaining about.  Even so, it finally dumped with an error:

"This application failed to start because no Qt platform plugin could be initialized."



I want to pursue the "trivial" ;^) compilation approach--even though I suspect the equivalent of an Olympic ski jumper is telling me just push off down the slope and "What could go wrong?"

So far not finding the Idiot's Guide to Compiling Avidemux for/on Ubuntu, but did find this:

https://www.avidemux.org/admWiki/doku.php?id=build:compiling_avidemux

Aardmark

% automake1.9 g++ gcc liba52-0.7.4
liba52-0.7.4-dev libfaac-dev libfaad-dev
libstdc++6 libgtk2.0-dev libglib2.0-dev
libsdl-console-dev libxv-dev pkg-config
liblame-dev libmad0-dev libvorbis-dev
libxml2-dev libxvidcore4-dev subversion

E: Unable to locate package automake1.9
E: Unable to locate package liblame-dev
E: Unable to locate package libxvidcore4-dev

(automake is already at 1.16 in Ubuntu 20.04; liblame and libxvid are still to be determined)

eumagga0x2a

Quote from: Aardmark on September 29, 2020, 10:51:09 PMSo far not finding the Idiot's Guide to Compiling Avidemux for/on Ubuntu, but did find this:

https://www.avidemux.org/admWiki/doku.php?id=build:compiling_avidemux



No-no-no-no, please forget that that wiki exists.

==> https://avidemux.org/smif/index.php/topic,18371.0.html

Please read the entire topic as the necessary information is not bundled in a single post, unfortunately.

Quote from: Aardmark on September 29, 2020, 10:51:09 PMI got the run_jobs_template.sh script and made the nec. changes to the variables, but I also had to edit one of the definitions to remove the string "install" in order for it to find the ADM_coreConfig.h file it was complaining about.  Even so, it finally dumped with an error:

"This application failed to start because no Qt platform plugin could be initialized."



These convenience scripts were created to run freshly compiled builds without installation, not for the directory structure of the official appImage. The error message means that LD_LIBRARY_PATH is wrong. I am able to run Jobs GUI from appImage e.g. by copying the "usr" directory to /tmp and using

#!/bin/bash
# PREFIX must match the prefix passed to bootStrap.bash when compiling Avidemux,
# default when no prefix specified: /usr
PREFIX="/usr"

HERE="/tmp/${PREFIX}"
LIBDIR=lib

export LD_LIBRARY_PATH="${HERE}/${LIBDIR}:${HERE}/${LIBDIR}/qt5:${LD_LIBRARY_PATH}"
"${HERE}/bin/avidemux3_jobs_qt5" --portable

as wrapper script.

Aardmark

Okay, I had enough energy to work on a trivial install, but it's far from that. I'll stick with the appimage and check back periodically.

eumagga0x2a

Well, here is a summary of that topic:

1. Install git (skip when already installed)

sudo apt-get update && sudo apt-get install git
2. Obtain Avidemux source:

cd ~ && git clone https://github.com/mean00/avidemux2.git
cd avidemux2
git submodule update --init --recursive

(all following commands in the same console / in the same terminal)

3. Install build dependencies:

bash createDebFromSourceUbuntu.bash --deps-only
4. Build Avidemux:

bash bootStrap.bash
5. Run Avidemux without installation:

bash run_avidemux_template.sh
For better comfort, copy run_avidemux_template.sh to a directory listed in your $PATH as printed by

echo $PATH
(depending on the configuration of your shell, it may also include ~/bin/ which is very handy for placing executables and scripts which don't need to be accessible for other users, the folder doesn't exist by default and will be added to $PATH upon logout and a new login after it has been created by the user)

and make it executable, e.g.:

cp run_avidemux_template.sh ~/bin/avidemux-gui && chmod +x ~/bin/avidemux-gui
From now on, executing

avidemux-gui
in terminal will launch the application.

The same applies to Jobs GUI, just replace "run_avidemux_template.sh" with "run_jobs_template.sh" (and "~/bin/avidemux-gui" with e.g. "~/bin/avidemux-jobs".

db-inf

Quote from: eumagga0x2a on September 27, 2020, 11:46:14 AMDisplaying and managing job list is the task of Jobs GUI. It is not possible to run this tool from appImage.

In fact it is rather trivial to get avidemux jobs and even cli, if you don't exclude that from the build, to run from an appImage, if you use the newer Type 2 appImage (packaged in a squashfs image) instead of the deprecated Type 1 (packaged in an iso image). I have just managed to get that running yesterday, with a build on an Ubuntu Bionic system.

I am new to all of this, but wil ltry to prepare a pull request for it on mean00's github, if that is the right place.


eumagga0x2a

It would be great if it extends the work put into https://github.com/mean00/avidemux2/blob/master/makeAppImageBusterMinimal.sh which might become the base for a next-gen appImage. It uses a newer runtime.

db-inf

That makes it a lot easier, cause it seems to already contain what is needed. Only AppRunBuster seems to need a small modification, and an instruction for the user is also needed, though I have no suggestion as to where that instruction should go, when distributing as an appImage.

I created a pull request for this, based on my work to get a working AppImage from a build in Xubuntu Bionic.

However, being quite a newbie in linux, and having studied and worked 2 weeks to compile avidemux (my first big compilation in linux), I am now reluctant to try and install Debian Buster in a VM, just to test this proven code there as well.

eumagga0x2a

Thank you very much, I'll check the changes in a couple of days. The benefits of having cli is very limited as the cli version of Avidemux lacks a lot of features compared to the graphical one (primarily HW accel stuff), but having an easy way to launch the Jobs GUI which in turn would be able to launch the app, either qt5 or cli, is indeed a boon.

db-inf

I know the _cli is less capable; still I also include it as choice, because the --nogui option does not hide the gui.

eumagga0x2a

"--nogui" to suppress dialogs which require user interaction (actually a switch to enable silent mode) is surely a case of confusing naming. "--silent" would have been better.

alexboss

Quote from: eumagga0x2a on September 27, 2020, 11:46:14 AMThis documentation, being a decade out of date, is not valid for Avidemux 2.6 and later. Displaying and managing job list is the task of Jobs GUI. It is not possible to run this tool from appImage (even if it is present in the image), you need either to extract appImage* or build Avidemux from source (trivial on Ubuntu) and use run_jobs_template.sh for automatic setup of portable mode without installing Avidemux.

By all means, for better experience, please use the latest nightly rather than release.

*) Run it and copy the contents of /tmp/.mount* directory elsewhere, it is possible to run avidemux3_jobs_qt5 in portable mode with the option --portable when the usr/lib and usr/lib/qt5 directories within the image tree are prepended to LD_LIBRARY_PATH, see appImage/AppRun:17).

Thanks thanks thanks for these instructions.

I'm using Ubuntu 22 and AviDemux AppImage and indeed couldn't have the jobs work until I found this topic.

Now I solved it with these instructions.

Basically:
  • Mount the AppImage
  • Go to the mounted image and copy the content of /usr to /tmp
  • Add executions permissions for the files in /tmp/usr/
  • Run this script and enjoy having AviDemux running your jobs at night :)
    #!/bin/bash
    # PREFIX must match the prefix passed to bootStrap.bash when compiling Avidemux,
    # default when no prefix specified: /usr
    PREFIX="/usr"

    HERE="/tmp/${PREFIX}"
    LIBDIR=lib

    export LD_LIBRARY_PATH="${HERE}/${LIBDIR}:${HERE}/${LIBDIR}/qt5:${LD_LIBRARY_PATH}"
    "${HERE}/bin/avidemux3_jobs_qt5" --portable

Thanks.

Alexandre

eumagga0x2a

Quote from: alexboss on August 04, 2022, 08:50:41 AMNow I solved it with these instructions.

Working but obsolete, please forget them. Create a symlink to appImage with symlink filename ending in _jobs to launch Jobs GUI from Avidemux appImage. You must use an appImage for not very ancient Linux disitributions from here or the release (but nightlies are so much better) for that to work.