0
Я пытаюсь использовать MP4Box для конкатенации нескольких файлов .mp4 в каталог. Основная команда в простой форме выглядит следующим образом:Сценарий оболочки MP4Box не работает
mp4box -cat 'Film.mp4' -cat 'Credits.mp4' -new Total.mp4
Я сделал этот сценарий, но он не работает:
#!/bin/bash
files='*.mp4'; for i in $files; do MP4Box -cat "'"$i"'" -new Total.mp4; done
Это просто дает:
Error appending '01_Introduction.mp4': Requested URL is not valid or cannot be found
Error - 2 input names specified, please check usage
Error - 2 input names specified, please check usage
Error - 2 input names specified, please check usage
Error - 2 input names specified, please check usage
Error - 2 input names specified, please check usage
Error - 2 input names specified, please check usage
... etc.
Что такое неправильно с моим выражением?
я поселилась с:
#!/bin/bash
rm Total.mp4; files='*.mp4'; for i in $files; do
echo " -cat " "'"$i"'" >>input.txt; done
file="input.txt"; name=$(cat "$file");
eval "MP4Box " $name " -new Total.mp4";
Почему вы пытаетесь засунуть одиночные кавычки вокруг имени расширенного файла? Вы не хотите их. Просто используйте '' $ i "' как имя файла. –
добавьте 'set -x' перед вашим циклом' for' и 'set + x' после' done'. (отладка/трассировка оболочки). Вы увидите, что MP4box выполняется для каждого файла в '* .mp4', а не для выполнения одной команды для выполнения в одно и то же время. Удачи. – shellter
Я использовал одинарные кавычки, потому что имена файлов имеют пробелы. – verlager