Avidemux Forum

Participate => User interface and Usability => Topic started by: Who on November 19, 2020, 11:23:17 AM

Title: Version that runs on a "no desktop" server, just takes a project as input file
Post by: Who on November 19, 2020, 11:23:17 AM
Have you ever thought about creating a version of Avidemux that could be installed on a system such as a Linux server with no desktop or GUI, that could take a project file and filepath/filename as input and encode that file according to the project file?  The idea would be that you could start a project on your main system with a desktop, but once you have all the edits completed you could save it as a project file which you would then copy to your no-desktop no-GUI server.  You could then run the stripped-down, command-line-only version of Avidemux, giving that project filename and the location of the file to be modified (which will probably not be the same as is shown in the project file since you will have moved it to the server; even if the file itself is in the same physical location the relative path will be different on the other machine so you need a way to override what is in the project file, though I suppose you could just hand edit that project file).

What would be really nice is if you could add additional projects while the first is encoding.  The way I envision that could work is that instead of specifying a project file and a video filepath/name, you'd give it a directory path.  It would look for project files in that directory and take the oldest one and work on it, then when finished delete that project file and go onto the next oldest one.  So if you had maybe two or three videos to encode you could make a project file for each of them and copy them into that directory, and then go to bed or go to work or just go outside or whatever and they will hopefully all be done when you wake up or get back.

The one problem I see is that currently in Avidemux you don't actually specify the filename you want to save your edited video to in such a way that it can be included in the project file, and obviously you'd need to be able to do that for this to work, well unless you just let the stripped-down Avidemux use a temporary filename based on the time and date when the encoding begins since you can always rename it later.

Advantages would be:

- You could create multiple projects and then start them encoding before going to bed, going to work, etc.
- You could encode your projects on a faster or more lightly-used machine than your desktop system.
- You could even have different projects encoding simultaneously on two machines at once.
- If you could do all your edits independently of your encoding it would make the process more efficient because there would not be "down time" while you're in the editing phase.
- Probably some others I haven't thought of.

Anyway just a thought, I know I would find something like that useful but I am not certain how many others would.
Title: Re: Version that runs on a "no desktop" server, just takes a project as input file
Post by: eumagga0x2a on November 19, 2020, 08:06:24 PM
Quote from: Who on November 19, 2020, 11:23:17 AMHave you ever thought about creating a version of Avidemux that could be installed on a system such as a Linux server with no desktop or GUI, that could take a project file and filepath/filename as input and encode that file according to the project file?

What is wrong with the existing command-line app (avidemux3_cli)? It does exactly that. However, some functionality, especially HW acceleration, is implemented in a way which is tied to X11 being available and running.

Quote from: Who on November 19, 2020, 11:23:17 AMWhat would be really nice is if you could add additional projects while the first is encoding.

I strongly suspect that it is possible to run multiple instances of avidemux3_cli. The graphical application is not really designed for concurrent execution, if I am not mistaken.

Quote from: Who on November 19, 2020, 11:23:17 AMThe one problem I see is that currently in Avidemux you don't actually specify the filename you want to save your edited video to in such a way that it can be included in the project file

Avidemux currently uses a SQLite database to store output file names for usage with the Jobs GUI. There is no need to actually use this tool. You can add the corresponding function call (for string "out" containing the full path to the output file: "Avidemux().save(out)") to the project manually.
Title: Re: Version that runs on a "no desktop" server, just takes a project as input file
Post by: Who on November 19, 2020, 11:33:11 PM
Quote from: eumagga0x2a on November 19, 2020, 08:06:24 PM
Quote from: Who on November 19, 2020, 11:23:17 AMHave you ever thought about creating a version of Avidemux that could be installed on a system such as a Linux server with no desktop or GUI, that could take a project file and filepath/filename as input and encode that file according to the project file?

What is wrong with the existing command-line app (avidemux3_cli)? It does exactly that. However, some functionality, especially HW acceleration, is implemented in a way which is tied to X11 being available and running.

I was unaware of that, however the system I would want to use has no desktop and no GUI, therefore no X11.

Quote from: eumagga0x2a on November 19, 2020, 08:06:24 PM
Quote from: Who on November 19, 2020, 11:23:17 AMThe one problem I see is that currently in Avidemux you don't actually specify the filename you want to save your edited video to in such a way that it can be included in the project file

Avidemux currently uses a SQLite database to store output file names for usage with the Jobs GUI. There is no need to actually use this tool. You can add the corresponding function call (for string "out" containing the full path to the output file: "Avidemux().save(out)") to the project manually.

I don't really understand what you said there, but it probably doesn't matter anyway if you need to have X11 running for it to work.  Thanks for letting me know this exists, though.