Pengaturan rem tangan untuk mengubah MKV ke MP4 dengan tetap mempertahankan kualitas aslinya

44

Saya memiliki banyak file MKV yang perlu saya konversi menjadi MP4 dan perangkat lunak pilihan saya adalah Handbrake.

Saya terjebak pada pengaturan mana yang terbaik untuk konversi. Saya ingin mempertahankan kualitas penuh. Apakah saya hanya mengonversi dengan pengaturan asli dan tidak mengubah apa pun atau apakah ada hal khusus yang perlu saya ubah?

Jeruk
sumber
Berikut adalah panduan yang cukup terperinci tentang pengaturan Handbrake mattgadient.com/2013/06/12/...
janot
saya mendapatkan kesalahan pada beberapa file (untuk mkv ke mp4 dan mp4 ke mkv): File keluaran # 0 tidak mengandung aliran apa pun. Adakah yang tahu apa artinya ini?
PrimitiveNom

Jawaban:

86

Apa masalah dengan Handbrake?

Saat Anda menggunakan Handbrake untuk mengonversi dari satu format wadah ke format lain (yaitu MKV ke MP4 dalam kasus Anda), Handbrake akan menyandikan ulang video. Lihat juga permintaan fitur masing - masing yang akan memungkinkan video lolos:

Maaf, menambahkan video passthrough tidak direncanakan. HandBrake dirancang untuk menjadi transcoder video. Itu tidak dirancang untuk memungkinkan passthrough.

Jadi, kapan pun Anda mengganti wadah dengan Handbrake, video Anda akan disandikan ulang, yang artinya a) membutuhkan waktu dan b) dapat menyebabkan penurunan kualitas.

Apakah saya harus menyandikan ulang? Tidak bisakah saya menukar wadah saja?

Karena passthrough tidak mungkin, tanyakan pada diri sendiri: Apakah saya perlu menyandikan ulang? Jika Anda hanya ingin mengubah wadah dari MKV ke MP4, Anda biasanya tidak perlu menyandikan apa pun , Anda cukup mengubah "pembungkus" di sekitar video. Ini tidak kehilangan kualitas, dan itu akan menjadi proses yang jauh lebih cepat.

Anda dapat bertukar wadah dengan mudah dengan FFmpeg - Anda hanya perlu mengatakannya untuk menyalin aliran video dan audio:

ffmpeg -i input.mkv -c copy -map 0 output.mp4

Ada juga alat-alat seperti MP4Box yang juga dapat membuat wadah MP4 - yang sama ada untuk MKV dengan MKVtoolnix .

Namun, ada peringatan besar: ini hanya berfungsi jika codec audio dan video didukung dalam wadah target (MP4), yang merupakan kasus untuk H.264 / H.265 dan AAC, misalnya, tetapi tidak untuk banyak lainnya. Juga, dukungan format subtitle untuk MP4 berbeda dari MKV, dan sebenarnya cukup terbatas, sehingga perintah ini mungkin gagal.

Jika perintah ini tidak berfungsi, dan jika input Anda menggunakan codec yang salah untuk wadah keluaran, Anda mungkin harus menyandikan ulang . Dalam hal ini, codec akan disesuaikan dengan wadah keluaran.

Untuk memahami mengapa ini perlu, penting untuk mempelajari perbedaan antara codec video dan wadah . Ini akan membantu Anda memahami mengapa wadah berubah berfungsi dan mengapa wadah MP4 dan MKV tidak ada hubungannya dengan codec video, sebenarnya.

Lagi pula, mengapa meng-enkode ulang buruk?

Anda dapat (biasanya) tidak mempertahankan kualitas penuh saat menyandikan video yang sudah disandikan. Ini karena yang asli telah dikompres dengan membuang informasi, dan dengan melakukannya lagi Anda memperkenalkan kehilangan generasi .

Seringkali, Anda ingin menyandikan ulang video ketika misalnya dimensinya berubah, atau Anda memerlukan bit rate khusus untuk memasukkan aliran video Anda, atau video asli Anda menggunakan codec yang tidak dapat Anda putar karena alasan apa pun.

