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 15/09/2017, à 14:24

Lindrole

[CLOS]Convertir un dossier de .mpg en .wmv en gardant la date initiale

Bonjour tout le monde !

Voici ma problématique : je veux transformer des fichiers .mpg en .wmv

Je pense avoir trouvé la syntaxe pour le faire en ligne de commande avec ffmpeg pour un fichier (mais je ne l'ai pas testé).

$ ffmpeg -i input.mpg output.wmv

Sauf qu'après transformation je veux pouvoir garder la date initiale de la vidéo.
A priori j'ai trouvé le code pour le faire (là aussi je ne l'ai pas encore testé) :

ffmpeg -i inputfile.mpg -metadata date="$(stat --printf='%y' inputfile.mpg | cut -d ' ' -f1)" -codec copy outputfile.wmv

Mais comme j'ai un très grand nombre de fichiers vidéos à convertir j'aimerais avoir le "code magique" qui me permettrait de convertir un dossier complet de .mpg en .wmv, le tout en gardant les dates des fichiers initiaux (car ce sont des vidéos de famille).

Pensez-vous que ce soit possible en ligne de code via ffmpeg ?
Ou peut-être avez-vous une meilleure solution ?

Merci d'avance pour votre aide.

Dernière modification par Lindrole (Le 20/09/2017, à 22:55)


"Tout le monde disait que c'était impossible... Une idiot arriva, qui ne le savait pas, et le fit."

Hors ligne

#2 Le 15/09/2017, à 15:45

LukePerp

Re : [CLOS]Convertir un dossier de .mpg en .wmv en gardant la date initiale

Lindrole a écrit :

Pensez-vous que ce soit possible en ligne de code via ffmpeg ?
.

Bonjour, je pense que c'est possible en bash. Avec ffmpeg je suis moins sûr. En revanche, tu devrais plutot choisir mkv en sortie plutot que wmv car mkv est universel. Pour ton dossier, tu pourras faire un script pour le gestionnaire de fichier, qui va traiter tous les fichiers du dossier avec une boucle toute simple.


Desktop & Laptop - Ubuntu Mate dernière LTS - Intel i5 - 16 Go - Dual boot Windows offline

Hors ligne

#3 Le 15/09/2017, à 16:20

grandtoubab

Re : [CLOS]Convertir un dossier de .mpg en .wmv en gardant la date initiale

Salut
voila un script de conversion de fichier mp4 pour changer son profile
~/Vidéos/conversion# cat conversion

#!/bin/bash
#set -x
for file in *.mp4
do
	echo "traitement du fichier" "resul_$file"
	ffmpeg -loglevel quiet -i "$file" -profile:v Main -level 4.0 "resul_$file"	
done

A toi d'adapter

le fichier se mets dans le dossier où sont les vidéos et se lance par ./conversion

Dernière modification par grandtoubab (Le 15/09/2017, à 16:23)


Linux tout seul sur HP Pavilion DV7 et Acer Aspire T650, Canon MG3650 en wifi
Debian 11 Bullseye Gnome/Xorg, Gnome/Wayland avec SDDM
https://bidouilledebian.wordpress.com/
ON M'A VU DANS LE VERCORS, SAUTER A L'ELASTIQUE..... J'AI DANS LES BOTTES DES MONTAGNES DE QUESTIONS....

Hors ligne

#4 Le 15/09/2017, à 18:53

Lindrole

Re : [CLOS]Convertir un dossier de .mpg en .wmv en gardant la date initiale

Merci pour vos retours.
Par contre je ne suis pas certain d'être assez compétent pour "adapter" un script.
Quelle partie dois-je adapter ?
Désolé je suis un noob en script...

NB : j'ai testé le second code de mon post initial. Il a bien converti en .wmv mais n'a pas garder la date initiale de la vidéo.
NB2 : je crains que mon smartphone ne sache pas lire les .mkv alors que je sais qu'il lit les .wmv

Dernière modification par Lindrole (Le 15/09/2017, à 19:07)


"Tout le monde disait que c'était impossible... Une idiot arriva, qui ne le savait pas, et le fit."

Hors ligne

#5 Le 16/09/2017, à 13:52

Lindrole

Re : [CLOS]Convertir un dossier de .mpg en .wmv en gardant la date initiale

J'ai continué à chercher une solution et j'en ai trouvé un morceau sur le site suivant : https://askubuntu.com/questions/62492/h … -of-a-file

Si par exemple j'ai un fichier vidéo .mp4 qui a une date de modification au 5 octobre 2016 21h31, et que je veux qu'il ait une date de modification qui soit le 18 mars 2008 à 10h13, je tape :

touch -t 200803181013 monfichier.mp4

et là youpi ça marche !

J'y ai aussi trouvé comment reporter la date d'un fichier sur un autre.
Par exemple si je veux que le fichier A.mp4 ait la même date de modification que mon fichier B.wmv (qui est ma référence), je tape :

touch -r fichierB.wmv -m fichierA.mp4

Avec ça j'ai déjà fait un grand pas, qui me permettra au pire de faire la manip à la main.

Maintenant le top serait d'arriver à faire ça non pas fichier par fichier, mais pour tout un dossier.
Si vous avez une idée de comment faire je suis preneur.

***************
Et juste pour expliquer mon besoin de façon un peu plus détaillé :
J'ai des vidéos de famille sauvées sur des DVD que je veux mettre sur un Cloud. Ce sont principalement des fichiers .mpg pour lesquels l'image est déformée (ou non lisible) sur nos smartphones modernes. Pour régler ce problème, le smartphone les converti en .wmv (et c'est là que je perds la date réelle de la vidéo).

Dernière modification par Lindrole (Le 16/09/2017, à 14:06)


"Tout le monde disait que c'était impossible... Une idiot arriva, qui ne le savait pas, et le fit."

Hors ligne

#6 Le 16/09/2017, à 15:53

erresse

Re : [CLOS]Convertir un dossier de .mpg en .wmv en gardant la date initiale

Bonjour,
Si tes vidéos ont le même nom, à l'extension près, tu dois pouvoir faire ta commande :

touch -r *.wmv -m *.mp4

Il n'est pas nécessaire que les noms soient différents si les extensions ne sont pas les mêmes : ficha.wmv # ficha.mp4, car sous Linux, l'extension n'est pas significative pour le système, c'est juste un repère visuel pour l'utilisateur.


Plus de 50 ans d'informatique, ça en fait des lignes de commandes en console, mais on n'avait pas le choix...
Excellente raison pour, aujourd'hui qu'on le peut, utiliser au maximum les INTERFACES GRAPHIQUES !
Important : Une fois résolu, pensez à clore votre sujet en ajoutant [Résolu] devant le titre du 1er message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.

Hors ligne

#7 Le 17/09/2017, à 16:01

Lindrole

Re : [CLOS]Convertir un dossier de .mpg en .wmv en gardant la date initiale

@erresse : ça a fonctionné mais pas exactement comme je l'aurais voulu.
J'ai fait un test avec 3 fichiers .mpg (les originaux) et 3 fichiers .wmv (les converties avec la mauvaise date)
En tapant ton code ça m'a mis la "date de modification" du premier fichier sur les 6 fichiers.
Donc pour l'instant il me faut faire les fichiers un par un. Par contre effectivement ton astuce me permet de faire le travail à la chaîne sans avoir à changer à chaque fois les noms de mes fichiers dans le terminal.

Si vous avez une astuce pour faire ça en boucle je suis preneur !

NB : ça y est je sais faire des scripts smile
J'ai trifouillé sur Youtube et ait trouvé des tutos.
Donc si vous avez une solution à base de boucles dans un script je pense que je saurai la mettre en application smile

@grandtoutbab : j'ai essayé d'adapter ton script mais je n'ai pas réussi.

Dernière modification par Lindrole (Le 17/09/2017, à 16:03)


"Tout le monde disait que c'était impossible... Une idiot arriva, qui ne le savait pas, et le fit."

Hors ligne

#8 Le 17/09/2017, à 19:01

Compte anonymisé

Re : [CLOS]Convertir un dossier de .mpg en .wmv en gardant la date initiale

la commande n'accepte qu'un argument en fichier, *.wmv ne peut pas marcher...

@erresse

man touch

pour une boucle je te propose :

for file in *.wmv
do
  touch -r "$file.wmv" -m "${file%.*}.mp4"
done

au final tu peux juste intégré une ligne touch à la commande de grandtoubab et ça fera tout d'un coup

EDIT : je me suis planté sur le nom de la variable ${file%.*} à la place de ${filename%.*}

Dernière modification par Compte anonymisé (Le 18/09/2017, à 16:18)

#9 Le 17/09/2017, à 21:14

Lindrole

Re : [CLOS]Convertir un dossier de .mpg en .wmv en gardant la date initiale

@Anonyme68 :
Je viens d'essayer ton script mais ça n'a pas marché.

Voici le script que j'ai créé :

#!/bin/bash
for file in *.mpg
do
  touch -r "$file" -m "${filename%.*}.wmv"
echo "un fichier de terminé"
done

J'ai enlevé l'extension après $file car sinon le script plantait. Il me disait qu'il ne trouvait pas les fichiers xxxxmpg.mpg
Le script tourne correctment sans plantage et fait bien trois boucles (j'ai 3 echo) mais il ne modifie pas la date des fichiers .wmv
J'ai essayé d'intervertir mpg et wmv dans le code mais ça n'a eu aucun effet.

Vous sauriez m'aider à trouver l'erreur dans mon code ?

Dernière modification par Lindrole (Le 17/09/2017, à 21:14)


"Tout le monde disait que c'était impossible... Une idiot arriva, qui ne le savait pas, et le fit."

Hors ligne

#10 Le 17/09/2017, à 21:25

pingouinux

Re : [CLOS]Convertir un dossier de .mpg en .wmv en gardant la date initiale

Bonsoir,
Si tu veux que la date de modification du fichier .wmv soit celle du fichier .mpg correspondant :

#!/bin/bash
for file in *.mpg
do
  touch -r "$file" -m "${file%.*}.wmv"
echo "fichier $file terminé"
done

Hors ligne

#11 Le 20/09/2017, à 22:41

Lindrole

Re : [CLOS]Convertir un dossier de .mpg en .wmv en gardant la date initiale

Excellent ! ça marche !
Merci pingouinux !

J'ai même réussi à créer un code qui à la fois converti mes .mpg en .wmv, puis qui les redate correctement :

#!/bin/bash

echo "Conversion des fichiers .mpg en .wmv"
sleep 1

for file in *.mpg
do
ffmpeg -i "$file" "${file%.*}.wmv"
echo "fichier $file converti avec succès"
done

echo "Redatage des .wmv selon les .mpg"
sleep 1

for file in *.mpg
do
touch -r "$file" -m "${file%.*}.wmv"
echo "fichier $file redaté avec succès"
done

Bon par contre j'ai l'impression que la conversion en .wmv est de moins bonne qualité avec ffmpeg qu'avec "Windaube 7", mais en tout cas ça marche !

Merci à tous de m'avoir permis d'atteindre mon but par petits pas.

Dernière modification par Lindrole (Le 20/09/2017, à 22:54)


"Tout le monde disait que c'était impossible... Une idiot arriva, qui ne le savait pas, et le fit."

Hors ligne

#12 Le 21/09/2017, à 03:26

Rufus T. Firefly

Re : [CLOS]Convertir un dossier de .mpg en .wmv en gardant la date initiale

Lindrole a écrit :

Bon par contre j'ai l'impression que la conversion en .wmv est de moins bonne qualité avec ffmpeg qu'avec "Windows 7", mais en tout cas ça marche !

Les paramètres par défaut de ffmpeg sont sûrement un bon compromis entre qualité et vitesse de traitement. Mais ça se change, si nécessaire. Pour voir les réglages disponibles :

man ffmpeg

La provocation est une façon de remettre la réalité sur ses pieds. (Bertolt Brecht)
Il n'y a pas de route royale pour la science et ceux-là seulement ont chance d'arriver à ses sommets lumineux qui ne craignent pas de se fatiguer à gravir ses sentiers escarpés. (Karl Marx)
Il est devenu plus facile de penser la fin du monde que la fin du capitalisme

Hors ligne

#13 Le 21/09/2017, à 07:17

pingouinux

Re : [CLOS]Convertir un dossier de .mpg en .wmv en gardant la date initiale

@Lindrole #11 : Tu peux convertir et changer la date en une seule boucle

#!/bin/bash

echo "Conversion des fichiers .mpg en .wmv"
echo "Redatage des .wmv selon les .mpg"
sleep 1

for file in *.mpg
do
   ffmpeg -i "$file" "${file%.*}.wmv"
   echo "fichier $file converti avec succès"

   touch -r "$file" -m "${file%.*}.wmv"
   echo "fichier $file redaté avec succès"
done

Hors ligne

#14 Le 21/09/2017, à 11:05

erresse

Re : [CLOS]Convertir un dossier de .mpg en .wmv en gardant la date initiale

Lindrole a écrit :

Bon par contre j'ai l'impression que la conversion en .wmv est de moins bonne qualité avec ffmpeg qu'avec "Windows 7",

Bah, ce serait bien la moindre des choses, vu que wmv est un format privatif de Microsoft et que, comme pour tout le reste, ils en gardent jalousement les spécifications pour empêcher les "délinquants" linuxiens de créer des vidéos de meilleure qualité que les leurs !!!
tongue lol


Plus de 50 ans d'informatique, ça en fait des lignes de commandes en console, mais on n'avait pas le choix...
Excellente raison pour, aujourd'hui qu'on le peut, utiliser au maximum les INTERFACES GRAPHIQUES !
Important : Une fois résolu, pensez à clore votre sujet en ajoutant [Résolu] devant le titre du 1er message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.

Hors ligne