Selur's Little Message Board
Hybrid on headless machines - Printable Version

+- Selur's Little Message Board (https://forum.selur.net)
+-- Forum: Hybrid - Support (https://forum.selur.net/forum-1.html)
+--- Forum: Problems & Questions (https://forum.selur.net/forum-3.html)
+--- Thread: Hybrid on headless machines (/thread-2224.html)



Hybrid on headless machines - benjiworld - 29.12.2021

Hello admins and everybody! Is it possible to run Hybrid without a GUI? It would be great to set-up Jobs (GUI controlled) and then finish them inside a detachable 
screen-session. I'm using it on an headless 32 cores server hosted remotely and this would be really a nice feature.
Or, alternatively, to save queued jobs as a list of commands that could be executed in bash scripts externally from Hybrid.
I've checked the produced job files, ffmpeg-related commands are clear, maybe even the CLEAN-UP lines are clear (simply deleting files)
but I'm not sure about what happens in other middle steps, for example when the software creates service-files.
Thank you so much for your support!!!


RE: Hybrid on headless machines - Selur - 29.12.2021

Hybrid isn't written to run on embedded Linux systems and it does not have code to convert the xml job lists into bash calls.
It might be possible to run Hybrid through something like xrpa or similar, but I have not tried it in ages. (I did this 6+ years ago once, but Hybrid and Qt itself changed a lot since then so no clue whether this is this possible.)

That said, depending on your scripting skills it shouldn't be too hard to write something to take a Hybrid jobs list and process it. Main logic in around the job processing is:
a. taking the next unprocessed sub-job or report finished job
b. replace the tool names with full paths
c. run the job
d. check that the job finished sucessfully, then go to a.
+ gimmicky stuff like progress indication, adjust bit rates on 2pass encoding, parallel job and sub-job processing, do xy after job/queue is finished,... but those might not be that important.

Depending on what you want to do in details, projects like:
ffx264: https://sourceforge.net/projects/ffx264/
ffhevc: https://sourceforge.net/projects/ffhevc/
see: https://forum.doom9.org/showthread.php?t=172558
might be more what you need.

Cu Selur


RE: Hybrid on headless machines - benjiworld - 29.12.2021

Thank you Admin for the quick feedback!
The output lines on Job window are very clear, external tools are referenced with all the parameters.
The CLEAN-UP activity is simply deleting that file, but I cannot understand what's the command Hybrid
uses to create intermediate files (for example between an ffmpeg command and maybe some mp4box command).
I'll try to investigate it better as soon as I'll have some time.
Thank you for the suggestion of the other external tools, unfortunately they cannot give some full control the way Hybrid does.
Anyway, congratulations for the optimal tool you've made, Hybrid is really the most advanced I've ever seen.

Thanks+Regards

Benji


RE: Hybrid on headless machines - Selur - 30.12.2021

Normally the command lines are simply connected by pipes "|".
(on MacOS there are special cases, but on Linux and Windows iirc. only anonymous pipes are used)

Cu Selur


RE: Hybrid on headless machines - benjiworld - 01.01.2022

Hello admin! Thank you for the support, and happy new year!!!
I've investigated the Job list and every command is clearly reported so it's not difficult to script.
But I don't know how the software produces the Quantization Parameter files, when needed it 
creates a .qp files with an hidden command not clearly exposed in the Job list.
The same thing happens with the chapter files .chp.
Could you please give indications about the internal commands used?
Thank you in advance!

Thanks+Rgds

Benji


RE: Hybrid on headless machines - Selur - 01.01.2022

I don't get it.
You simply need to create the files the jobs already contain the content,...
If you look at a single job and it's subjobs you can split it into the subjobs at
*?*
.

A "_create" custom quantizer (.qp) subjob then (for example) looks like:
2022-01-01@20_17_05_9810_03_create :*:  :*: 63 :*: WAITING :*: "E:\Temp\Folge 1_2022-01-01@20_17_05_9810_03.qp" ###  1 I -1
126 I -1
501 I -1
1251 I -1
1501 I -1 :*: E:\Temp :*: E:\Output :*: E:\Output\Folge 1.mp4 :*:  :*:  :*:  :*:  :*: G:\TestClips&Co\files\chapterTest\Folge 1.mkv
so in this case you would only need to create a file named "E:\Temp\Folge 1_2022-01-01@20_17_05_9810_03.qp"
1 I -1
126 I -1
501 I -1
1251 I -1
1501 I -1
as content.

A "_create" chapter (.chp) subjob would then (for example) look like:
2022-01-01@20_17_05_9810_08_create :*:  :*: 63 :*: WAITING :*: E:\Temp\2022-01-01@20_17_05_9810__08.chp ### CHAPTER01=00:00:00.000
CHAPTER01NAME=Chapter 1
CHAPTER02=00:00:05.000
CHAPTER02NAME=Chapter 2
CHAPTER03=00:00:20.000
CHAPTER03NAME=Chapter 3
CHAPTER04=00:00:50.000
CHAPTER04NAME=Chapter 4
CHAPTER05=00:01:00.000
CHAPTER05NAME=Chapter 5 :*: E:\Temp :*: E:\Output :*: E:\Output\Folge 1.mp4 :*:  :*:  :*:  :*:  :*: G:\TestClips&Co\files\chapterTest\Folge 1.mkv
so in this case you would need to create a file named "E:\Temp\2022-01-01@20_17_05_9810__08.chp" with:
CHAPTER01=00:00:00.000
CHAPTER01NAME=Chapter 1
CHAPTER02=00:00:05.000
CHAPTER02NAME=Chapter 2
CHAPTER03=00:00:20.000
CHAPTER03NAME=Chapter 3
CHAPTER04=00:00:50.000
CHAPTER04NAME=Chapter 4
CHAPTER05=00:01:00.000
CHAPTER05NAME=Chapter
as content.

Seems easy and straight forward to me.
All ..._create-subjobs are structured the same way.
There are no internal command used they are simple "create file with content"-subjobs.

Cu Selur