Jadi, jika Anda memuat video MKV Anda ke dalam Handbrake, dan menyandikannya kembali dengan x264, yang digunakan Handbrake encoder H.264, simpan dalam wadah MP4, Anda akan kehilangan kualitas tidak peduli apa pun, kecuali jika Anda mengatur bitrate atau faktor kualitas sangat tinggi sehingga Anda tidak akan (benar-benar) melihat perbedaannya. Tetapi kemudian, ukuran file akan lebih besar juga.

Dalam kasus yang ideal, Anda akan mengonversi video menjadi video yang tidak terkompresi, yang tidak akan kehilangan kualitas apa pun bagi Anda, tetapi memberi Anda file selusin Gigabytes dalam ukuran, bahkan untuk beberapa menit materi video.

Oke, tapi aku benar-benar harus menyandikan ulang!

Jika Anda benar - benar harus menyandikan ulang, pastikan untuk tidak mengatur bitrate rata-rata, tetapi pilih Constant Rate Factor , yang merupakan sesuatu seperti "kualitas konstan". Sama seperti "variable bit rate" untuk MP3: Ini akan memastikan untuk menghabiskan bit pada bagian video yang membutuhkannya dan membuat kualitas keseluruhan lebih baik - pada ukuran file yang sama.

Nilai-nilai Sane CRF adalah dari 19 hingga 24, di mana lebih rendah berarti "lebih baik". Jadi, Anda bisa mencoba dengan Faktor Tingkat 19. Selain itu, pastikan untuk mengatur profil "Tinggi", yang memungkinkan pembuat enkode menggunakan semua bel dan peluit dan mengoptimalkan kualitas untuk bit rate yang diberikan.

slhck
sumber
Terima kasih! Tampaknya hanya Anda satu-satunya yang peduli dengan pertanyaan ini dan membantu saya, saya mengikuti saran Anda dan tampaknya kualitasnya sama seperti aslinya! :)
oranye
Untuk beberapa file mkv ini akan gagal dengan (Tidak dapat menulis header untuk file output ... codec salah). Gunakan ffprobe -i file.mkv untuk melihat format apa a / v, Anda mungkin perlu men-reode dengan video x264 dan audio aac / ac3
ski_squaw
u 100% yakin bahwa menulis ulang file tidak menyebabkan penurunan kualitas ??
PrimitiveNom
1
@BallpointBen Tidak mungkin, tidak: github.com/HandBrake/HandBrake/issues/…
slhck
1
@Hashim, saya mencoba mengklarifikasi posting seperti yang diminta. Dan mengenai pertanyaan Anda, karena Handbrake tidak mengizinkan passthrough, mengubah dari MP4 ke MKV akan menimbulkan penurunan kualitas. Dan itu akan memakan banyak waktu. Lakukan saja ffmpeg -i input.mp4 -c copy output.mkvdan Anda harus baik-baik saja.
slhck
4

Ini bekerja sangat baik untuk saya. Di bawah ini adalah kode untuk mengkonversi semua file .mkv ke .mp4 di windows.

  • Anda mungkin perlu menambahkan ffmpeg ke jalur Anda. Anda bisa meletakkan path lengkap ke ffmpeg yang dapat dieksekusi, D: \ apps \ ffmpeg \ bin \ ffmpeg.exe
  • Unduh ffmpeg untuk windows di sini.
  • Penggunaan: Jatuhkan file .mkv ke dalamnya. Ini akan melakukan seluruh direktori.

Simpan dalam file bernama convert.bat.

for %%a in ("*.mkv") do ffmpeg.exe -i "%%a" -vcodec copy -acodec copy "%%~na .mp4"
pause
MonkeyMagic
sumber
Bekerja seperti pesona.
Kit Johnson
Saya meletakkan ini di folder dengan ffmpeg.exe dan kemudian mengubahnya kefor %%a in ("*.mkv") do %~dp0ffmpeg.exe -i "%%a" -vcodec copy -acodec copy "%%~na .mp4"
davidtbernal