2010/02/02

Memperbaiki audio/video delay pada AVI

Paling kesel ... Yah, kesel lagi. Kenyataannya saya kesel, hehe, dan audio-video yang tidak sinkron jelas mengurangi kenikmatan nonton film. Berkurangnya gede banget. Kesel, kan?

Untunglah saya punya setidaknya dua alat yang membantu saya memperbaiki sinkronisasi file multimedia yang sudah terlanjur tidak sinkron. Tapi saya nyobanya di file avi saja, tidak tahu apakah alat dan cara yang sama berlaku untuk kontainer yang beda.

Dan perlu diperhatikan juga, asinkronisasi yang bisa diperbaiki dengan cara ini adalah asinkronisasi linier. Maksud saya, ketidaksinkronannya berlaku konstan sepanjang file. Gak tau deh istilahnya bener atau engga :D.

MEncoder[1]
Ini andalan saya dari sejak zaman kuda. Paket dari MPlayer ini benar2 sangat membantu. Menggunakannya juga tidak sulit. Bahkan dengan bantuan tombol (-) dan (+) saat nonton menggunakan MPlayer, saya bisa menyesuaikan audio-delay saat itu juga. Tapi perubahan ini tidak tersimpan dalam file.

Misalkan saya punya file multimedia yang audionya telat sekitar 200 milidetik (0,2 detik). Ini artinya audio lebih lambat, jadi saya harus mengubah posisi offset audio pada -0,2 detik. Maka satu baris perintah ini akan memperbaiki sinkronisasinya:

mencoder file_asli.avi -oac copy -ovc copy -audio-delay -0.2 -o file_hasil.avi

Untuk kasus audio yang lebih cepat, ubah saja angka delay menjadi positif. Informasi opsi bisa dibaca di manual mencoder.

Transcode's avisync[2]
Kadang hasil dari MEncoder kurang memuaskan, entah karena apa. Kalau ini terjadi, saya nyari pendapat ke-dua, menggunakan avisync.



Sedikit beda, di sini saya harus tahu telat/kecepetan audio dalam bentuk frame-count. Informasi frame-rate sebuah file avi bisa diketahui menggunakan perintah file atau dimainkan dulu dengan mplayer. Setelah frame-rate diketahui, jumlah delay frame bisa ditentukan. Harus rada ngitung dulu, sih, tapi relatif mudah.

Kasus yang sama, yaitu audio telat 200 milidetik pada file dengan frame-rate 23,976 fps (standar avi Xvid):

1. hitung frame-count: delay * frame-rate = (-0,2)(23,976) = -4,7952
2. jalankan perintah:

avisync -i file_asli.avi -o file_hasil.avi -n -4.7952

Informasi opsi bisa dibaca di manual avisync.

*idud yang kesel karena beberapa koleksi multimedianya tidak sinkron*


[1] http://www.mplayerhq.hu/
[2] http://www.transcoding.org/transcode

*) Logo MPlayer dan transcode adalah hak cipta masing2 projek.

No comments: