ffmpeg - comment incrementer le nom du fichier

Python est le langage de prédilection du Raspberry Pi

Modérateurs : Francois, Manfraid

Répondre
cide
Messages : 9
Enregistré le : mer. 31 mars 2021 14:37

ffmpeg - comment incrementer le nom du fichier

Message par cide » jeu. 29 avr. 2021 15:33

Bonjour,

J'essaye d'installer ffmpeg pour l'utiliser dans python mais je n'y arrive pas. Ffmpeg a quand même été installé sur le raspberry parce que je peux utiliser une commande avec le subprocess mais je ne peux pas utiliser import ffmpeg.

Si quelqu'un sait comment on installe ffmpeg pour python cela m’intéresse.
Pour l'instant j'utilise ce code pour compiler un fichier vidéo et un fichier audio ensemble en un mkv. . Les fichiers sont enregistrés via la camera raspberry et raspiaudio ultra+

import subprocess

cmd = 'ffmpeg -i /home/pi/Videos/video.h264 -i /home/pi/Videos/audio.wav -c:v copy -c:a copy /home/pi/Videos/output.mkv'
subprocess.call(cmd, shell=True)
print('Done')

Cela fonctionne correctement mais j'aimerais pouvoir incrémenter le fichier output pour lancer le processus plusieurs fois de suite. Comment réaliser cela?

merci

piper
Raspinaute
Messages : 641
Enregistré le : sam. 5 juin 2021 18:57

Re: ffmpeg - comment incrementer le nom du fichier

Message par piper » sam. 5 juin 2021 21:12

Bonjour,
Concernant l'incrémentation du nom de fichier, tu as plusieurs options : je suppose que tu veux qu'après une extinction/redémarrage, l'incrémentation fonctionne.
Donc tu dois utilisé un stockage du numéro à l'extérieur de ton programme (pas en mémoire)
- soit tu trouves dynamiquement en lisant le contenu du répertoire, quel était le numéro (c'est ce que je ferais)
- soit tu créé un fichier avec le numéro actuel (je dirais que c'est la méthode que choisirai un débutant)

Dans la 2ième option, en cas d'extinction brutale, tu risques de perdre le précieux numéro (fichier mal écrit)
La 1ère est je pense la meilleur.
Pour ça tu scannes le contenu de ton répertoire de stockage

import os
....................
numerodefichier=0 #initialisation
listefichier= os.listdir("monrépertoiredestockage") # récupérer tous les noms de fichiers
for monfichier in listefichiers: # passer en revu chaque nom de fichier
#Décortique le nom du fichier "monfichier" pour retrouver le numéro (n) du fichier en cours (un split devrait faire l'affaire si tu utilises des séparateurs)
# exemple : si ton fichier est du genre blablabla_numero.mkv
nom=os.path.splitext(os.path.basename(monfichier))[0] # retirer la partie extension et la partie dossier, nom vaut blablabla_numero
try:
n=int(nom.split("_")[1]) # vaut le numéro
except:
n=-1 # nom de fichier mal formaté : le numéro n'est pas un nombre
if n>numerodefichier:
numerodefichier=n

That's all

Il y a plus optimisé mais cette méthode est facilement compréhensible.

Désolé pour le code : apparement les BBCodes sont désactivés

Bud Spencer
Raspinaute
Messages : 1089
Enregistré le : lun. 15 août 2016 21:38

Re: ffmpeg - comment incrementer le nom du fichier

Message par Bud Spencer » dim. 6 juin 2021 10:12

Ou tout simplement nommer le fichier avec un timestamp (ou une chaine date time formatée). C'est beaucoup plus simple et ca permet d'horodater le fichier.
Le premier ennemi de la connaissance n’est pas l’ignorance, c’est l’illusion de la connaissance (S. Hawking).

Répondre

Retourner vers « Python »