Você precisará dissecar este script um pouco para ver por que ele está falhando. Essa não é uma tarefa tão difícil, já que você já tem o código-fonte. Eu começaria com a confirmação de que os comandos na implementação da função, get_video_duration_in_seconds_from_file()
estão corretos. Especificamente quando eu executei este comando em alguns arquivos .mp4
que eu tinha, ele não retornaria nada:
__DURATION_HMS=$(ffmpeg -i "$__FILE" 2>&1 | grep Duration | \
grep '\d\d:\d\d:\d\d.\d\d' -o)
NOTA: esta é a linha 54.
Portanto, sem este valor, este seria um bom motivo pelo qual as chamadas que vêm depois dele para a função parse_duration_info()
estão retornando a mensagem de erro.
De acordo com os comentários no script original, deve haver dois argumentos para parse_duration_info()
.
# arg1: duration in format 01:23:45.67
# arg2: offset for group 1 gives hours, 2 gives minutes,
# 3 gives seconds, 4 gives milliseconds
Mais saída de depuração
Além disso, você pode ativar a saída mais detalhada desse script adicionando essa linha logo após o shebang ( #!/bin/bash
).
set +x
Se você ativar a verbosidade total em todo o script, poderá ativá-lo seletivamente em torno de determinados blocos de código, como:
parse_duration_info() {
set +x
... body of function ...
set -x
}