Indie Lagu :: Lagu Tarbaru

Thursday, April 16, 2009

Betulkah Prediksi Saya Tentang Cara Kerja Youtube ?

Ada hal menarik yang saya temui sekaligus menjadi tanda tanya bagi saya sewaktu mencoba mengupload Video ke Youtube.  Ceritanya begini seperti biasa saya mencoba share video lagu dengan teman-teman melalui Youtube,   Sudah beberapa kali saya mengupload video di Youtube tidak pernah mengalami masalah.  Namun kali ini saya mengalami masalah karena cara mengupload yang sedikit berbeda.  Berbedanya karena pertama kali saya salah mengupload file.  Saya mengupload file yang audio-nya sangat kecil padahal sebenarnya saya punya file lain yang  audio-nya sudah diedit agar lebih jelas didengar.  Saya menyadarinya ketika file tersebut telah available di Internet & waktu saya mencoba memainkan video tersebut ternyata suaranya kecil sekali tidak seperti yang diharapkan.  Lalu saya segera menghapus file tersebut dan mencoba mengupload file lain.  Setelah file ini available dan saya coba untuk memainkannya, saya kaget karena kualitas suara masih sama, kecil sekali.  Lalu saya sampai pada prediksi tentang cara kerja Youtube yang pertama:

Mungkin ... kalau kita upload file dengan nama yang sama, dia akan kesulitan untuk melalukan proses penggantian file & membutuhkan waktu karena adanya mekanisme replikasi data diantara semua server Youtube yang aktif.   Berdasarkan prediksi ini, saya mencoba menunggu beberapa saat lalu mencoba lagi memainkan video saya, alhasil masih tetap sama ... suara video tidak jelas, ini berarti masih file yang pertama (file yang sudah saya hapus) yang dimainkan karena file kedua adalah file yang sudah diedit content audio-nya.

Solusi yang saya coba tempuh adalah saya menghapus lagi file kedua yang sudah di-upload dan saya mencoba mengupload lagi file yang sama tapi sebelum di-upload saya mengubah nama file tersebut ...  Hasil yang saya peroleh masih sama, mengecewakan ...

Prediksi saya berikutnya tentang cara kerja Youtube adalah:

Mungkin ... Video saya sudah dikonversi ke dalam format yang lain (sebagai informasi, video yang saya upload menggunakan format avi)  Nah dalam proses konversi ini, selain kualitas gambar yang berkurang, kualitas dari suara juga akan berkurang dan untuk Audio dengan karateristik tertentu (saya sendiri tidak tahu karateristik seperti apa) penurunan kualitas Audio akan sangat besar dibandingkan dengan Audio pada file yang asli (file yang berada di komputer saya).  Dan pada kasus saya, Audio pada file saya memenuhi karateristik tersebut sehingga penurunan kualitas Audionya sangat parah.

Dengan asumsi bahwa layanan hosting video pada provider yang berbeda, memiliki cara penanganan file yang berbeda pula maka saya mencoba mengupload video yang saya upload ke Youtube menggunakan layanan yang ditawarkan oleh Blogspot sendiri yaitu layanan upload video.  Dan hasil yang saya peroleh adalah great ... Video saya bisa menghasilkan Audio yang sama (menurut pendengaran saya) dengan kualitas Audio sewaktu saya memainkan video tersebut langsung dari komputer saya (tidak melalui internet).  Namun saya kecewa dengan layanan dari Blogspot ini karena saya tidak bisa menonton video saya dalam fullscreen mode seperti video lain yang berhasil saya upload di Youtube.

Lalu saya mencoba layanan hosting video yang lain yaitu layanan dari Yahoo.  Hasil yang saya peroleh adalah Video saya bisa berjalan dengan kualitas Audio yang baik dan juga ketika saya menggabungkan Video ini ke BLOG saya, saya bisa menontonnya dalam fullscreen mode.  Senang rasanya mendapatkan alternatif hosting video yang lain selain dari Youtube. 


2 comments:

minstrum said...

mengenai replikasi video:

itu memang sudah umum kang victor, banyak hosting file publik dijalankan md5 hash check (sebelum upload) tuk mengurangi beban bandwidth yg gak perlu. Kalo upload file yg dah diupoad orang nanti tiba2 selese jadinya he3x. Apalagi yg pake aplikasinya dia, contoh megaupload.

mengenai transcoding audio:

hampir semua server streaming juga melakukan transcoding (lossy to lossy) alias kompress ulang formatnya. (mis: avi ke flv/flash). nah memang bener suaranya bakal lbh jelek dari yang asli, kalau mau bagus langsung stream mp3 atau aac low bitrate aja ( pake softwae macam icesoft trus taruh di server premium), atau cara konvensional taro file dalam bentuk asli / nonstreaming server, atau yg paling beken sekarang taro di 4SHARE biasanya bagus (stream + bisa download mp3 aslinya).

Sekian komen panjang saya. huahahaha

VnP said...

Terimakasih yah Adi untuk komentarnya

Cara kerja MD5 kalau bisa saya jelaskan secara sederhana biar bisa dimengerti adalah sebagai berikut :

FILE --> Alogritma MD5 --> 32 DIGIT HEXADECIMAL NUMBER

tujuan proses pengubahan file kedalam kode unik (32 DIGIT HEXADECIMAL) adalah untuk mengecek integrasi dari FILE, bahasa sederhannya apakah FILE tersebut masih dalam kondisi baik atau sudah rusak.

Misal saya punya FILE_A, lalu saya masukan file tersebut untuk diproses dengan algoritma MD5 dan saya menghasilkan kode unik sebagai berikut XXXX (anggap ajah ini adalah 32 DIGIT HEXADECIMAL).

kemudian teman saya mengcopy file tersebut atau katakan saja dia mendownload file saya sehingga di komputer dia juga terdapat FILE_A. Untuk mengetahui apakah file itu masih baik / rusak, FILE_A tersebut bisa diproses oleh algoritma MD5 dan tentu akan menghasilkan kode unik tertentu. Jika kode unik yang dihasilkan adalah XXXX maka bisa dipastikan bahwa FILE_A yang dicopy/didownload masih berada dalam kondisi baik, namun jika kode yang dihasilkan adalah XXXY maka diketahui bahwa FILE_A tersebut sudah rusak / bukan lagi FILE_A seperti yang asli.

Inti dari penjelasan saya diatas adalah, jika sebuah FILE diproses menggunakan algoritma MD5 beberapa kali maka kode unik yang dihasilkan pastilah sama. Namun berdasarkan informasi dari wikipedia (http://en.wikipedia.org/wiki/MD5), ternyata algoritma MD5 ini is not collision resistant. Artinya adalah ada kemungkinan kita memasukkan dua FILE input yang berbeda ke algoritma MD5 namun kode unik yang dihasilkan tetap sama.

Dari analisa saya kalau memang betul Youtube juga menggunakan algorithma MD5 untuk memvalidasi file-file yang diupload ke servernya maka dalam kasus saya kelemahan dari algoritma MD5 ini terbukti. Karena saya memasukkan file yang jelas-jelas berbeda (dengan adanya proses edit kualitas suara) namun kode unik yang dihasilkan oleh MD5 untuk kedua file saya adalah sama sehingga terjadi coallision.

Namun pertanyaan saya selanjutnya kenapa bisa coallision, seharusnya tidak terjadi karena file yang pertama sudah saya hapus. Dan menurut pengalaman saya, untuk "menipu" orang bahwa sebuah file sudah terhapus dengan cepat adalah dengan menggunakan flag. Artinya penampil dari sebuah data akan mengecek flag ini (flag yang menandakan bahwa telah terjadi request untuk menghapus), Semua data yang memiliki flag ini dalam kondisi true, tidak akan ditampilkan lagi oleh penampil. Walaupun sebenarnya file tersebut belum terhapus karena membutuhkan waktu. Bayangkan saja kalau kita punya dua file, file_A dan file_B. Jika file_A berukuran 1k dan file_B berukuran 1G maka tentu waktu yang dibutuhkan untuk menghapus file_B akan lebih banyak dibandingkan waktu untuk menghapus file_A. Hal ini bisa kita lihat dan kita buktikan di lokal komputer kita. Bagaimana dengan Youtube. Terdapat banyak server Youtube dan ketika kita mengupload sebuah file ke server tertentu, file tersebut akan diduplikasikan juga ke server lainnya (disebut proses replikasi). Dan jika terjadi proses hapus, maka file yang dihapus ini harus dihapus dari semua server Youtube yang ada. dan proses ini tentu akan memakan waktu. Karena dari pengalaman saya, file yang dihapus masih juga dimainkan oleh player Youtube, maka bisa saya simpulkan bahwa tidak ada mekanisme penggunaan flag seperti yang sudah saya jelaskan di dalam layanan Youtube.

Jadi dengan asumsi bahwa Youtube menggunakan MD5 dan MD5 ini tidak tahan collision dan tidak ada mekanisme penggunaan Flag untuk menandakan bahwa sebuah file sudah terhapus maka bisa kita simpulkan ... kemungkinan besar hal inilah yang menjadi penyebab masalah yang saya alami.

Tentang transcoding audio, saya setuju banget dengan Adi. Namun pertanyaannya adalah sebenarnya karateristik seperti apa dari sebuah data audio yang menentukan kualitas / hasil dari proses transcoding audio. Mungkin tidak ya saya mengalami hal seperti berikut ini dan kalau iya, kira-kira mengapa yah ? Saya punya file_A dan file_B dilokal komputer saya dan saya mencoba memainkan kedua file tersebut menggunakan player tertentu. Hasil yang didengar oleh kuping saya sama-sama bagus namun setelah proses transcoding saya mendengar suara dari file_A lebih jelek dari file_B.