Saturday, May 16, 2015

Encoding dan Parameter Transcoding Yang Optimal

Sebelum membahas tentang parameter transcoding, maka perlu dibedakan antara TRANSCODING dengan ENCODING (dipasaran alatnya disebut Transcoder dan Encoder).

ENCODING adalah proses mengubah raw video (digital maupun analog, kadang disebut juga dengan baseband video) ke video digital yang terkompres. Contoh HDMI, DVI, atau SDI Video diconvert ke mp4 (h264 video + aac audio). Secara perangkat biasanya input Coax, output Ethernet. Dalam dunia audio pun ada raw audio, dalam bentuk analog, ataupun digital. Dalam bentuk digital contohnya file WAV dengan codec PCM (g711), dimana audio analog didigitalkan menggunakan ADC (Analog to Digital Converter). PCM ini bisa di Encode audio digital terkompres menjadi audio kompresi dengan format g729, mp3, aac atau lainnya.

TRANSCODING adalah proses mengubah video digital terkompres dalam satu format ke format lain. Contoh mpeg2 video diubah menjadi h264 video (sedangkan audio tetap mp3 atau aac misalkan). Proses TRANSCODING di ffmpeg biasanya terjadi dalam 2 tahap yaitu: mengubah mpeg2 video ke raw video, dan proses ENCODING dari raw video ke h264 video. Secara perangkat biasanya inputnya Ethernet dan outputnya Ethernet juga.

Biasanya jika sebuah box inputnya hanya SDI, bisa dipastikan box tsb adalah Encoder. Sebab SDI mengalirkan stream dalam bentuk baseband uncompressed.

Uncompresed Video Delivery

Berapa bandwidth yang diperlukan untuk transfer uncompressed video?

Raw video pada prinsipnya adalah pengiriman file-file gambar (bmp). Dengan demikian bit-rate pasti konstan. Dan bandwidth yang dibutuhkan dapat dihitung dari rumus berikut:

data rate = color depth * vertical resolution * horizontal resolution * refresh frequency

Contoh:

24-bit, 1080i @ 60 fps: 24 × 1920×1080 × 60/2 = 1.49 Gbit/s
24-bit, 1080p @ 60 fps: 24 × 1920×1080 × 60 = 2.98 Gbit/s.

Salah satu perangkat Trasncoder yang banyak digunakan Broadcaster adalah Perangkat Cisco D9054, dimana input nya menggunakan interface HD SDI dengan bandwidth 1.485 Gbps. Terkait beda interface ASI (Compress) dan SDI (Uncompress) dapat dibaca disini.



Parameter Optimal Transcoding

Selanjutnya untuk transcoding berjalan optimal perlu diperhatikan parameter berikut ini:

1. Ukuran video (resolusi)
2. Bitrate video

Ukuran Video:
  • 2160p: 3840x2160
  • 1440p: 2560x1440
  • 1080p: 1920x1080
  • 720p: 1280x720
  • 480p: 854x480
  • 360p: 640x360
  • 240p: 426x240
Bitrate:
Bitrate video dapat di-atur saat melakukan transcoding. Untuk ukuran resolusi tertentu ada Bitrate yang disarankan (lihat standar youtube):
Type Video Bitrate
2160p (4k) 35-45 Mbps
1440p (2k) 16 Mbps
1080p 8 Mbps
720p 5 Mbps
480p 2.5 Mbps
360p 1 Mbps

Satu file Video misalkan resolusi 1280x720p bitrate 2 Mbps, hendak dijadikan 128kbps opsinya adalah:
1. Trancoding bit-rate dari 2 Mbps jadi 128 kbps (file akan mengecil 1/7) resolusi tetap 720p

ffmpeg -i source.mp4 -b:v 128k hasil1.mp4

2. Transcoding bit-rate dari 8 Mbps jadi 1 Mbps (file akan mengecil 1/7) resolusi diturunkan jadi 240p

ffmpeg -i source.mp4 -b:v 128k -s:v 426x240 hasil2.mp4

Kualitas Video?

Hasil video untuk 1 dan 2 sangat berbeda. Video 1 akan lebih pixelized (namun sharp), sedangkan Video 2 akan lebih halus (tidak pixelized). Biasanya mata manusia lebih tidak bisa menerima pixelyzed. Sehingga transcoding ke 2 lebih disukai. Lihat hasilnya disini .

Kesimpulan: 2 macam variabel (bitrate dan resolusi) harus pas untuk menghasilkan video yanglebih  halus atau pixelyzed.

Untuk referensi yang lebih komprehensif bisa dilihat disini .


No comments: