0
J'essaie d'utiliser MP4Box pour concaténer plusieurs fichiers .mp4 dans un répertoire. La commande de base sous une forme simple ressemble à ceci:Le script shell MP4Box ne fonctionne pas
mp4box -cat 'Film.mp4' -cat 'Credits.mp4' -new Total.mp4
J'ai fait ce script, mais il ne fonctionne pas:
#!/bin/bash
files='*.mp4'; for i in $files; do MP4Box -cat "'"$i"'" -new Total.mp4; done
Il donne juste:
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.
Qu'est-ce mal avec mon expression?
Je me suis installé avec:
#!/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";
Pourquoi vous essayez de bourrer des guillemets simples autour du nom de fichier étendu? Tu ne les veux pas. Utilisez simplement "" $ i "' comme nom de fichier. –
Ajoutez 'set -x' avant votre boucle' for', et 'set + x' après' done'. (Débogage/trace de shell). Vous verrez que MP4box est en cours d'exécution pour chaque fichier dans '* .mp4' plutôt que d'ajouter une commande à exécuter en même temps. Bonne chance. – shellter
J'ai utilisé les guillemets simples parce que les noms de fichiers ont des espaces. – verlager