Рейтинг:0

Аргументы от сценария bash к ffprobe интерпретируются неправильно

флаг pk

У меня есть следующая функция в сценарии bash. Когда я его выполняю, я всегда получаю возвращаемую строку из команды ffprobe, содержащую ошибку в виде:

Аргумент «-» указан как имя входного файла, но «/media/Testing/Sorted/badfile.mp4» уже указано.

Я попытался переместить аргументы в ffprobe внутри кавычек для имени файла (не решает проблему). Я попытался переместить аргументы в массив и передать «${array[@]}» (не решает проблему). Очевидно, я упускаю здесь что-то ослепительно очевидное.Где я ошибаюсь?

# ПроцессВидео
#
# Принимает имя входного файла (предположительно для видеофайла, но функция не
# на самом деле попытаться проверить это), и передает это ffprobe, чтобы сделать некоторые основные 
# обработка видеопотока. Мы устанавливаем флаг, чтобы любая обнаруженная ошибка
# заставить ffmpeg выйти с установленным кодом ошибки. Если ffmpeg устанавливает код ошибки, мы
# записать имя файла в файл.
#
# ProcessVideo <путь к видео>

Процессвидео()
{
    местный vfn=$1
    локальный ec=0
    локальный вывод
    echo "Проверка видео $vfn"
    выход=$(ffprobe -предупреждение уровня журнала "$vfn" - 2>&1)
    эк=$?
# если ((эк > 0))
#   тогда
# echo "Ошибка выхода $ec $vfn"
# LogErr "Ошибка выхода $ec $vfn"
#фи
# если [[ "$oput" == *"moov atom"* ]]
    если [[ -n "$oput" ]]
    тогда
        echo "Строка ошибки $vfn"
        LogErr "Строка ошибки $vfn"
        LogErr "$ вывод"
    фи
}

Обратите внимание, что LogErr в приведенном выше скрипте — это еще одна функция — все, что она делает, — это берет переданную строку и записывает ее в указанный файл журнала. Если кто-то считает, что это имеет отношение к проблеме, я опубликую это, но я так не думаю.

флаг hr
Вы уверены, что проблема связана с аргументами, * переданными* функции, а не с жестко запрограммированным `-`, который у вас есть в `$(ffprobe -loglevel warning "$vfn" - 2>&1)`?
Cyrus avatar
флаг cn
Должен ли ffprobe читать из "$vfn" или из стандартного ввода?
Tracy avatar
флаг pk
Спасибо вам обоим за указание на ошибку - я сосредоточился на неправильном «-». Вот что я получаю за то, что адаптирую сценарий под другую цель, не переписывая полностью соответствующие разделы.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.