Se preferisci la riga di comando puoi usare ffmpeg
(o handbrake-cli
).
MP4
Supponendo che stai utilizzando una versione recente di ffmpeg
:
ffmpeg -i input -c:v libx264 -crf 23 -preset medium -c:a aac -b:a 128k \
-movflags +faststart -vf scale=-2:720,format=yuv420p output.mp4
-crf
: Qualità. L'intervallo è logaritmico da 0 (senza perdita) a 51 (peggiore qualità). Il valore predefinito è 23. L'intervallo sano soggettivo è ~ 18-28 o giù di lì. Usa il valore più alto che ti dà ancora una qualità accettabile. Se stai ricodificando in modo poco pratico input di grandi dimensioni da caricare su YouTube o simili, prova un valore di 17 o 18 poiché questi servizi video ricodificheranno comunque.
-preset
: Velocità di codifica. Una preimpostazione più lenta fornisce una migliore compressione (qualità per dimensione del file) ma è più lenta. Usa il più lento per cui hai pazienza: ultraveloce, superveloce, molto veloce, più veloce, veloce, medio (predefinito), lento, più lento, veryslow.
-movflags +faststart
: Consente la riproduzione del video prima che venga scaricato completamente in caso di visualizzazione a download progressivo. Utile se stai ospitando il video, altrimenti superfluo se il caricamento su un servizio video come YouTube.
-vf scale=-2:720,format=yuv420p
: Un filtro grafico che utilizza i filtri video per ridimensionare e formattare . Ridimensiona a 720 pixel in altezza e scegli automaticamente la larghezza che conserverà l'aspetto, quindi assicurati che il formato dei pixel sia compatibile con i lettori stupidi.
-b:a 128k
: Bitrate audio. Se il tuo ffmpeg
è obsoleto, dovrai aggiungerlo -strict experimental
per usarlo -c:a aac
.
MOV
Poiché i tuoi file MOV e MP4 probabilmente contengono gli stessi formati video e audio, puoi codificare MP4 ed effettuare il MOV re-muxing (con modalità copia stream ) anziché ricodificare:
ffmpeg -i input.mp4 -codec copy output.mov
WMV
FFmpeg supporta solo WMV 7 e 8. Non sono a conoscenza di un codificatore open source per la versione 9.
$ ffmpeg -encoders | grep -i windows
[...]
V..... = Video
A..... = Audio
------
V..... wmv1 Windows Media Video 7
V..... wmv2 Windows Media Video 8
A..... wmav1 Windows Media Audio 1
A..... wmav2 Windows Media Audio 2
Dato che non ho familiarità con questi codificatori, posso solo fornire un esempio non testato:
ffmpeg -i input -c:v wmv2 -b:v 1024k -c:a wmav2 -b:a 192k output.wmv
Ottenere ffmpeg
Puoi scaricare una build Linux di ffmpeg o seguire una guida dettagliata alla compilazione di ffmpeg per personalizzare la tua build.
Utilizzando un bash "for loop" per eseguire una codifica batch
Per codificare tutti i video in una directory:
$ mkdir encoded
$ for f in *.avi; do ffmpeg -i "$f" -c:v libx264 -crf 23 -preset medium \
-c:a aac -b:a 128k -movflags +faststart -vf scale=-2:720,format=yuv420p \
"encoded/${f%.avi}.mp4"; done
Vedi anche