Convertire file video con Python
Versione italiana
Convertire File Video con Python
Ecco i metodi più efficaci per convertire video tra diversi formati usando Python:
1. Usando MoviePy (il metodo più semplice)
from moviepy.editor import VideoFileClip
# Convertire MP4 a GIF
video = VideoFileClip("input.mp4")
video.write_gif("output.gif")
# Convertire AVI a MP4
video = VideoFileClip("input.avi")
video.write_videofile("output.mp4", codec='libx264')2. Con FFmpeg (via subprocess - più formati supportati)
import subprocess
# Convertire MKV a MP4
subprocess.run([
'ffmpeg', '-i', 'input.mkv',
'-c:v', 'libx264', '-preset', 'fast',
'-c:a', 'aac', '-b:a', '192k',
'output.mp4'
])3. Conversione batch (più file alla volta)
from moviepy.editor import VideoFileClip
import os
input_folder = "videos/"
output_folder = "converted/"
os.makedirs(output_folder, exist_ok=True)
for file in os.listdir(input_folder):
if file.endswith((".mp4", ".avi")):
video = VideoFileClip(f"{input_folder}/{file}")
video.write_videofile(
f"{output_folder}/{os.path.splitext(file)[0]}.mp4",
codec='libx264',
audio_codec='aac'
)4. Cambiare risoluzione e bitrate
from moviepy.editor import VideoFileClip
video = VideoFileClip("input.mp4")
video = video.resize(height=480) # Riduci a 480p
video.write_videofile(
"output.mp4",
bitrate="1000k", # Bitrate video
audio_bitrate="128k" # Bitrate audio
)5. Installazione librerie necessarie
pip install moviepy ffmpeg-python
# Su Linux/Ubuntu anche:
sudo apt install ffmpegFormati supportati:
- Input: MP4, AVI, MOV, MKV, FLV, WMV, GIF, ecc.
- Output: MP4, GIF, AVI, MOV, WEBM, ecc.
Esempi avanzati:
1. Estrarre audio da video
from moviepy.editor import VideoFileClip
video = VideoFileClip("input.mp4")
video.audio.write_audiofile("audio.mp3")2. Tagliare e convertire
from moviepy.editor import VideoFileClip
video = VideoFileClip("input.mp4")
# Taglia i primi 10 secondi
short_clip = video.subclip(0, 10)
short_clip.write_videofile("short_output.mp4")3. Convertire con parametri specifici
subprocess.run([
'ffmpeg', '-i', 'input.mov',
'-c:v', 'libvpx-vp9', # Codec video
'-crf', '30', # Qualità (0-63)
'-b:v', '0', # Bitrate variabile
'-c:a', 'libopus', # Codec audio
'output.webm'
])Consigli:
- Per massima compatibilità usa MP4 con codec H.264
- Per qualità senza perdite usa MOV/AVI con codec non compresso
- Per il web usa WEBM/MP4 con codec VP9/H.265
- FFmpeg offre più controllo ma è più complesso
- MoviePy è più semplice ma meno flessibile
English version
Convert Video Files with Python
Here are the most effective methods for converting videos between different formats using Python:
1. Using MoviePy (the simplest method)
from moviepy.editor import VideoFileClip
# Convert MP4 to GIF
video = VideoFileClip("input.mp4")
video.write_gif("output.gif")
# Convert AVI to MP4
video = VideoFileClip("input.avi")
video.write_videofile("output.mp4", codec='libx264')2. With FFmpeg (via subprocess - more formats supported)
import subprocess
# Convert MKV to MP4
subprocess.run([
'ffmpeg', '-i', 'input.mkv',
'-c:v', 'libx264', '-preset', 'fast',
'-c:a', 'aac', '-b:a', '192k',
'output.mp4'
])3. Batch conversion (multiple files at a time)
from moviepy.editor import VideoFileClip
import os
input_folder = "videos/"
output_folder = "converted/"
os.makedirs(output_folder, exist_ok=True)
for file in os.listdir(input_folder):
if file.endswith((".mp4", ".avi")):
video = VideoFileClip(f"{input_folder}/{file}")
video.write_videofile(
f"{output_folder}/{os.path.splitext(file)[0]}.mp4",
codec='libx264',
audio_codec='aac'
)4. Change resolution and bitrate
from moviepy.editor import VideoFileClip
video = VideoFileClip("input.mp4")
video = video.resize(height=480) # Reduce to 480p
video.write_videofile(
"output.mp4",
bitrate="1000k", # Video bitrate
audio_bitrate="128k" # Audio bitrate
)5. Install required libraries
pip install moviepy ffmpeg-python
# On Linux/Ubuntu also:
sudo apt install ffmpegSupported formats:
- Input: MP4, AVI, MOV, MKV, FLV, WMV, GIF, etc.
- Output: MP4, GIF, AVI, MOV, WEBM, etc.
Advanced Examples:
1. Extract audio from video
from moviepy.editor import VideoFileClip
video = VideoFileClip("input.mp4")
video.audio.write_audiofile("audio.mp3")2. Trim and convert
from moviepy.editor import VideoFileClip
video = VideoFileClip("input.mp4")
# Trim the first 10 seconds
short_clip = video.subclip(0, 10)
short_clip.write_videofile("short_output.mp4")3. Convert with specific parameters
subprocess.run([
'ffmpeg', '-i', 'input.mov',
'-c:v', 'libvpx-vp9', # Video codec
'-crf', '30', # Quality (0-63)
'-b:v', '0', # Variable Bitrate
'-c:a', 'libopus', # Audio Codec
'output.webm'
])Tips:
- For maximum compatibility, use MP4 with the H.264 codec.
- For lossless quality, use MOV/AVI with the uncompressed codec.
- For the web, use WEBM/MP4 with the VP9/H.265 codec.
- FFmpeg offers more control but is more complex.
- MoviePy is simpler but less flexible.
Puoi seguire anche il mio canale YouTube https://www.youtube.com/channel/UCoOgys_fRjBrHmx2psNALow/ con tanti video interessanti
I consigli che offriamo sono di natura generale. Non sono consigli legali o professionali. Quello che può funzionare per una persona potrebbe non essere adatto a un’altra, e dipende da molte variabili.
Per supportare e far crescere il canale in modo semplice, rapido e gratuito, potete fare acquisti su amazon usando il mio link di affiliazione.
Questo implica che io prenda una commissione ogni volta che qualcuno faccia un qualsiasi acquisto utilizzando il mio link di affiliazione https://amzn.to/4cgJ3Ls
Commenti
Posta un commento