From f5d68740dac5a3dc97c8a23992ea52eb9efff770 Mon Sep 17 00:00:00 2001 From: Alex <15526962+AlexPresso@users.noreply.github.com> Date: Fri, 6 Oct 2023 23:34:48 +0200 Subject: [PATCH] Multitry ffmpeg (#100) * Add multi-try ffmpeg --- wrappers/ffmpeg.sh | 33 +++++++++++++++++++++++++++------ 1 file changed, 27 insertions(+), 6 deletions(-) diff --git a/wrappers/ffmpeg.sh b/wrappers/ffmpeg.sh index c9a1aad..90e3a34 100644 --- a/wrappers/ffmpeg.sh +++ b/wrappers/ffmpeg.sh @@ -33,7 +33,13 @@ handle_error() { log "ERROR" "An error occurred" newline errcode=1 - endprocess + kill_child +} + +kill_child() { + if [[ "$child" != "" ]]; then + kill "$child" + fi } endprocess() { @@ -44,12 +50,9 @@ endprocess() { cp "$stderrfile" "$stderrfile.prev" fi + kill_child rm -f "$stderrfile" - if [[ "$child" != "" ]]; then - kill "$child" - fi - exit $errcode } @@ -114,8 +117,26 @@ info "========================================[start ffmpeg $pid]" info "DEFAULT ARGS: $*" info "UPDATED ARGS: ${args[*]}" -"/var/packages/${ffmpeg_version}/target/bin/ffmpeg" "${args[@]}" <&0 2>> $stderrfile & +info "Trying with VideoStation's ffmpeg with fixed args..." +/var/packages/VideoStation/target/bin/ffmpeg.orig "${args[@]}" <&0 2>> $stderrfile & +child=$! +wait "$child" + +if [[ $errcode -eq 0 ]]; then + endprocess +fi + +info "Trying with VideoStation's ffmpeg with default args..." +/var/packages/VideoStation/target/bin/ffmpeg.orig "$@" <&0 2>> $stderrfile & +child=$! +wait "$child" +if [[ $errcode -eq 0 ]]; then + endprocess +fi + +info "Trying with SC's ffmpeg and fixed args..." +"/var/packages/${ffmpeg_version}/target/bin/ffmpeg" "${args[@]}" <&0 2>> $stderrfile & child=$! wait "$child"