Universal GUI Input > Output

Roland57 Membre non connecté
-
- Voir le profil du membre Roland57
- Inscrit le : 08/02/2020
- Site internet
- Groupes :
Reprise du message précédent
Ah tiens, je ne connaissais pas unoconv.Pour le logiciel lui-même (FF-Multi-Converter), j'ai pu l'exécuter du premier coup sans erreur et sans rien avoir à installer.
Code TEXT :
[roland@localhost ff-multi-converter (master)]$ ./launcher

steven Membre non connecté
-
- Voir le profil du membre steven
- Inscrit le : 18/05/2018
Roland57 :
@steven
Ah mais oui, on dirait que c'est exactement ça. Merci, je ne connaissais pas ce logiciel. Je vais y jeter un œil.
https://github.com/ilstam/FF-Multi-Converter
Ah mais oui, on dirait que c'est exactement ça. Merci, je ne connaissais pas ce logiciel. Je vais y jeter un œil.
https://github.com/ilstam/FF-Multi-Converter
Woaw, salut roland

Je n'ai pas dis "exactement" moi ?!?,
Mais :"dans le genre"...
c'était une question que je me posais juste..

No Comment ...
Merci de ne pas 'rebondir' sur mes post's
Censor => 2025





Visiteur
Visiteur
Roland57 :
Dans Lazarus, ouvrir le projet demo.lpi, puis construire
demo.lpi ? Je ne vois ce fichier nulle part :(
steven :
Mais n'est ce pas ce que fait un peu, (dans le genre), ff multiconverter ???
Est-ce que ce gui est seulement pour ffmpeg ? Je suis intéressé par l'encodeur nero et d'autres encodeurs.
J'ai découvert que dans le convertisseur deadbeef, il est possible de créer des presets customs.
L'application utilise gtk2, prend en charge le traitement par lots et permet de spécifier n'importe quel encodeur. Mais d'abord il décode en wav dans /tmp. Ainsi, deadbeed ne convient que pour la conversion wav > xx.

Roland57 Membre non connecté
-
- Voir le profil du membre Roland57
- Inscrit le : 08/02/2020
- Site internet
- Groupes :
artenaki :
demo.lpi ? Je ne vois ce fichier nulle part :(
J'avais mal écrit le lien vers mon code source, et on ne le voyait pas. Je ne m'en suis pas aperçu, quoique j'aie relu mon message dix fois.

Voici donc le ZIP contenant le projet Lazarus : ui-230212.zip
Édité par Roland57 Le 13/02/2023 à 14h48

Visiteur
Visiteur
J'ai compilé ton app, merci !
L'application fonctionne.
Mais des erreurs se produisent s'il y a des espaces dans les chemins des fichiers (entrée et sortie) ou dans leurs noms.
J'ai essayé d'ajouter des guillemets à "%s" dans le code source, mais cela n'a pas aidé et a produit des résultats étranges, selon les cases cochées (Shell, Redirect). Les guillemets semblent aider dans certaines conditions, mais la progression de l'exécution disparaît.
Je ne sais pas comment réparer ça.
Au fait, pourquoi %s est utilisé pour les fichiers d'entrée et de sortie ?
L'application est très utile! Bien que le progress (en bas) consomme quelques % de cpu (processus du serveur Xorg). Mais je pense que c'est inévitable.

Visiteur
Visiteur


Roland57 Membre non connecté
-
- Voir le profil du membre Roland57
- Inscrit le : 08/02/2020
- Site internet
- Groupes :
Pour le problème des espaces, ajouter des doubles guillemets comme tu l'as fait est une bonne idée.
Code PASCAL :
'ffmpeg -i "%s" -vn -ar 44100 -ac 2 -b:a 192k "%s"'
Mais alors il faut utiliser des guillemets simples ici :
Code PASCAL :
EDCommand.Text := Format(FCommandPattern, [EDInput.Text, EDOutput.Text]); if CBShell.Checked then EDCommand.Text := Concat( FindDefaultExecutablePath('sh'), ' -c "', // <--- EDCommand.Text, ' ', IfThen(CBRedirectErr.Checked, '2>&1', ''), '"' // <--- );
Ce qui donne :
Code PASCAL :
EDCommand.Text := Format(FCommandPattern, [EDInput.Text, EDOutput.Text]); if CBShell.Checked then EDCommand.Text := Concat( FindDefaultExecutablePath('sh'), ' -c ''', // <--- EDCommand.Text, ' ', IfThen(CBRedirectErr.Checked, '2>&1', ''), '''' // <--- );
De cette façon, la commande ressemblera à ça :
Code BASH :
sh -c 'ffmpeg -i "ouverture.wav" -vn -ar 44100 -ac 2 -b:a 192k "ouverture.mp3"'
et il n'y aura plus d'erreur.
Si tu ne tiens à voir le progrès du traitement, on peut ajouter une case à cocher (TCheckBox) pour l'activer ou le désactiver.
Content que l'application te plaise.


Roland57 Membre non connecté
-
- Voir le profil du membre Roland57
- Inscrit le : 08/02/2020
- Site internet
- Groupes :
Code BASH :
sh -c "ffmpeg -i 'ouverture.wav' -vn -ar 44100 -ac 2 -b:a 192k 'ouverture.mp3'" sh -c 'ffmpeg -i "ouverture.wav" -vn -ar 44100 -ac 2 -b:a 192k "ouverture.mp3"'
La seule subtilité à connaître, c'est que pour écrire un guillemet simple dans une chaîne de caractères en Pascal, il faut le doubler (comme je l'ai montré plus haut).
Édité par Roland57 Le 13/02/2023 à 21h09

Visiteur
Visiteur
Mais maintenant les caractères ' et " dans les noms et les chemins sont interdits (ils empêchent la conversion de se faire).
Mais les guillemets dans les noms de fichiers sont rares. L'exception est '. Mais l'utilisation de ' est une mauvaise idée car elle nécessite un escape dans bash. Je supprime toujours ces guillemets simples des noms de fichiers.
Roland57 J'aimerais publier ton code sur mon github et te citer comme auteur.

Roland57 Membre non connecté
-
- Voir le profil du membre Roland57
- Inscrit le : 08/02/2020
- Site internet
- Groupes :
artenaki :
Je supprime toujours ces guillemets simples des noms de fichiers.
Pour ma part je supprime même les espaces. J'ai un petit programme pour renommer massivement des fichiers. Peut-être nous en parlerons une autre fois.
artenaki :
J'aimerais publier ton code sur mon github et te citer comme auteur.
Oh ce n'est pas nécessaire de me citer comme auteur. Par contre donne-nous le lien de ton github, pour que nous puissions suivre l'évolution du projet.

P.-S. Si tu veux vraiment gérer le cas des guillemets simples dans les noms de fichier, ce n'est pas très difficile. Mais si tu veux que le programme fonctionne aussi sous Windows, il faudra tenir compte des particularités de chaque OS. D'ailleurs je n'ai fait pas d'essais sous Windows pour voir si les règles pour les guillemets sont les mêmes... De toute façon, pour le moment le programme ne peut pas fonctionner sous Windows puisqu'il appelle sh.
Édité par Roland57 Le 14/02/2023 à 18h17

Roland57 Membre non connecté
-
- Voir le profil du membre Roland57
- Inscrit le : 08/02/2020
- Site internet
- Groupes :
Roland57 :
P.-S. Si tu veux vraiment gérer le cas des guillemets simples dans les noms de fichier, ce n'est pas très difficile.
Peut-être pas si facile que ça en fait.

Dans un script cette solution fonctionne (pour un fichier nommé ouvertur'e.wav, à convertir en ouvertur'e.mp3) :
Code BASH :
sh -c 'ffmpeg -i "ouvertur'\''e.wav" -vn -ar 44100 -ac 2 -b:a 192k "ouvertur'\''e.mp3"'
Mais si je fais faire la même modification par le programme, ça ne marche pas, je ne sais pas pourquoi.
Bon, est-ce que ça vaut le coup de se casser la tête là-dessus ? Et de compliquer le code pour gérer un cas marginal ?
Une autre solution, peut-être préférable, serait de contrôler les noms de fichiers entrés par l'utilisateur et de refuser ceux qui présentent certaines particularités. Ou alors d'intégrer une fonction de renommage automatique. On peut même imaginer de passer par des fichiers temporaires et de restituer les vrais noms après le traitement...
Je te laisse réfléchir à la solution que tu préfères.

Édité par Roland57 Le 14/02/2023 à 19h04

Visiteur
Visiteur
https://github.com/artenax/ui
Sous Windows, le programme compile, mais il ne convertit pas vraiment.
Au fait, j'ai vérifié, j'ai beaucoup de fichiers avec des guillemets simples. Oh bien, je ne peux rien faire d'autre que de les renommer.
Mais ce que j'ai maintenant est déjà très bien.

Roland57 Membre non connecté
-
- Voir le profil du membre Roland57
- Inscrit le : 08/02/2020
- Site internet
- Groupes :

ui-230214.zip
Oui, bien sûr, on n'apprend pas à programmer du jour au lendemain. Moi, ça ne me dérange pas de continuer à améliorer ce projet avec toi. Il y a de petites améliorations que j'ai en tête.

Je pourrais créer un fork de ton projet et proposer des modifications, comme cela se fait.
Pour que l'application fonctionne sous Windows, il n'y aura pas grand chose à changer. Là, avec l'option shell désactivée, ça devrait déjà marcher. Peut-être qu'il faudra ajouter l'extension ffmpeg.exe.
Pour le moment, je n'ai pas de machine Windows sous la main, donc je ne peux pas essayer.
À plus !
Édité par Roland57 Le 14/02/2023 à 22h40

Visiteur
Visiteur
Mais je ne sais pas comment mettre à jour github :(
Ton fork serait utile.
Édité par Visiteur Le 15/02/2023 à 17h59

Roland57 Membre non connecté
-
- Voir le profil du membre Roland57
- Inscrit le : 08/02/2020
- Site internet
- Groupes :
artenaki :
Je confirme. Les guillemets simples fonctionnent maintenant.
Ah, parfait !
artenaki :
D'accord, je m'en charge. Tu n'auras qu'à accepter le pull request.
Pour la suite, ce serait bien de renommer les fichiers, parce que demo c'est pas génial. As-tu une idée pour le nom de l'application ? Ou bien, UI (Universal Interface), ça te convient ?
Si tu vois d'autres améliorations souhaitables, n'hésite pas à me le dire.

Édité par Roland57 Le 15/02/2023 à 18h33

Roland57 Membre non connecté
-
- Voir le profil du membre Roland57
- Inscrit le : 08/02/2020
- Site internet
- Groupes :
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie