FFMPEG Batch Converter

Ingin mengubah encoding banyak file secara bersamaan? Bisa coba pakai FFMPEG Batch Converter, sebuah aplikasi yang merupakan GUI untuk FFMPEG yang merupakan video encoder/decoder terkenal.

Bisa download dari source forge, lalu install

Contoh Parameter x265

Berguna untuk sebelum upscaling, menurunkan frame rate dari 60 FPS ke 30 FPS dengan tetap menjaga kualitas gambar yang tinggi dan cepat (x264 cepat diproses).

Sebelum upscaling dengan VEAI, bisa turunkan FPS dulu biar ukuran tidak besar dan upscaling tidak lama. Encode x264 biar cepat, Medium Preset, Fast Decode, CRF 0 (lossless), Max 30 FPS (bisa kurang, tapi maksimum 30).

-vsync vfr -r 30 -c:v libx264 -crf 0 -preset ultrafast -c:a copy --disable-hwaccels

Setelah upscaling, lakukan encode x265, Fast Preset, Fast Decode, CRF 18, Max 30 FPS

-vsync vfr -r 30 -c:v libx265 -crf 18 -preset medium -tune fastdecode -c:a copy --disable-hwaccels

Kenapa pilih preset medium? Karena setelah coba convert file MP4 WEBM dari YouTube yang ukurannya mirip atau mendekati adalah yang medium ini. Dan inilah preset default bawaan x265.

Kenapa Pakai CRF 18?

Karena begitulah saran dari FFMPEG encoder guide untuk x264 kalau kita ingin mendapat tampilan yang visually lossless (seakan tidak ada pengurangan kualitas) dari video asli:

The range of the CRF scale is 0–51, where 0 is lossless, 23 is the default, and 51 is worst quality possible. A lower value generally leads to higher quality, and a subjectively sane range is 17–28. Consider 17 or 18 to be visually lossless or nearly so; it should look the same or nearly the same as the input but it isn’t technically lossless.

https://trac.ffmpeg.org/wiki/Encode/H.264

Untuk x265 sama saja level kualitas gambarnya, CRF 18 x264 dan CRF 18 x265 sama-sama menghasilkan tampilan visual yang kualitasnya sama, hanya pada x265 ukuran bitrate yang menjadi lebih kecil.

Kenapa Pakai CRF 20?

Kalau dirasa ukuran CRF 18 terlalu besar filenya, bisa diturunkan sedikit ke CRF 20. Setting CRF di angka 20 mengikuti panduan dari halaman Handbrake, di mana mereka menyarankan CRF 22-28 untuk video 4K, lalu ditambah sedikit karena dipakai di layar lebar (TV 50 inch).

Sebagaimana penjelasan mereka:

Recommended settings for x264 and x265 encoders:

RF 18-22 for 480p/576p Standard Definition
RF 19-23 for 720p High Definition
RF 20-24 for 1080p Full High Definition
RF 22-28 for 2160p 4K Ultra High Definition

You may wish to slightly increase quality for viewing on larger displays (50 inches / 125 cm diagonal or greater), or where viewing from closer than average distances. Reduced quality may be acceptable for viewing on smaller screens or where storage space is limited, e.g. mobile devices.

https://handbrake.fr/docs/en/1.3.0/workflow/adjust-quality.html

Standard Definition (e.g DVD’s) Use an RF value of around 20 +/- 1 As an example using the AppleTV2 preset at RF20, with 20 different sources, the average size was 925MB per hour of video. (Min: 625MB/h Max:1,503MB/hr)

High Definition (e.g Blurays 720/1080) Use an RF value of 22 +/- 1 Since HD sources are typically quality, you can get away with a slightly higher RF value than SD content without any perceived difference in quality.

https://handbrake.fr/docs/en/1.3.0/technical/video-cq-vs-abr.html

Contoh Parameter AV1

Contoh menghasilkan nilai yang sejenis dengan x265.

-vsync vfr -r 30 -c:v libaom-av1 -crf 23 -cpu-used 4 -row-mt 1 -tiles 2x2 -c:a copy

Kalau ingin dilimit maksimal 20.000 kbps dengan CRF 27

-vsync vfr -r 30 -c:v libaom-av1 -crf 23 -b:v 20000k -cpu-used 4 -row-mt 1 -tiles 2x2  -c:a copy

Referensi: FB.com, FFMPEG, StreamingMedia, Underpop

Untku memakai encoder SVT-AV1 yang dinilai lebih cepat dari LibAOM, bisa gunakan command berikut:

-vsync vfr -r 30 -c:v libsvtav1 -preset 4 -tile_rows 2 -tile_columns 2 -rc cqp -qp 23 -c:a copy 

Kita gunakan cpu-used di angka 4 karena dia tengah-tengah dari seluruh opsi yang ada di encoder AV1 baik itu LibAOM ataupun SVT-AV1. Untuk contoh kode di atas dari Gitlab

Untuk konversi dari CRF x264 ke AV1 begini menurut FB.com:

x264 CRF = {19, 23, 27, 31, 35, 39}
VP9/AV1 CRF/QP = {27, 33, 39, 45, 51, 57}

Tapi kita pakai CRF 23, tidak ikut nilai dari FB.com. Kenapa? Karena perhitungan kita baik berbasis persentase (60/51) x CRF, maupun berbasis logaritma, angka CRF 23 untuk AV1 setara CRF 20 untuk x265.

Kalau pakai perhitungan simple (60 / 51 * CRF x265):

Kalau perhitungan logaritma ke AOM-AV1 (60 ^ (⁵¹ log CRF x265)):

Boleh juga AV1 di angka CRF 25, ini setara x265 di angka CRF 22, baik dengan perhitungan simple ataupun berbasis logaritma.

Kalau perhitungan logaritma ke SVT-AV1 (63 ^ (⁵¹ log CRF x265)):


Posted

in

by

Tags:

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *