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 12/01/2019, à 21:31

GammaDraconis

Script pour récupérer automatiquement des extraits de vidéo ?

Bonjour,

Ce que je souhaite faire est assez compliqué mais comme je sais qu'il y a des bons développeurs qui passent sur le forum, vous aurez peut être une idée comme faire un script bash ou python pour faire ceci :

J'ai un dossier qui contient pleins de vidéo et j'aimerai extraire pour chacune de ses vidéos un extrait de 30 secondes choisi aléatoirement dans chacune des vidéos.
Si je devais faire manuellement cela prendrai énormément de temps, il faudrai par exemple ouvrir chaque vidéo avec "Avidemux" et sélectionner manuellement un extrait dans la video puis l'enregistrer. Le but est donc d'automatiser avec un script qui fait tout ça depuis les vidéos du répertoire courant.

Par exemple le script peux utiliser l'outil en cli "mencoder" pour extraire un passage vidéo, la difficulté pour le script sera :
- de faire ça pour toutes les vidéos du répertoire courant à la chaine (donc il ne faut pas que le fichier vidéo soit renseigné, il doit tous les faires 1 par 1 dans le dossier courant depuis lequel on lance le script ou en précisant le répertoire en paramètre).
- choisir un extrait aléatoire dans la vidéo (idéalement pas au tout début et pas tout à la fin), dans le cas ou le caractère aléatoire dans la sélection serai trop difficile à obtenir, alors au moins en précisant le timming dans la video entre le début et la fin, par exemple de 0:45:00 à 0:45:30 de chaque vidéo.


D'avance , merci de votre aide

Dernière modification par GammaDraconis (Le 12/01/2019, à 21:34)


Ultrabook : Xiaomi Air 13 [ Intel i5 7e, 8 Go ram, 2xSSD, GeForce MX150, dualboot Archlinux/Xfce & Ubuntu 18.04/GS
Tour : AMD Ryzen 7 2700X Octo-Core/16 Threads 3.7GHz, 32 Go de Ram ddr4 3000Mhz - 4.5 To dont 512 Go SSD - nVidia GeForce 2060RTX 6Go GDDR6) : tripleboot UbuntuDev & Arch & w10
Mon script de post-install Ubuntu/Arch : https://forum.ubuntu-fr.org/viewtopic.php?id=2026344

Hors ligne

#2 Le 12/01/2019, à 21:50

k3c

Re : Script pour récupérer automatiquement des extraits de vidéo ?

il faut que tu fasses un script qui varie sur le thème

ffmpeg -i fichier_video.ts -c:v copy -c:a copy -ss 02:01:19.00 -t 30 resultat.ts

extrait 30 secondes de la vidéo  à partie de 02 h 01 minutes 19 secondes par exemple


Archlinux sur Xiaomi Air 13

Hors ligne

#3 Le 12/01/2019, à 22:00

GammaDraconis

Re : Script pour récupérer automatiquement des extraits de vidéo ?

Merci k3c, très réactif, ta commande fonctionne pour une vidéo précise mais comment faire pour que cette commande soit automatiquement appliqué pour toutes les videos d'un répertoire plutot que rentrer manuellement le nom de la vidéo ainsi que le nom pour le fichier de sortie à chaque fois.
A noté que pour le nom de fichier de sortie, ça peux générer le meme nom que la vidéo d'origine mais en rajouant par exemple "_extrait" a la fin.

exemple si dans le dossier il y a :
- video1.avi
- video2.mkv
- video3.mpg

Il faut qu'en lançant une seule fois la commande, je me retrouve avec 3 fichiers vidéo supplémentaire (indiqué en rouge ici) correspondant aux extraits de 30s
- video1.avi
- video1_extrait.avi
- video2.mkv
-- video2_extrait.mkv
- video3.mpg
-- video3_extrait.mpg

(a noté que le codec/format de fichier utilisé pour les extraits n'a pas d'importance)

Dernière modification par GammaDraconis (Le 12/01/2019, à 22:01)


Ultrabook : Xiaomi Air 13 [ Intel i5 7e, 8 Go ram, 2xSSD, GeForce MX150, dualboot Archlinux/Xfce & Ubuntu 18.04/GS
Tour : AMD Ryzen 7 2700X Octo-Core/16 Threads 3.7GHz, 32 Go de Ram ddr4 3000Mhz - 4.5 To dont 512 Go SSD - nVidia GeForce 2060RTX 6Go GDDR6) : tripleboot UbuntuDev & Arch & w10
Mon script de post-install Ubuntu/Arch : https://forum.ubuntu-fr.org/viewtopic.php?id=2026344

Hors ligne

#4 Le 12/01/2019, à 22:25

k3c

Re : Script pour récupérer automatiquement des extraits de vidéo ?

