Convertire file video con Python

Convertire file video con Python

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 ffmpeg

Formati 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:

  1. Per massima compatibilità usa MP4 con codec H.264
  2. Per qualità senza perdite usa MOV/AVI con codec non compresso
  3. Per il web usa WEBM/MP4 con codec VP9/H.265
  4. FFmpeg offre più controllo ma è più complesso
  5. 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 ffmpeg

Supported 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:

  1. For maximum compatibility, use MP4 with the H.264 codec.
  2. For lossless quality, use MOV/AVI with the uncompressed codec.
  3. For the web, use WEBM/MP4 with the VP9/H.265 codec.
  4. FFmpeg offers more control but is more complex.
  5. 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