Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 19/11/2024, à 11:02

Crestey

[Résolu] Script pour convertir lot de fichiers TS

Bonjour,

J'ai transféré mes photos et vidéos de mon compte google photo avec TakeOut.
Un partie des Vidéos est en format TS. Il sont de la forme PXL_20241005_120628078.TS.mp4 et sont alors illisibles avec VLC ou Parole.
Je peux les convertir en format mp4 avec la ligne de commande  ffmpeg -i in.TS.mp4 -c:v libx264 -c:a copy out.mp4

Je voudrais appliquer cette ligne de commande à tous les fichiers TS (contenant la chaîne de caractère "TS").
Et les renommer de toto.TS.mp4 en toto.mp4

Je ne suis pas très fort en script. Pourriez-vous me guider un peu.

Amicalement Dominique

Dernière modification par Crestey (Le 19/11/2024, à 13:02)


Merci à tous.
Sous Ubuntu/XFCE depuis 2013. Ça fonctionne vraiment très bien.

Hors ligne

#2 Le 19/11/2024, à 11:11

O_20_100_O

Re : [Résolu] Script pour convertir lot de fichiers TS

Pourriez-vous me guider un peu.

Une façon de commencer serait de décomposer ce que tu veux faire en étapes élémentaires et de l'écrire en français.
Tu fais comme si l'ordinateur pouvait te comprendre et tu lui expliques point par point ce qu'il doit faire.

Hors ligne

#3 Le 19/11/2024, à 11:38

Crestey

Re : [Résolu] Script pour convertir lot de fichiers TS

Merci O_20_100_O,
Ce que je souhaite peut se traduire comme suit :

Pour tous les fichiers contenus dans /home/crestey/vidéos qui sont de la forme XXX.TS.mp4
exécuter la commande  ffmpeg -i XXX.TS.mp4 -c:v libx264 -c:a copy XXX.mp4 et ensuite effacer XXX.TS.mp4


Merci à tous.
Sous Ubuntu/XFCE depuis 2013. Ça fonctionne vraiment très bien.

Hors ligne

#4 Le 19/11/2024, à 11:39

geole

Re : [Résolu] Script pour convertir lot de fichiers TS

Bonjour
Dans avidemux, tu trouveras un  script de traitement de masse    que tu devras adapter pour mettre ta commande.


Les grilles de l'installateur https://doc.ubuntu-fr.org/tutoriel/inst … _subiquity
"gedit admin:///etc/fstab" est proscrit,  utilisez "pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY xdg-open /etc/fstab" Voir  https://doc.ubuntu-fr.org/gedit
Les partitions EXT4 des disques externes => https://forum.ubuntu-fr.org/viewtopic.p … #p22697248

Hors ligne

#5 Le 19/11/2024, à 11:42

Crestey

Re : [Résolu] Script pour convertir lot de fichiers TS

Merci geole, je pense que ça va en effet faire l'affaire. Je reviens mettre ici la commande que j'aurai pu établir. Amicalement Dominique


Merci à tous.
Sous Ubuntu/XFCE depuis 2013. Ça fonctionne vraiment très bien.

Hors ligne

#6 Le 19/11/2024, à 11:58

Tawal

Re : [Résolu] Script pour convertir lot de fichiers TS

Hello,
Voici un script bash qui correspond à ta demande :

#!/bin/bash

rep="/chemin/du/répertoire/fichiers/TS"

for f in "$rep"/*.TS.mp4
do
    out="${f//.TS/}"
    ffmpeg -i "$f" -c:v libx264 -c:a copy "$out"
    # rm "$f"     # Ligne à dé-commenter pour effacer les anciens fichiers TS - Essaie d'abord sans effacer
done

Edit:
Plus simple.

Dernière modification par Tawal (Le 19/11/2024, à 12:02)


Le savoir n'a d’intérêt que si on le transmet.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !

Hors ligne

#7 Le 19/11/2024, à 12:02

nany

Re : [Résolu] Script pour convertir lot de fichiers TS

Bonjour,



Crestey a écrit :

Pour tous les fichiers contenus dans /home/crestey/vidéos qui sont de la forme XXX.TS.mp4
exécuter la commande  ffmpeg -i XXX.TS.mp4 -c:v libx264 -c:a copy XXX.mp4 et ensuite effacer XXX.TS.mp4

Traduction en shell :

for file in /home/crestey/vidéos/*.TS.mp4 ; do ffmpeg -i "$file" -c:v libx264 -c:a copy "${file/.TS/}" && rm -v "$file" ; done

En ligne

#8 Le 19/11/2024, à 12:13

kamaris

Re : [Résolu] Script pour convertir lot de fichiers TS

Crestey a écrit :

Un partie des Vidéos est en format TS. Il sont de la forme PXL_20241005_120628078.TS.mp4 et sont alors illisibles avec VLC ou Parole.

C'est étonnant, il te manquerait pas juste un codec pour pouvoir les lire ? VLC au moins devrait y arriver.

Hors ligne

#9 Le 19/11/2024, à 13:01

Crestey

Re : [Résolu] Script pour convertir lot de fichiers TS

@tawal
j'ai essayé tes 2 scripts mais j'ai eu les 2 messages d'erreurs suivant

crestey@crestey-Pegatron:~/TS$ sh TS
TS: 7: [[: not found
TS: 7: [[: not found
TS: 7: [[: not found
TS: 7: [[: not found
TS: 7: [[: not found
crestey@crestey-Pegatron:~/TS$ sh TS
TS: 7: Bad substitution
crestey@crestey-Pegatron:~/TS$

@nany ça marche impeccable ! smile

@kamaris en demandant à chatGPT la réponse est
VLC est un lecteur multimédia très polyvalent qui prend en charge une grande variété de formats audio et vidéo.
Il intègre des codecs nécessaires pour lire les fichiers TS, sans avoir besoin de codecs externes.

Mais chez moi ça ne marche pas. Donc je ne comprends pas. Je suis preneur si tu as une idée.

@geole avant d'avoir reçu toutes ces réponses, j'ai fait des essais, mais qui n'ont pas marché car je suis assez nul en script. J'y serais arrivé mais ça m'aurait pris pas mal de temps roll

Merci à tous


Merci à tous.
Sous Ubuntu/XFCE depuis 2013. Ça fonctionne vraiment très bien.

Hors ligne

#10 Le 02/12/2024, à 00:07

Crestey

Re : [Résolu] Script pour convertir lot de fichiers TS

Bonsoir,
Je complète ce fil avec la ligne de commande qui étend ce traitement à tous les fichiers *.TS.mp4 d'un répertoire donné (ici /home/crestey/vidéo), et de tous ses sous-répertoires.
find /home/crestey/vidéo -name "*.TS.mp4" | while read file ; do ffmpeg -i "$file" -c:v libx264 -c:a copy "${file/.TS/}" && rm -v "$file" ; done
Amicalement Dominique

Dernière modification par Crestey (Le 02/12/2024, à 00:09)


Merci à tous.
Sous Ubuntu/XFCE depuis 2013. Ça fonctionne vraiment très bien.

Hors ligne

#11 Le 02/12/2024, à 00:22

Watael

Re : [Résolu] Script pour convertir lot de fichiers TS

non, non.

find ... -print0 | while read -d '' file; do ... ; done

par précaution.


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#12 Le 02/12/2024, à 05:21

nany

Re : [Résolu] Script pour convertir lot de fichiers TS

Bonjour,



Et pourquoi pas utiliser l’action -exec de find ?

En ligne

#13 Le 02/12/2024, à 09:50

Crestey

Re : [Résolu] Script pour convertir lot de fichiers TS

Bonjour,
@Watael Merci pour le conseil. Mais malheureusement, je suis tellement nul en script que je ne comprends pas du tout ce conseil. Tu peux essayer de m'expliquer, mais la difficulté sera de te mettre au niveau du profane que je suis hmm
@nany C'est un peu pareil. "Pourquoi pas ?" Et bien, je suis tellement nul que j'en sais rien smile. Mais je reste preneur de tes suggestions aussi car toujours prêt à apprendre.
Amicalement Dominique

Dernière modification par Crestey (Le 02/12/2024, à 09:51)


Merci à tous.
Sous Ubuntu/XFCE depuis 2013. Ça fonctionne vraiment très bien.

Hors ligne

#14 Le 02/12/2024, à 10:54

Watael

Re : [Résolu] Script pour convertir lot de fichiers TS

les noms de fichiers peuvent contenir tous les caractères (même des retours chariot \n et \r) sauf / et \0 (NULL).
cela fait que le nom de fichier mon\nnom\nde\nfichier' sera lu par une boucle while (parce que cette commande lit des lignes) :
mon
nom
de
fichier

en terminant chaque nom de fichier par un caractère NULL (\0) avec -print0, on peut indiquer un caractère de délimitation (-d) sûr à read.

@nany: bien sûr, -exec, si les commandes sont simples.


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne