OVH Cloud OVH Cloud

Script ffmpeg ?

5 réponses
Avatar
ptilou
Bonjour,

J’ai ça comme erreur :
philippe@localhost:~/Vid̓©os> ./ffmpeg-eclatement-image.sh
./ffmpeg-eclatement-image.sh: ligne 16: erreur de syntaxe : fin de fichier pr̓©matur̓©e

Et j’ai fait ça comme script :
#!/bin/bash

function f_image-extrat {
ffmpeg -i "$0" -r 6 -f image2 -qscale 1 photo-%0d.jpg }
{
find ./ -iname \*.mov
echo "EOF"
} | {
while true; do
read -r i
test "$i" = "EOF" && break
f_image-extrat "$i"
done
}

J’ai essayé de «Â débuté » sur shellcheck, ce matin il me dit il manque une accolade, ce soir il me dit qui y a un problème avec un caractère échappatoire de ligne ( ça doit être le copier coller ?)
Et aussi j’aimerai impliquer un mkdir dont le nom serai $i et rediriger la sortie de f_image-extras vers le folder, c’est dans quelle ordre $0 pour mkdir et je m’es $1 pour ffmpeg ?

Accessoirement si il existe une biblio de script ?
Shellcheck, je comprend pas , d’un Mac il dit une chose, et d’un Linux il dit autre chose ?

Merci si quelqu’un peut m’éclairer


Ptilou

5 réponses

Avatar
Marc Chantreux
hello,
regarde du coté d'xargs, vraiment :)
tu devrais pouvoir écrire ton truc de la manière suivante:
f_image_extract () xargs -0 -P4 -n1 -IX
ffmpeg -i X -r 6 -f image2 -qscale 1 photo-%0d.jpg
find ./ -iname *.mov | f_image_extract
le bonus c'est que -P4 traite 4 videos simultanément (c'est l'hiver: on
se chauffe comme on peut)
marc
Avatar
ptilou
Le mardi 22 décembre 2020 Í  20:10:02 UTC+1, Marc Chantreux a écrit :
hello,
regarde du coté d'xargs, vraiment :)
tu devrais pouvoir écrire ton truc de la manière suivante:
f_image_extract () xargs -0 -P4 -n1 -IX
ffmpeg -i X -r 6 -f image2 -qscale 1 photo-%0d.jpg
find ./ -iname *.mov | f_image_extract
le bonus c'est que -P4 traite 4 videos simultanément (c'est l'hiver: on
se chauffe comme on peut)

find ./ -iname *.mov | xargs -0 -P4 -n1 -IX ffmpeg -i X -r 6 -f image2 -qscale 1 photo-%0d.jpg
Me semble une solution mieux fonctionner ? Bien que je ne comprend pas le -IX , après -n1
Du coup je rame ....
Alors la ligne comme cela fonctionne, mais pas dans le script, pour quelle raison, histoire que j’avance. ...
Ah et le script fonctionne
#!/bin/bash
function f_image-fusion {
convert "$1" -resize 40% -colorspace Gray "${1%}gray.jpg"
}
{
find ./ -iname *.jpg
echo "EOF"
} | {
while true; do
read -r i;
test "$i" = "EOF" && break;
f_image-fusion "$i";
done
}
Et donc pourquoi pour la fonction le script fonctionne et pourquoi pour ffmpeg non, alors que la ligne seul dans le même batch fonctionne ?
Si je remplace convert comme ci-dessus par mkdir il crée un dosssier, et donc comment imbriquer plusieurs commande batch , j’avais essayé de les mettre Í  la suite par plusieur opérateur sous Ubuntu 16.04 soit cela se plante, soit cela n’excuse que la première commande , comme première idée est erronée et. Que l’hiver les veux se chauffe comme il peut dit moi dans quel livre chercher ?
Merci

Ptilou
Avatar
Marc Chantreux
On Tue, Dec 22, 2020 at 08:44:48PM -0800, ptilou wrote:
Me semble une solution mieux fonctionner ? Bien que je ne comprend pas le -IX , après -n1
Du coup je rame ....

tu sais:
* tu as droit de lire le man: c'est super instructif
* tu peux jouer avec des petits exemples. en voilÍ 
seq 20 | xargs -n5
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
seq 20 | xargs -n10
1 2 3 4 5 6 7 8 9 10
11 12 13 14 15 16 17 18 19 20
seq 5 | xargs -IX echo cette fois ca faut X
cette fois ca faut 1
cette fois ca faut 2
cette fois ca faut 3
cette fois ca faut 4
cette fois ca faut 5
seq 5 | xargs -IY echo cette fois ca faut Y
cette fois ca faut 1
cette fois ca faut 2
cette fois ca faut 3
cette fois ca faut 4
cette fois ca faut 5
apres si tu tiens absolument a tapper sur de mauvaises pratiques:
function f_image-fusion {
convert "$1" -resize 40% -colorspace Gray "${1%}gray.jpg"
}
find ton truc | while read -r i; do
f_image_fusion "$i"
done;
marc
Avatar
ptilou
Slt,
Le mercredi 23 décembre 2020 Í  09:40:03 UTC+1, Marc Chantreux a écrit :
On Tue, Dec 22, 2020 at 08:44:48PM -0800, ptilou wrote:
Me semble une solution mieux fonctionner ? Bien que je ne comprend pas le -IX , après -n1
Du coup je rame ....
tu sais:
* tu as droit de lire le man: c'est super instructif
* tu peux jouer avec des petits exemples. en voilÍ 

Pas trop je suis étudiants et lÍ  fais une semaine que j’ai pas bossé, elle est pas encore bloqué ( la cb)
Ma question est pourquoi la ligne fonctionne en direct dans le batsh, et pas avec le script alors qu’une autre fonctionne (convert) ?
Une fois que tu me dis ça j’avance réellement , le pourquoi c’est une mauvaise solution vient après ....
seq 20 | xargs -n5
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
seq 20 | xargs -n10
1 2 3 4 5 6 7 8 9 10
11 12 13 14 15 16 17 18 19 20
seq 5 | xargs -IX echo cette fois ca faut X
cette fois ca faut 1
cette fois ca faut 2
cette fois ca faut 3
cette fois ca faut 4
cette fois ca faut 5
seq 5 | xargs -IY echo cette fois ca faut Y
cette fois ca faut 1
cette fois ca faut 2
cette fois ca faut 3
cette fois ca faut 4
cette fois ca faut 5
apres si tu tiens absolument a tapper sur de mauvaises pratiques:
function f_image-fusion {
convert "$1" -resize 40% -colorspace Gray "${1%}gray.jpg"
}
find ton truc | while read -r i; do
f_image_fusion "$i"
done;

Je suppose que tu veux justifier soit les cours que tu donne soit ceux que tu a pris, si je copie cela ne fonctionne pas or je te demande comment imbriquer, je t’ais dit que j’ai essayé entre autre &&, et donc pourquoi ?
Y a aussi un autre truc pourquoi constamment même quand je discute d’autre domaine y a une ou deux personne qui me répondent ?
Donc j’avais dit Í  un Parinuxiens’ que ça sert Í  rien d’administrer ses propres DNS, a un Windosiens qui cherche des clés usb étanches pour se doucher avec, et j’ai remarqué que la susceptibilité se hisse au sommet des priorités de la science, donc comment on vérifie les DNS, puisque ils sont redirigé automatiquement par le soft de la box ?
Après c’est aimable de me répondre, j’attend d’avancer, et donc quand quelqu’un me pose une question j’évite de le renvoyer a des considération génétique un genre de calotins ...
Ah je me suis rendu compte quͺn imbecile vient me changer mes support optique et mes ses désobligeance numerique, tiens j’ai peut-être trouvé une solution a la BNF, les magazines avec dvd, sont consultables !
(C’est le partage de mon savoir, bon il est réservé au débutant, il me semble quÍ­l y a un dvd avec 7000 script cést anglais, mais comme c’est Gpl, pourquoi c’est pas partagé ?)
Y a aussi une dernière chose quand tu me dis me dis faut pratiquer, c’est vous au CNIT, qui m’avait dit c’est mieux Debian on va d’aider, je ne peux pas participer parce que tu ne m’aide pas, et pour un script, dit moi ou tu veux en venir ?

Ptilou
Avatar
ptilou
Slt,
On m'a dit vlc, ffmppeg c'est de la merde, pourquoi ?
Sinon j'essaye d'installer NVIDIA via Modprobe, le man et le help, disent a, la commande dit not found, c'est toi qui t'ennuit ??
La prochaine fois enleve le de la doc !
Le mercredi 23 décembre 2020 Í  09:40:03 UTC+1, Marc Chantreux a écrit :
On Tue, Dec 22, 2020 at 08:44:48PM -0800, ptilou wrote:
Me semble une solution mieux fonctionner ? Bien que je ne comprend pas le -IX , après -n1
Du coup je rame ....
tu sais:
* tu as droit de lire le man: c'est super instructif
* tu peux jouer avec des petits exemples. en voilÍ 
seq 20 | xargs -n5
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
seq 20 | xargs -n10
1 2 3 4 5 6 7 8 9 10
11 12 13 14 15 16 17 18 19 20
seq 5 | xargs -IX echo cette fois ca faut X
cette fois ca faut 1
cette fois ca faut 2
cette fois ca faut 3
cette fois ca faut 4
cette fois ca faut 5
seq 5 | xargs -IY echo cette fois ca faut Y
cette fois ca faut 1
cette fois ca faut 2
cette fois ca faut 3
cette fois ca faut 4
cette fois ca faut 5
apres si tu tiens absolument a tapper sur de mauvaises pratiques:
function f_image-fusion {
convert "$1" -resize 40% -colorspace Gray "${1%}gray.jpg"
}
find ton truc | while read -r i; do
f_image_fusion "$i"
done;
marc

--
ptilou