Masih membahas lagi tentang melakukan berbagai hal dengan FFmpeg. Jika sebelumnya sudah saya jelaskan terkait konversi file video mp4 menjadi mp3, kini akan saya bagikan cara untuk mengompres video supaya ukurannya kecil tanpa harus menghilangkan kualitasnya.
Cara termudah untuk mengecilkan file video adalah mengecilkan resolusinya, tapi hal tersebut akan mempengaruhi kualitas gambar ketika video tersebut diputar pada layar lebar. Jadi bisa disimpulkan bahwa itu bukan merupakan hal yang tepat untuk mengompres.
Sedangkan cara yang paling disarankan untuk melakukan hal ini adalah dengan menyesuaikan beberapa faktor, bisa dari tipe encodingnya, bitrate, FPS, dan lain sebagainya. Dan itu bisa dilakukan langsung melalui Command Prompt atau Terminal dengan bantuan alat bernama FFmpeg.
Mengompres Video dengan FFmpeg
Ada tiga opsi yang bisa kamu terapkan untuk mulai mengompres video menggunakan FFmpeg. Kamu bisa menerapkan salah satu atau semuanya sekaligus untuk memaksimalkan tingkat kompresi lebih baik tanpa harus mengurangi kualitasnya.
1. Ubah Encoding Video dengan H265
H265 merupakan jenis encoding yang tergolong baru, dan tidak semua aplikasi mendukung encoding jenis ini. Namun bagian terbaiknya, ukuran yang dihasilkan dari jenis encoding ini tergolong kecil sampai 50% dari encoding H264 tanpa mengurangi kualitasnya sama sekali.
Untuk mengonversinya, gunakan perintah di bawah ini:
ffmpeg -i video.mp4 -vcodec libx265 -crf 28 hasil.mp4
2. Atur Bitrate dan FPS
Semakin tinggi Bitrate pada video, maka semakin besar pula ukurannya dan semakin bagus kualitasnya. Sedangkan untuk menjaga gambar video itu tetap berkualitas, tidak diperlukan bitrate yang terlalu tinggi, sehingga kamu bisa mengatur berdasarkan resolusi video tersebut.
Dan kebanyakan perangkat ponsel saat ini merekam video menggunakan total 30 FPS hingga 60 FPS, yang mana itu bisa diperkecil menjadi 24. Hasil video tetap baik ketika diputar, namun sekali lagi kalkulasikan bitrate yang di atur berdasarkan resolusi video.
Dan berikut ini perintahnya:
ffmpeg -i video.mp4 -b:v 2M -b:a 128k -r 24 hasil.mp4
Dari contoh perintah di atas, saya menggunakan video dengan resolusi 720p (HD), maka saya atur 2MB untuk bitrate video, dan 128KB untuk audio. Sedangkan untuk FPS berada di argumen -r
yang mana telah diatur sebagai 24.
3. Menerapkan Constant Rate Factor
Tips yang terakhir adalah menerapkan CRF (Constant Rate Factor). Ini nyaris sama seperti mengatur bitrate karena kegunaannya adalah untuk mengontrol seberapa jelas atau kabur video itu. Ketika di atur lebih rendah, maka kualitas video akan lebih baik.
Maka dari itu yang diperlukan di sini adalah mengaturnya secukup mungkin supaya video itu tetap berada di kualitas yang diharapkan. Berikut ini contoh perintahnya:
ffmpeg -i video.mp4 -vcodec libx264 -crf 20 hasil.mp4
Perintah di atas akan mengompres video ke encoding H264 menggunakan tingkat CRF 20. Itu bisa kamu atur lebih tinggi sekitar 22 sampai 25. Sedangkan jika ingin memakai encoding H265, itu bisa ditingkatkan ke 30 untuk setelan maksimal yang direkomendasikan.
Sebenarnya perintah CRF ini sudah saya terapkan pada tips pertama, yaitu menggunakan encoding H265. Tapi pada dasarnya ini juga berfungsi untuk encoding H264 atau VP9.
Baca juga: Cara Mengubah Mp4 ke Mp3 dengan FFmpeg
Tips Kompres Video di FFmpeg Supaya Hasil Memuaskan
Pada saat menerapkan beberapa perintah di atas, alangkah lebih baik untuk mengetahui lebih dulu apakah hasil video nantinya sesuai yang diinginkan atau justru hasilnya tidak memuaskan. Maka dari itu, saya akan bagikan sedikit tips unik ini.
Yaitu dengan me-render video dengan durasi 1 menit untuk dijadikan sample. Dengan begitu kamu tidak akan khawatir ketika ingin melakukan render video dengan durasi yang lama, karena kualitas nantinya telah diketahui berdasarkan sample yang diperoleh sebelumnya.
Untuk me-render video 1 menit, kamu bisa menambahkan argumen ini pada perintah;
-ss 00:00:00 -to 00:01:00
Bisa juga untuk merender langsung di durasi pertengahan apabila itu yang diinginkan.
Jadi cukup itu saja tips beberapa tips yang dapat saya bagikan tentang mengompres video menggunakan FFmpeg. Jika kamu memiliki pertanyaan, saran, atau lain-lain terkait artikel di atas, silakan tuliskan itu pada kolom komentar.
Semoga bermanfaat
1 comment
Ada lagi hal lain.. kalau misalkan kebetulan VGA mu NVidia yang support dengan CUDA.
Bisa menggunakan itu untuk me-encoding video biar jauh lebih cepat. Karena secara default kan menggunakan CPU.
Cara mengecek nya bisa lewat
ffmpeg -hwaccels
Jika muncul CUDA disana berarti bisa digunakan..
Ini jika CPU yang normalnya.
ffmpeg -i video.mp4 -c:v libx265 output_video.mp4
Ini jika menggunakan CUDA
ffmpeg -hwaccel cuda -i video.mp4 -c:v hevc_nvenc output_video.mp4
Codec libx265 diperuntukan untuk CPU dan tidak bisa menggunakan GPU.
Codec hevc_nvenc (nvenc nya kepanjangan dari Nvidia Video Encoder bila ga salah) diperuntukan untuk GPU.
Waktu dulu aku nyoba buat mengubah video bedurasi 6 menit pake cara biasa, bisa makan waktu 10-20menitan. Tapi bila dengan CUDA kurang dari 1 menit sudah selesai.
Yg CPU aku iseng2 lewat ponsel . Bila yg CUDA karena aku gak punya kompi yg sesuai GPU nya. Jadinya menggunakan Colab free tier itu udah bisa pakai GPU T4 yg support CUDA.