Parameter apa yang harus saya perhatikan untuk mengurangi ukuran file .MOV?


12

Canon 60D saya membuat file .MOV saat merekam video dan saya menemukan bahwa .MOV container memiliki aliran video H264 dan aliran audio PCM.

Saya telah menggunakan ffmpeg dan GSpot untuk melihat beberapa video saya, dan saya melihat bitrate yang tampaknya cukup tinggi (22.000 kbps untuk 640x480, 45.000 untuk 1920x1080).

Saya ingin mengurangi ukuran file, tetapi menjaga kualitasnya cukup tinggi. Saya telah bermain-main dengan hal paling sederhana yang dapat saya pikirkan, mengurangi bit rate dan melakukan apa yang saya harapkan: memotong bitrate menjadi dua dan ukuran file sekitar setengah. Tapi saya bertanya-tanya apakah ada cara untuk menentukan bitrate target "baik", atau apakah ada gunanya mencoba melakukan bitrate variabel.

Jawaban:


21

Tapi saya bertanya-tanya apakah ada cara untuk menentukan bitrate target "baik" ...

Target bit rate yang baik adalah bit rate yang:

  • didukung oleh jaringan asal materi (misalnya jaringan 3G, WiFi rumah, dll.), yang cukup mudah untuk dihitung
  • terlihat bagus untuk Anda , yang merupakan ukuran yang sangat subjektif

22 Mbit / s atau 45 Mbit / s memang cukup tinggi untuk pengguna rata-rata, dan terutama untuk video yang sudah dikompresi seperti h.264. Anda pasti bisa melanjutkan dan mengurangi bit rate ke nilai "waras", selalu berkaitan dengan berapa banyak kapasitas penyimpanan yang Anda mampu dan berapa banyak kualitas yang ingin Anda hilangkan.

Anda juga dapat mengubah ukuran video 1080p menjadi 720p jika Anda tidak benar-benar membutuhkan ukurannya atau tidak memiliki kemampuan pemrosesan untuk mengeditnya.

... atau jika ada gunanya mencoba melakukan bitrate variabel

Inti dari laju bit konstan adalah untuk beradaptasi dengan skenario media streaming di mana ada hambatan yang membatasi laju bit maksimum dari video yang dikirimkan. Dalam dunia multimedia saat ini, ini tidak selalu masuk akal lagi.

Saat Anda memeras video ke dalam jumlah bit konstan per detik, pada dasarnya Anda memberi tahu seorang pembuat kode untuk selalu menggunakan jumlah bit yang sama untuk menyandikan kerangka waktu yang sama. Apakah itu pendekatan terbaik? Seperti yang sudah Anda tebak sekarang, ternyata tidak. Mengutip Panduan CRF dari Handbrake (saya akan kembali ke sini nanti):

Mata merasakan lebih banyak detail pada objek diam daripada saat bergerak. Karena itu, kompresor video dapat menerapkan lebih banyak kompresi (mengurangi lebih banyak detail) ketika segala sesuatu bergerak, dan menerapkan lebih sedikit kompresi (mempertahankan lebih banyak detail) ketika semuanya diam. Subyektif, video tampaknya akan memiliki kualitas yang lebih tinggi.

Jadi, tidak masuk akal untuk menggunakan bit rate variabel kapanpun Anda bisa. Ini akan membuat video terlihat lebih baik, bahkan pada ukuran file yang sama dari video laju bit konstan.

Terlebih lagi, sebagian besar pembuat enkode - yang paling terkenal adalah x264 - sering tampil sangat baik buruk ketika Anda memberi tahu mereka untuk menggunakan bit rate yang konstan. Lebih baik memberi mereka sedikit lebih "kebebasan" dalam arti berapa banyak bit yang ingin mereka habiskan untuk sebuah bingkai. Lagi pula, itulah tugas pembuat enkode, dan bukan Anda. Dan itu disebut "kualitas konstan".


Cukup itu - apa artinya itu dalam praktik? Jika Anda menggunakan FFmpeg untuk menyandikan video, maka Anda sudah menggunakan alat yang cukup bagus. Jika sekarang Anda juga sudah menginstal x264, dan menggunakan versi terbaru keduanya, maka Anda menggunakan salah satu penyandi terbaik yang saat ini tersedia secara gratis. Alih-alih menyandi dengan bit rate tetap, biarkan x264 memilih berapa banyak yang ingin dibelanjakan. Lakukan ini dengan menggunakan opsi Constant Rate Factor .

Dalam kasus yang sangat sederhana ini berarti menetapkan nilai antara 17 dan 23. Saya memilih MP4 sebagai wadah keluaran daripada MOV karena ada alat yang lebih baik untuk remultiplexing yang tersedia:

ffmpeg -i input.mov -c:v libx264 -crf 22 output.mp4

Semakin rendah nilainya, semakin baik kualitasnya, dan semakin besar outputnya. Begitu pula sebaliknya, semakin tinggi, semakin rendah kualitasnya. Pada saat yang sama, Anda tentu saja akan mengurangi bit rate rata-rata yang dibutuhkan. Periksa panduan penyandian x264 untuk info lebih lanjut tentang ffmpeg.

Tugas Anda sekarang adalah menemukan nilai CRF yang:

  • mengurangi laju bit keseluruhan ke titik yang Anda mampu
  • tidak mengurangi kualitas terlalu banyak, sehingga video masih terlihat bagus

Ya, ini melibatkan banyak penyandian dan coba-coba, tetapi ini adalah urusan sehari-hari ketika Anda menyetel dan menyandikan video.

Oh, dan jika Anda tidak suka baris perintah, Handbrake adalah alat lintas platform gratis yang melakukan persis sama. Bahkan memiliki slider CRF:

masukkan deskripsi gambar di sini


Mengenai detail objek bergerak, bukankah itu berlebihan secara teratur dalam kompresi video, atau apakah saya hanya ingat contoh buruknya? Seperti peningkatan nyata yang terlihat begitu kamera berhenti panning, dll.
Daniel Beck

Ini sebenarnya cukup umum, dikenal sebagai masalah "menstabilkan". Misalnya, ketika Anda melihat blokade menghilang. Ini adalah tipikal untuk skenario bitrate rendah di mana perubahan perbedaan gerak terlalu cepat untuk diadaptasi oleh kontrol laju. Saya akan berasumsi bahwa dua-pass encoding dapat membantu di sini, tetapi mungkin tidak banyak. Saya tidak tahu apakah mungkin untuk sepenuhnya menghilangkan artefak semacam ini.
slhck

Saya telah menggunakan Handbrake di masa lalu, mengkonversi DV avis dari videocam ke DivX dan mp4, tetapi saya merasa lebih mudah untuk bekerja dengan baris perintah ketika mencoba mencari tahu pilihan saya untuk beralih dari .mov ke h264 mp4s. Apakah ada yang setara dengan -crf saat Anda membuat DivX? (atau haruskah itu menjadi pertanyaan lain?)
Ward - Reinstate Monica

@Ward Anda dapat menggunakan -qscale. Untuk mpeg * skala linier mulai dari 1-31 (31 merupakan kualitas terburuk), dan menggandakan nilai akan menghasilkan sekitar setengah bitrate. Nilai 2 dapat dianggap kasar secara visual. 3-5 biasanya merupakan keseimbangan yang baik, tetapi tentu saja kualitasnya subjektif dan Anda hanya perlu mencobanya.
Logo

Bagus! Beberapa pertanyaan. (1) apa arti angka yang diikuti oleh "p" dalam "video 1080p ke 720p"? (2) x264 menggunakan bitrate variabel, tetapi mengapa opsi dalam ffmpeg disebut Faktor Tingkat Konstan? Terima kasih!
Tim

2

Coba HandBrake CLI

Saya ingin mengecilkan beberapa file MOV dan tidak peduli untuk mempelajari semua detail tentang opsi video. HandBrake CLI adalah apa yang saya gunakan. Presetnya bagus:

HandBrake menawarkan preset hard-pabrik dan kode-pabrik yang persis sama dengan preset bawaan di MacGui.

Dalam kasus saya, ini bekerja dengan baik:

HandBrakeCLI -i input.MOV -o output.mp4 --preset="Normal"

Tanpa preset, outputnya sangat kecil tapi kualitasnya tidak bagus. Preset "Normal" terlihat bagus untuk saya, tetapi Anda dapat melihat yang lain tersedia dengan HandBrakeCLI --preset-list, atau men-tweak semua opsi sendiri jika Anda mau.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.