Hi,
I just read that link that Bryan posted here. That is an excellent link. But as Bryan said, that needs to be launchProcess-ed instead of transcode-ed. transcode is actually calling launchProcess internally. trancode CLI command is only doing some user input sanitise and than crafts the final command for the transcode command. But, on complex scenarios like yours, trancode CLI command is no longer helpful so you need to manually craft the launchProcess command. You will discover that this task is also kind of hard to accomplish because you need to escape all sorts of things. At this point you have 2 options to simplify the problem even further:
don’t use transcode CLI command but instead manually launch the avconv command[/*:pr5ch809]
create a shell script with that complex avconv. The only restriction is that in your *.sh script you have to execute avconv or evo-avconv with exec like this:
exec avconv (... parameters ...)
instead of
avconv (... parameters ...)
This will tell the unix OS that the avconv binary will replace the shell. After this shell script is created, you can simply use launchProcess to execute it.[/*:pr5ch809]
The big difference between those 2 methods is that the first is not "managed" while the second is. Managed means that when a problem occurs (one of the inputs goes away shutting down the transcoding), it will be automatically restarted. So, use method number 2 if possible. It is simple because you don’t have to escape anything in the CLI command and is encapsulated inside your simple/complex shell script.
Finally, you can execute the following CLI:
keepAlive will tell EMS to re-launch that script if it somehow fails. I’ve put that parameter in there for clarity, but if not specified, it is defaulted to 1 anyway
Best regards,
Andrei