Memperkecil Video dengan FFMPEG Menggunakan NVENC

Apa itu NVENC

Hardware accelerated encoding mulai menjadi tren di kalangan produsen hardware komputer di era 2010an. Intel misalnya, mulai melengkapi processor keluaran mereka dengan teknologi yang disebut Intel Quick Sync Video sejak generasi Sandy Bridge. AMD juga menciptakan teknologi serupa dengan nama Video Coding Engine (VCE), mulai generasi Radeon HD 7900. Sementara NVIDIA memperkenalkan teknologi NVIDIA Encoder (NVENC) sejak GeForce seri 600 generasi Kepler. Sumber gimbot.com

Yang akan dibahas disini adalah menggunakan ffmpeg untuk encode video dengan hardware accelerated yaitu NVENC, sebelum kita lanjut ke tutorial nya kita tidak bisa menggunakan NVENC dengan ffmpeg versi biasanya, tapi harus menggunakan ffmpeg yang support ffmpeg, untuk cek ffmpeg support codec NVENC kita bisa ketikan peritah ffmpeg di terminal dan lihat output nya, jika ada --enable-nvenc berarti ffmpeg kalian bisa menggunakan NVENC dalam encode videonya.

Pastikan juga driver NVIDIA kalian sudah versi paling terbaru, minimal versi 450 atau yang lebih tinggi, untuk cek versi driver NVIDIA kalian bisa menggunakan perintah nvidia-smi di terminal dan lihat Driver Version-nya, jika yang muncul Driver Version: 460.32.03 berarti kalian menggunakan driver versi 460.

Mulai Encoding

Setelah kalian memenuhi persyaratan diatas, kita lansung ke tutorial encoding nya.

  1. Kita lihat terlebih dahulu bitrate video yang akan kita compress, disini bitrate videonya yaitu 2.830 kb/s dengan resolusi 720p dan ukurannya 1.59 GiB, untuk memperkecil ukuran video nya kita ubah bitrate nya, disini saya ubah menjadi 1024 kb/s atau 1M, atau menjadi lebih kecil dari bitrate asalnya, perintah yang saya gunakan yaitu seperti ini.

1
2
3
ffmpeg -c:v h264_cuvid -i demoVideo.mp4 \
-c:v h264_nvenc -preset slow -b:v 1M -minrate 1M -maxrate 1M -bufsize 1M -profile:v high \
-c:a aac -b:a 128k -cq:v 18 demoVideoOuyt-720p.mp4

-c:v h264_cuvid decoder yang digunakan
-i demoVideo.mp4 video yang akan kita kecilkan ukurannya
-c:v h264_nvenc encoder yang digunakan
-preset slow encoding menjadi lama tapi kualitas lebih baik dan ukurannya juga menjadi lebih kecil
-b:v 1M -minrate 1M -maxrate 1M -bufsize 1M strict setting bitrate menjadi 1M atau 1024 kb/s
-profile:v high Untuk kualitas dan ukuran file terbaik tetapi menggunakan resource GPU yang banyak dalam decode dan encode
-c:a aac -b:a 128k mengubah codec audio menjadi aac dan bitrate audio menjadi 128 kb/s
-cq:v 18 fungsi -cq ini untuk mengatur kualias video 0 otomatis 18-23 rekomendasi 51 paling buruk
demoVideoOuyt-720p.mp4 nama file yang sudah di encoding

  1. Tunggu sampai proses encoding selesai, biasanya aka memakan banyak waktu, tergantung durasi video nya juga.

  1. Jika terdapat error seperti ini bisa diabaikan saja, saya juga tidak tau penyebabnya apa, tapi video tidak corrupt dan juga tidak ada masalah dengan audionya.

  1. Ini perbedaan ukuran video asli dengan hasil encoding mengunakan NVENC

|

Bantu bagikan halaman ini ke:
Built with Hugo
Theme Stack designed by Jimmy