regarde ce que donne

for f in $HOME/* ; do echo $f ; done

Archlinux sur Xiaomi Air 13

Hors ligne

#5 Le 12/01/2019, à 23:02

k3c

Re : Script pour récupérer automatiquement des extraits de vidéo ?

J'ai téléchargé sur youtube des vidéos de la série Mensonges

$ ls -alrt Mens*
-rw-r--r-- 1 gg gg    975272 déc.   9  2016 'Mensonges Saison 2 Épisode 10-Pue-ze6RxzQ.mp4'
-rw-r--r-- 1 gg gg  86280148 avril 28  2018 'Mensonges ►Saison 3 Épisode 3-ReHWBmzModo.mkv'
-rw-r--r-- 1 gg gg  85691314 avril 28  2018 'Mensonges ►Saison 3 Épisode 4-YBthSwShfdY.mkv'
-rw-r--r-- 1 gg gg  82742083 avril 28  2018 'Mensonges ►Saison 3 Épisode 1-5YPY56s41Vs.mkv'
-rw-r--r-- 1 gg gg 101000991 avril 29  2018 'Mensonges ►Saison 3 Épisode 2-Wl72mu5rHHA.webm'
-rw-r--r-- 1 gg gg  88972562 avril 29  2018 'Mensonges ►Saison 3 Épisode 5-Hlf7fzfI-uk.mkv'
-rw-r--r-- 1 gg gg  84356986 avril 29  2018 'Mensonges ►Saison 3 Épisode 7-4y84pNXkR14.mkv'
-rw-r--r-- 1 gg gg  83595574 avril 30  2018 'Mensonges ►Saison 3 Épisode 8-mjX4k1l-dfo.mkv'
-rw-r--r-- 1 gg gg  91441744 avril 30  2018 'Mensonges ►Saison 3 Épisode 9-iYhtSXjHzYY.mkv'
-rw-r--r-- 1 gg gg  90781602 mai    3  2018 'Mensonges ►Saison 3 Épisode 6-lktGPfrBLGE.mkv'
-rw-r--r-- 1 gg gg  86354333 mai    8  2018 'Mensonges ►Saison 3 Épisode 10-uZpu-SVgsgA.mkv'
-rw-r--r-- 1 gg gg 133402353 mai   22  2018 "Mensonges S04E06 'Opération Jackpot'-SNzTZOv47fM.webm"

si je fais

 for f in $HOME/Mens* ; do set -x ;  ffmpeg -i "${f}" -c:v copy -c:a copy -ss 00:01:19.00 -t 30 "${f%.*}"_extrait.ts ; done

ça a l'air de fonctionner

je fais

"${f}"

car mes noms de fichiers contiennent des espaces

et

"${f%.*}"

donne le nom du fichier sans l'extension

le résultat

$ ls -alrt *extrait*
-rw-r--r-- 1 gg gg   69748 janv. 12 23:05 "Mensonges S04E06 'Opération Jackpot'-SNzTZOv47fM_extrait.ts"
-rw-r--r-- 1 gg gg       0 janv. 12 23:05 'Mensonges Saison 2 Épisode 10-Pue-ze6RxzQ_extrait.ts'
-rw-r--r-- 1 gg gg 1353788 janv. 12 23:05 'Mensonges ►Saison 3 Épisode 10-uZpu-SVgsgA_extrait.ts'
-rw-r--r-- 1 gg gg 1409248 janv. 12 23:05 'Mensonges ►Saison 3 Épisode 1-5YPY56s41Vs_extrait.ts'
-rw-r--r-- 1 gg gg   28952 janv. 12 23:05 'Mensonges ►Saison 3 Épisode 2-Wl72mu5rHHA_extrait.ts'
-rw-r--r-- 1 gg gg  862732 janv. 12 23:05 'Mensonges ►Saison 3 Épisode 3-ReHWBmzModo_extrait.ts'
-rw-r--r-- 1 gg gg 1930760 janv. 12 23:05 'Mensonges ►Saison 3 Épisode 4-YBthSwShfdY_extrait.ts'
-rw-r--r-- 1 gg gg 1299644 janv. 12 23:05 'Mensonges ►Saison 3 Épisode 5-Hlf7fzfI-uk_extrait.ts'
-rw-r--r-- 1 gg gg 1385184 janv. 12 23:05 'Mensonges ►Saison 3 Épisode 6-lktGPfrBLGE_extrait.ts'
-rw-r--r-- 1 gg gg 1373152 janv. 12 23:05 'Mensonges ►Saison 3 Épisode 7-4y84pNXkR14_extrait.ts'
-rw-r--r-- 1 gg gg 1507572 janv. 12 23:05 'Mensonges ►Saison 3 Épisode 8-mjX4k1l-dfo_extrait.ts'
-rw-r--r-- 1 gg gg 1253020 janv. 12 23:05 'Mensonges ►Saison 3 Épisode 9-iYhtSXjHzYY_extrait.ts'

Dernière modification par k3c (Le 12/01/2019, à 23:06)


Archlinux sur Xiaomi Air 13

Hors ligne

#6 Le 13/01/2019, à 10:30

k3c

Re : Script pour récupérer automatiquement des extraits de vidéo ?

tu voulais garder l'extension de tes fichiers, donc

for f in $HOME/Mens* ; do ffmpeg -i "${f}" -c:v copy -c:a copy -ss 00:01:19.00 -t 30 "${f%.*}"_extrait."${f##*.}" ; done

l'extension d'un fichier c'est

"${f##*.}"

résultat dans mon cas

gg@gg-UX305UA:~$ ls -alrt Men*extr*
-rw-r--r-- 1 gg gg 1785422 janv. 13 10:26 "Mensonges S04E06 'Opération Jackpot'-SNzTZOv47fM_extrait.webm"
-rw-r--r-- 1 gg gg     262 janv. 13 10:26 'Mensonges Saison 2 Épisode 10-Pue-ze6RxzQ_extrait.mp4'
-rw-r--r-- 1 gg gg 1153932 janv. 13 10:26 'Mensonges ►Saison 3 Épisode 10-uZpu-SVgsgA_extrait.mkv'
-rw-r--r-- 1 gg gg 1207178 janv. 13 10:26 'Mensonges ►Saison 3 Épisode 1-5YPY56s41Vs_extrait.mkv'
-rw-r--r-- 1 gg gg 1203656 janv. 13 10:26 'Mensonges ►Saison 3 Épisode 2-Wl72mu5rHHA_extrait.webm'
-rw-r--r-- 1 gg gg  707137 janv. 13 10:26 'Mensonges ►Saison 3 Épisode 3-ReHWBmzModo_extrait.mkv'
-rw-r--r-- 1 gg gg 1680008 janv. 13 10:26 'Mensonges ►Saison 3 Épisode 4-YBthSwShfdY_extrait.mkv'
-rw-r--r-- 1 gg gg 1112540 janv. 13 10:26 'Mensonges ►Saison 3 Épisode 5-Hlf7fzfI-uk_extrait.mkv'
-rw-r--r-- 1 gg gg 1168286 janv. 13 10:26 'Mensonges ►Saison 3 Épisode 6-lktGPfrBLGE_extrait.mkv'
-rw-r--r-- 1 gg gg 1172318 janv. 13 10:26 'Mensonges ►Saison 3 Épisode 7-4y84pNXkR14_extrait.mkv'
-rw-r--r-- 1 gg gg 1283654 janv. 13 10:26 'Mensonges ►Saison 3 Épisode 8-mjX4k1l-dfo_extrait.mkv'
-rw-r--r-- 1 gg gg 1047576 janv. 13 10:26 'Mensonges ►Saison 3 Épisode 9-iYhtSXjHzYY_extrait.mkv'
gg@gg-UX305UA:~$ 

si tu veux introduire un peu d'aléatoire pour aller chercher un extrait n'importe où, tu as la variable RANDOM

gg@gg-UX305UA:~$ echo $RANDOM
8049
gg@gg-UX305UA:~$ echo $RANDOM
19803
gg@gg-UX305UA:~$ 

à toi de modifier/adapter cette base de script

Dernière modification par k3c (Le 13/01/2019, à 16:30)


Archlinux sur Xiaomi Air 13

Hors ligne

#7 Le 13/01/2019, à 17:21

GammaDraconis

Re : Script pour récupérer automatiquement des extraits de vidéo ?

Merci k3c, ça fonctionne ! smile


Ultrabook : Xiaomi Air 13 [ Intel i5 7e, 8 Go ram, 2xSSD, GeForce MX150, dualboot Archlinux/Xfce & Ubuntu 18.04/GS
Tour : AMD Ryzen 7 2700X Octo-Core/16 Threads 3.7GHz, 32 Go de Ram ddr4 3000Mhz - 4.5 To dont 512 Go SSD - nVidia GeForce 2060RTX 6Go GDDR6) : tripleboot UbuntuDev & Arch & w10
Mon script de post-install Ubuntu/Arch : https://forum.ubuntu-fr.org/viewtopic.php?id=2026344

Hors ligne

#8 Le 13/01/2019, à 19:24

k3c

Re : Script pour récupérer automatiquement des extraits de vidéo ?

super

si c'est ok, peux-tu modifier ton 1er message, et ajouter
[Résolu]
au début du titre ?


Archlinux sur Xiaomi Air 13

Hors ligne