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
Voilà, tu n'as plus qu'à accepter le pull request.
Visiteur
Visiteur
Je comprends que cela puisse être difficile à mettre en œuvre, mais il serait plus pratique que les presets puissent être édités dans les fichiers de configuration (ou même dans l'interface graphique elle-même) plutôt que dans le code source.
Enfin, et une version windows (ce n'est pas vraiment important).

Roland57 Membre non connecté
-
- Voir le profil du membre Roland57
- Inscrit le : 08/02/2020
- Site internet
- Groupes :
artenaki :
En gros, tout me convient (nom de l'application, fichiers).
Je voudrais quand même renommer les fichiers si ça ne te dérange pas. demo c'était un nom provisoire.
artenaki :
Je comprends que cela puisse être difficile à mettre en œuvre, mais il serait plus pratique que les presets puissent être édités dans les fichiers de configuration (ou même dans l'interface graphique elle-même) plutôt que dans le code source.
Oui, j'y pensais. Je vais m'en occuper. Non, ce n'est pas difficile.
artenaki :
Enfin, et une version windows (ce n'est pas vraiment important).
Là je n'ai pas de machine Windows sous la main. Ce sera seulement à la rentrée, dans dix jours.
Édité par Roland57 Le 16/02/2023 à 12h17

Visiteur
Visiteur
Mais bien sûr, tu développe l'application comme tu le souhaites dans ton depot. Je vais laisser le mien inchangé pour l'instant.
Je considère généralement les dépôts comme des trophées. C'est-à-dire que je n'aime pas les mettre à jour


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

Au fait, quand il y a un état du projet dont tu es satisfait, tu peux créer un tag.
Concernant les problèmes de vue, si tu veux on pourrait agrandir un peu les textes des différents composants.
À bientôt !
Édité par Roland57 Le 16/02/2023 à 17h15

Roland57 Membre non connecté
-
- Voir le profil du membre Roland57
- Inscrit le : 08/02/2020
- Site internet
- Groupes :
artenaki :
... il serait plus pratique que les presets puissent être édités dans les fichiers de configuration (ou même dans l'interface graphique elle-même) plutôt que dans le code source.
Voici les deux solutions auxquelles je pense pour le moment.
1° Un fichier JSON :
Code TEXT :
[ { "description" : "Convert WAV to AAC q0.98 using Nero", "command" : "nero -q 0.98 -lc -if \"%s\" -of \"%s\"" }, { "description" : "Convert WAV to AAC q0.99 using Nero", "command" : "nero -q 0.99 -lc -if \"%s\" -of \"%s\"" } ]
2° Un simple fichier texte :
Code TEXT :
Convert WAV to AAC q0.98 using Nero nero -q 0.98 -lc -if "%s" -of "%s" Convert WAV to AAC q0.99 using Nero nero -q 0.99 -lc -if "%s" -of "%s"
Dis-moi si l'une de ces solutions te plaît. (Si tu as une autre idée, je suis preneur.)
Autrement on pourrait aussi mettre les commandes dans un fichier inclus dans le projet :
Code PASCAL :
resourcestring rs_wav_to_aac_q098_nero = 'Convert WAV to AAC q0.98 using Nero'; rs_wav_to_aac_q099_nero = 'Convert WAV to AAC q0.99 using Nero'; const CCommands: array[0..1] of TCommand = ( (description: rs_wav_to_aac_q098_nero; command: 'Convert WAV to AAC q0.98 using Nero'), (description: rs_wav_to_aac_q099_nero; command: 'Convert WAV to AAC q0.99 using Nero') );
Ce qui faciliterait peut-être l'édition, tout en conservant la possibilité de traduire la description dans différentes langues. En revanche on serait obligé de recompiler à chaque fois. Mais est-ce vraiment un problème ?
Au fait, pour compiler un projet Lazarus, on n'est pas obligé de lancer Lazarus. On peut le faire par une ligne de commande :
Code BASH :
lazbuild projet.lpi
Édité par Roland57 Le 16/02/2023 à 20h22

Visiteur
Visiteur
Dans le code source, %s est le fichier d'entrée et de sortie. Cela implique que l'utilitaire de ligne de commande attend les fichiers dans cet ordre :
Code BASH :
cmd-util input output
Mais certains utilitaires, comme l'archiveur de console rar (RAR for Linux x64 Command line), que j'essaie actuellement d'apprivoiser, attend les fichiers dans l'ordre inverse :
Code BASH :
rar output.rar input
Pour être précis, la commande est comme ceci :
Code BASH :
rar a -ma4 -dh -m1 -md64k -htc -ow -s- -mt1 -ep1 -scUL -tsma -o- -cfg- -ierr -idp output.rar input
En conséquence, cela fonctionne. Mais je dois spécifier le fichier de sortie pour le fichier d'entrée, et le fichier d'entrée pour le fichier de sortie dans l'application UI. C'est-à-dire que c'est l'inverse. C'est assez amusant.
Existe-t-il un moyen de distinguer l'entrée et la sortie dans le code source ?
De plus, comme UI attend des fichiers partout, et non des dossiers, je transforme manuellement le dossier d'entrée en "fichier" en modifiant le chemin.
Je préfère le rar4 car il est plus rapide que le 7z et zip.
Roland57 Je ne pense pas encore aux fichiers de configuration. Je te le confie.
UPD: Bien que je préfère txt, pas json.
Édité par Visiteur Le 16/02/2023 à 23h26

Roland57 Membre non connecté
-
- Voir le profil du membre Roland57
- Inscrit le : 08/02/2020
- Site internet
- Groupes :
artenaki :
Existe-t-il un moyen de distinguer l'entrée et la sortie dans le code source ?
Il faudrait utiliser à la place de %s quelque chose du genre _INPUT_ et _OUTPUT_.
artenaki :
De plus, comme UI attend des fichiers partout, et non des dossiers, je transforme manuellement le dossier d'entrée en "fichier" en modifiant le chemin.
Je vois. Je vais réfléchir de mon côté à la meilleure manière de gérer ce problème.
Merci pour l'exemple de commande. L'intérêt de ce projet, c'est aussi de réunir des exemples de lignes de commande.

Roland57 Membre non connecté
-
- Voir le profil du membre Roland57
- Inscrit le : 08/02/2020
- Site internet
- Groupes :
Il est maintenant possible de sélectionner des dossiers, et l'ordre des arguments n'importe plus.

Une idée m'est venue. On pourrait ajouter dans le fichier de configuration des informations supplémentaires : par exemple si l'entrée est un fichier ou un dossier ; et dans ce cas l'application cocherait automatiquement le bouton "dossier".
On pourrait aussi ajouter, pour chaque commande, les extensions d'entrée et de sortie. Cela permettrait de configurer les dialogues de sélection des fichiers. L'application pourrait également proposer automatiquement des noms pour les fichiers de sortie.
Il faut bien y réfléchir. Ce serait plus de travail pour maintenir l'application, mais plus de confort pour l'utilisateur. À voir !
P.-S. Pour la ligne de commande il serait peut-être préférable d'utiliser un TMemo plutôt qu'un TEdit, afin qu'on puisse voir la ligne en entier.
Édité par Roland57 Le 17/02/2023 à 00h47

Visiteur
Visiteur
Roland57 :
Une nouvelle version est disponible sur mon dépôt GitHub.
Il est maintenant possible de sélectionner des dossiers, et l'ordre des arguments n'importe plus.
Il est maintenant possible de sélectionner des dossiers, et l'ordre des arguments n'importe plus.
Oui, j'ai compilé la nouvelle version. C'est cool.
Mais peut-être que je ne pourrai plus utiliser l'ordinateur bientôt :(

Visiteur
Visiteur
L'utilisation du GUI universel m'a permis de spécifier des options avant ffmpeg -i, contrairement à d'autres GUI comme WinFF et QWinFF. Et même pipe et wine.
Code :
rsWavToAac1Nero = 'Convert WAV to AAC q0.98 using Nero'
rsWavToAac2Nero = 'Convert WAV to AAC q0.99 using Nero'
rsMpgToMkvFfmpeg = 'Copy MPG to MKV using ffmpeg'
rsAc3ToWavFfmpeg = 'Convert AC3 to WAV 2.0 float without DRC'
rsRAR4 = 'Create RAR4 archive'
rsRAR5 = 'Create RAR5 archive'
rsARCP = 'Create ARC archive'
rsToAac1 = 'Convert Video to AAC using FAAC (1 Track)'
rsToAac2 = 'Convert Video to AAC using FAAC (2 Track)'
rsToAacEng = 'Convert Video to AAC using FAAC (English)'
Code :
'nero -q 0.98 -lc -if "_INPUT_" -of "_OUTPUT_"'
'nero -q 0.99 -lc -if "_INPUT_" -of "_OUTPUT_"'
'ffmpeg -fflags +genpts -fflags +igndts -i "_INPUT_" -c copy "_OUTPUT_"'
'ffmpeg -drc_scale 0 -i "_INPUT_" -acodec pcm_f32le -ac 2 -async 1 "_OUTPUT_"'
'rar a -ma4 -dh -m1 -md64k -htc -ow -s- -mt1 -ep1 -scUL -tsma -cfg- -ierr -idp -o- "_OUTPUT_" "_INPUT_"'
'rar a -ma5 -dh -m1 -md128k -htb -ow -s- -mt1 -ep1 -scUL -tsma -qo+ -cfg- -ierr -idp -o- "_OUTPUT_" "_INPUT_"'
'LD_LIBRARY_PATH=/opt/freearc/lib arc create -m2 -md2 -ep1 -ms -hp -pPASS --encryption=aes -i0 --recovery=20% -mt1 -t --workdir=/tmp "_OUTPUT_" "_INPUT_"'
'ffmpeg -loglevel error -drc_scale 0 -i "_INPUT_" -map 0:a:0 -c:a pcm_f32le -ac 2 -af volume=-2dB -async 1 -vn -sn -f wav - | faac -q 130 -c 16500 -v2 --joint 1 --mpeg-vers 4 --tns -w - -o "_OUTPUT_"'
'ffmpeg -loglevel error -drc_scale 0 -i "_INPUT_" -map 0:a:1 -c:a pcm_f32le -ac 2 -af volume=-2dB -async 1 -vn -sn -f wav - | faac -q 130 -c 16500 -v2 --joint 1 --mpeg-vers 4 --tns -w - -o "_OUTPUT_"'
'ffmpeg -loglevel error -drc_scale 0 -i "_INPUT_" -map 0:m:language:eng -c:a pcm_f32le -ac 2 -af volume=-2dB -async 1 -vn -sn -f wav - | faac -q 130 -c 16500 -v2 --joint 1 --mpeg-vers 4 --tns -w - -o "_OUTPUT_"'

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

Par contre c'est un peu dommage, après avoir créé des dépôts GitHub, de perdre du temps à faire des copier-coller sur le forum.
Donc je viens de faire un pull request pour que les deux dépôts soient de nouveau synchronisés.
Après, si tu veux, nous pourrons faire la modification consistant à mettre les commandes dans un fichier séparé.

Visiteur
Visiteur
Download with curl
Code BASH :
curl --socks5 127.0.0.1:1060 -O --progress-bar --create-dirs --output-dir "_OUTPUT_" "_INPUT_" -A "Mozilla/5.0 (X11; Linux i686; rv:60.0) Gecko/20100101 Firefox/60.0"
Code :
https://example.com/viewtopic.php?t=548
https://example.com/viewtopic.php?t=548&start=28
https://example.com/viewtopic.php?t=548&start=56
https://example.com/viewtopic.php?t=548&start=84
...
https://example.com/viewtopic.php?t=548&start=3276
=
Code :
https://example.com/viewtopic.php?t=548&start=[0-3276:28]
56-28=28
Le proxy socks est facultatif.
L'option --output-dir nécessite curl >=7.73.0.
Roland57, bien sûr, ce serait formidable si tu pouvais implémenter le fichier de configuration, le dossier de sortie par défaut et les extensions de fichiers recommandées.
Peut-être qu'alors plus de gens utiliseraient l'application. Je pense qu'il n'y a que deux utilisateurs maintenant, toi et moi. Parce que peu de gens veulent installer Lazarus, éditer le code source et le compiler, malheureusement.
Et la version pour Windows, il y aura plus d'utilisateurs.
Roland57 :
Pour la ligne de commande il serait peut-être préférable d'utiliser un TMemo plutôt qu'un TEdit, afin qu'on puisse voir la ligne en entier
TEdit me convient, car la taille du champ est stable. Mais peut-être que TMemo serait bien. Mais je suis très conservateur et je n'aime pas le changement.
Édité par Visiteur Le 23/02/2023 à 02h18

Visiteur
Visiteur
Il est dommage que le chat n'ait pas vu cette application, mais au moins de cette manière.
Édité par Visiteur Le 23/02/2023 à 02h36

Visiteur
Visiteur
Code BASH :
echo _INPUT_ | basez --decode -i - -o -
UI requiert un espace comme fichier de sortie.
Basez :
http://www.quarkline.net/basez/
http://www.quarkline.net/basez/download/
https://packages.ubuntu.com/bionic/basez
basez.exe.zip
ou
Code BASH :
echo _INPUT_ | base64 --decode
Volume analyzer
Code BASH :
ffmpeg -drc_scale 0 -i "_INPUT_" -map 0:a:0 -af aformat=sample_fmts=flt,volume=-10dB -acodec pcm_f32le -ac 2 -async 1 -f wav - | sox -t wav - -n stats
Analyseur de volume de la piste audio (peak level).
Voir le paramètre de sortie : Pk lev dB (Overall).
Ajoutez +10dB à cette valeur.
Par exemple -11+10=-1dB.
La précorrection de -10dB a été ajoutée car l'analyseur de niveau (ffmpeg et sox) fonctionne en 16 bits fixed point, où le niveau maximum est de 0dB. Mais les fichiers réels peuvent contenir des niveaux supérieurs à 0dB (clipping risk). Pour connaître les niveaux supérieurs à 0dB, il faut fonctionner en 32 bit float et réserve de niveau.
-map 0:a:0 dernier 0 est le numéro de la piste audio (il peut y avoir plusieurs pistes audio dans un conteneur). 0 est le premier audio, 1 est le deuxième audio...
-ac 2 downmix en stéréo (par exemple 5.1 > 2.0), les pistes stéréo d'entrée ne sont pas modifiées.
-drc_scale 0 - pas de compression de plage dynamique des pistes AC3 (Dolby Digital)
-drc_scale 1 - compression au Home level.
Installez sox sur le système.
VLC utilise la DRC par défaut, SMPlayer (mpv) ne le fait pas.
-drc_scale 1 valeur par défaut dans ffmpeg.
Le DRC ne s'applique qu'au format AC3.
YouTube Download
Code BASH :
cd "/home/denis" && yt-dlp "_INPUT_" --no-mtime -F
Édité par Visiteur Le 26/02/2023 à 05h04

Visiteur
Visiteur
Roland54, Alex Kotov t'envoie ses salutations.
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie