Come posso convertire un video WMV 1080p in un video 720p?


14

Ho un video wmv 1080p che vorrei convertire in un video di qualità inferiore (preferibilmente 720p). Vorrei mantenere l'audio intatto. Come posso farlo in Ubuntu?

Risposte:


16

Dato che hai usato un tag ffmpeg, lo userò per la risposta.

ffmpeg -i input.wmv -s hd720 -c:v libx264 -crf 23 -c:a aac -strict -2 output.mp4

Cambia la qualità del video specificando un diverso parametro CRF. Consulta la guida alla codifica x264 per maggiori informazioni.


1
L'opzione 'sameq' è stata rimossa. Se stai cercando un'opzione per preservare la qualità (che non era lo scopo di -sameq), usa -qscale 0 o un'opzione di fattore qualità equivalente.
juanmah,

Secondo il wiki di ffmpeg , questo può essere semplice come:ffmpeg -i input.avi -vf scale=-1:720 output.avi
andersonvom

4

Il tempo è passato un po 'da quando la risposta originale accettata per questa domanda nel 2012. Le versioni più recenti di FFmpeg sarebbe meglio usare il filtro video' scale 'di FFmpeg.

Faccio un esempio di seguito, usando questo filtro, che copia semplicemente anche la traccia audio come da lei richiesto:

ffmpeg -i input.wmv \
       -c:v libx264 -preset veryslow -tune film -crf 22 -vf scale=-2:720 \
       -c:a copy \
       output.mp4

L' -tune filmopzione sopra indicata può essere omessa o potresti provare a -tune animationseconda del tipo di video clip che stai utilizzando.

Se hai deciso di voler transcodificare l'audio, una buona scelta sarebbe quella di utilizzare la libreria esterna libfdk_aac come segue:

ffmpeg -i input.wmv \
       -c:v libx264 -preset veryslow -tune film -crf 22 -vf scale=-2:720 \
       -c:a libfdk_aac -b:a 128k \
       output.mp4

Questo è certamente quello che farei con un file wmv che stavo ridimensionando, troverai i risultati più che accettabili ...


1

Se vuoi mantenere intatte tutte le tracce audio, i sottotitoli e così via, dovresti usare qualcosa del genere:

ffmpeg -i input.mkv \
       -map 0:0 -map 0:1 -map 0:2 -map 0:3 -map 0:4 \
       -vf scale=-1:720 -c:v libx264 -crf 18 -preset veryslow \
       -c:a:0 copy -c:a:1 copy -c:s copy \
       output.mkv

In questo caso, il file input.mkv ha due tracce audio e due sottotitoli. Puoi specificare tutte le tracce audio (o sottotitoli, o video, ecc.) Una per una o come singola entità (come ho specificato per i sottotitoli).

Spero che sia d'aiuto...


1
Non è necessario specificare ciascun flusso nel modo sopra: al -map 0:0 -map 0:1 -map 0:2 -map 0:3 -map 0:4 contrario, è possibile specificare semplicemente -map 0invece. Ciò selezionerà automaticamente tutti i flussi nell'ingresso 0. simile con i codec di copia audio. Le uniche opzioni di codec che devi specificare sono -c:copy -c:v libx264. Ciò significa: "imposta tutti i codec stream da copiare, tranne i video che dovrebbero transcodificare su x264".
Cheekysoft,

Equivalente (mostra l'ordinamento dei parametri):ffmpeg -i input.mkv -map 0 -vf scale=-1:720 -c:copy -c:v libx264 -crf 18 -preset veryslow output.mkv
Cheekysoft,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.