Sur la base de cette réponse, vous pouvez utiliser ffmpeg avec les commandes suivantes pour faire pivoter une vidéo:
ffmpeg -i input -vf transpose=2 output
Pour traiter par lots un dossier de films, vous pouvez utiliser un langage de programmation de votre choix et parcourir les fichiers. J'ai utilisé linux avec python 2.7+ ici. Il vous suffit de modifier le folder_movies
chemin path_to_ffmpeg
et de définir votre film extension
:
import os # import os module
import subprocess # import subprocess module
# set the path to your video folder
folder_movies = '/home/user/Desktop/test/'
# set ffmpeg path
path_to_ffmpeg = "/opt/ffmpeg/ffmpeg"
# set file extension
ext = ".mp4"
# collect all videos in folder_movies
movie_files = [f for f in os.listdir(folder_movies) if f.endswith(ext)]
# iterate through the files
for i in movie_files:
# setup correct filepath for mov's
file_path = os.path.join(folder_movies,i)
# generate new file path
new_path = os.path.splitext(file_path)[0] + '_rotated_90' + ext
# call ffmpeg with the correct arguments
# command: ffmpeg -i input -vf transpose=2 output
subprocess.call([path_to_ffmpeg, "-i", file_path, "-vf", "transpose=2", "-c:a", "copy", new_path])
Ensuite, votre dossier de film devrait ressembler à:
L'avantage d'utiliser python est que le code s'exécute sur plusieurs plateformes . La seule chose que vous devez considérer sont les chemins vers le répertoire et l'exécutable ffmpeg. Pour exécuter cela sur une machine Windows, il vous suffit de remplacer les chemins d'accès par quelque chose comme:
# folder_movies = '/home/user/Desktop/test/' # linux or osx
folder_movies = r'c:\some\directory\test' # windows, the r is important
folder_movies = 'c:/some/directory\test' # windows (alternative)
# path_to_ffmpeg = '/opt/ffmpeg/ffmpeg' # linux or osx
path_to_ffmpeg = r'c:\Program Files\ffmpeg\ffmpeg' # windows, the r is important
path_to_ffmpeg = 'c:/Program Files/ffmpeg\ffmpeg' # windows (alternative)
Remarque: je ne suis pas un expert de ffmpeg, il existe peut-être un moyen de traiter par lots directement avec lui.