Bagaimana saya bisa mengkonversi video 1080p wmv ke video 720p?

14

Saya punya video 1080p wmv yang ingin saya konversi menjadi video dengan kualitas lebih rendah (lebih disukai 720p). Saya ingin menjaga audio tetap utuh. Bagaimana saya bisa melakukan ini di Ubuntu?

James
sumber

Jawaban:

16

Karena Anda menggunakan tag ffmpeg saya akan menggunakannya untuk jawabannya.

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

Ubah kualitas video dengan menentukan parameter CRF yang berbeda. Lihat panduan penyandian x264 untuk info lebih lanjut.

duffydack
sumber
1
Opsi 'sameq' telah dihapus. Jika Anda mencari opsi untuk mempertahankan kualitas (yang bukan untuk apa-samaq), gunakan -qscale 0 atau opsi faktor kualitas setara.
juanmah
Menurut wiki ffmpeg , ini bisa sesederhana:ffmpeg -i input.avi -vf scale=-1:720 output.avi
andersonvom
4

Waktu telah sedikit bergerak sejak jawaban asli yang diterima untuk pertanyaan ini pada 2012. Versi FFmpeg yang lebih baru akan lebih baik menggunakan filter video 'skala' FFmpeg.

Saya memberikan contoh di bawah ini, menggunakan filter ini, yang juga cukup menyalin trek audio seperti yang Anda minta:

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

The -tune filmpilihan yang diberikan di atas dapat dihilangkan atau Anda bisa mencoba -tune animationtergantung pada jenis klip video yang Anda gunakan.

Jika Anda memutuskan bahwa Anda akan ingin transcode pilihan yang baik audio akan menggunakan libfdk_aac perpustakaan eksternal sebagai berikut:

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

Ini tentu yang akan saya lakukan dengan file wmv yang saya diskalakan, Anda akan menemukan hasilnya lebih dari yang dapat diterima ...

andrew.46
sumber
1

Jika Anda ingin tetap utuh semua track audio, subtitle dan sebagainya, Anda harus menggunakan sesuatu seperti ini:

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

Dalam hal ini, file input.mkv memiliki dua track audio dan dua subtitle. Anda dapat menentukan semua trek audio (atau subtitle, atau video, dll.) Satu per satu atau sebagai entitas tunggal (seperti yang saya tentukan untuk subtitle).

Semoga ini bisa membantu ...

adsuar
sumber
1
Anda tidak perlu menentukan setiap aliran dengan cara di atas: -map 0:0 -map 0:1 -map 0:2 -map 0:3 -map 0:4 Alih-alih, Anda bisa menentukannya -map 0saja. Ini akan secara otomatis memilih semua stream dalam input 0. mirip dengan codec salinan audio. Satu-satunya opsi codec yang perlu Anda tentukan adalah -c:copy -c:v libx264. Ini berarti: "setel semua stream stream untuk disalin, kecuali video yang seharusnya transcode ke x264."
Cheekysoft
Setara (menunjukkan pemesanan parameter):ffmpeg -i input.mkv -map 0 -vf scale=-1:720 -c:copy -c:v libx264 -crf 18 -preset veryslow output.mkv
Cheekysoft