Artikel:Membuat generator thumbnail sheet dengan Mplayer
[draft artikel infolinux]
Pada artikel sebelumnya telah dibahas beberapa tip penggunaan opsi
mplayer, perangkat lunak pemutar video di Linux berbasis
command-line. Dengan opsi -ss <detik> untuk memulai pemutaran pada
detik tertentu, opsi -frames <n> untuk hanya memutar sekian buah frame
saja, dan opsi -vo jpeg untuk menghasilkan keluaran file JPEG, kita
dapat membuat screenshot atau thumbnail sebuah video pada posisi
tertentu.
Selain thumbnail tunggal, dikenal juga istilah thumbnail sheet (lembar
thumbnail) yang berisi susunan thumbnail video pada beberapa posisi
tertentu, sehingga jika dilihat akan dengan cepat memberikan gambaran
apa isi sebuah video. Beberapa situs video seperti Google Video sudah
memberikan opsi untuk menayangkan thumbnail sheet ini.
Contoh thumbnail sheet dapat dilihat di Gambar 1.
Artikel ini akan memberikan contoh penggunaan mplayer dibantu dengan
ImageMagick dan sekitar 200 kurang baris skrip Perl untuk membuat
generator thumbnail sheet. Sebetulnya sudah terdapat perangkat lunak
lain, seperti beberapa pemutar video atau penampil gambar yang mampu
menghasilkan thumbnail sheet ini. Namun kita akan mendemokan
penggunaan mplayer dan juga membahas beberapa konsep/trik dalam
membuat thumbnail sheet.
Listing skrip Perl dapat dilihat pada Listing 1.
Pembahasan skrip
Pada dasarnya, prinsip kerja skrip ini sederhana saja. Untuk setiap
file video yang ingin diproses, kita cari tahu dulu panjang total
videonya (dalam detik), lalu menggunakan mplayer kita ambil N buah
screenshot pada posisi-posisi sepanjang video ini secara
merata. Setelah itu, dengan bantuan ImageMagick (tepatnya program
command-line montage) screenshot ini kita gabung (montase) ke dalam
satu gambar besar.
Untuk menentukan panjang total video, kita memanggil mplayer dan
mencoba menskip jauh ke depan (opsi -ss 99999, baris 108). Mplayer
akan melaporkan panjang video dalam output teksnya.
Kesulitan muncul kala sebuah file video tidak dapat ditentukan, yang
kadang-kadang dapat saja terjadi bergantung proses enkode file video
tersebut. Dalam kasus tersebut mplayer tidak melaporkan panjang dan
kita perlu melakukan pengira-ngiraan panjang video ini menggunakan
metode biner (baris 139-161).
Lalu yang perlu dikemukakan juga adalah trik dalam menghasilkan
screenshot. Kita tidak dapat hanya menggunakan -frames 1, karena bisa
saja saat seek ke posisi tertentu menggunakan -ss (dalam satuan detik)
kita tidak tiba pada keyframe. Pada saat itu kita tidak memperoleh
gambar secara keseluruhan. Maka triknya adalah dengan mengambil
beberapa frame, dan mengambil file .jpg frame terakhir (yang gambarnya
paling sempurna). Barulah kemudian satu per satu file .jpg yang telah
dikumpulkan dirangkai jadi satu dan nanti dihapus kembali karena tidak
lagi diperlukan.
Dalam membuat montase, kita tinggal menggunakan perhitungan aritmetika
sederhana untuk memperkecil tiap file .jpg agar menjadi sel thumbnail
dalam thumbnail sheet (baris 181-184).
Menggunakan skrip
Agar dapat menggunakan skrip ini, Anda membutuhkan ImageMagick,
Mplayer (beserta semua codec yang diperlukan), dan juga sebuah modul
CPAN untuk Perl bernama File::Type. Di Ubuntu Anda dapat menginstal
ini semua dengan perintah:
$ sudo apt-get install mplayer imagemagick libfile-type-perl
Setelah itu seperti biasa ketiklah skrip ini (atau ambillah kode
sumber skrip ini dari homepage penulis) dan lakukan chmod +x
agar dapat dieksekusi.
Untuk menghasilkan thumbnail sheet video menggunakan skrip ini,
panggillah dengan menyebutkan satu atau lebih file video yang
diinginkan:
$ ./genvthumbs film1.rmvb "film kedua.avi"
Karena level logging pada skrip adalah $DEBUG, maka Anda akan melihat
banyak output diagnostik. Untuk mengurangi kebawelan ini, silakan
ganti $DEBUG di baris 61 menjadi $INFO atau $WARN misalnya.
Skrip yang penulis tulis ini dapat menghasilkan thumbnail sheet untuk
semua jenis video yang dapat dimainkan oleh Mplayer. Skrip juga sudah
mengerti beberapa opsi command-line. Opsi --output mengatur nama file
gambar thumbnail sheet yang dihasilkan, defaultnya adalah
<nama-file-video>.jpg. Opsi --rows dan --cols mengatur jumlah baris
dan kolom thumbnail yang diinginkan (contoh: --rows 6 --cols 4 akan
menghasilkan 24 thumbnail yang disusun dalam 6 baris dan 4
kolom). Opsi --width mengatur ukuran (dalam piksel) sheet, defaultnya
1024. Opsi --skip-if-exists akan menghindari generasi ulang thumbnail
sheet jika file bernama sama sudah ada.
Gunakan opsi --help untuk melihat bantuan.
Anda dipersilakan mengembangkan sendiri skrip ini jika berminat,
misalnya dengan menambah opsi untuk menulis judul atau posisi tiap
thumbnail pada sheet, dsb.
Selamat mencoba.
Link
Listing skrip dapat pula didownload dari
http://people.masterwebnet.com/steven/files/genvthumbs.
|