Aplikasi Penghasil Video dari Capture Layar Komputer Menggunakan Bahasa Pemrograman Java
Tjatur Kandaga, Febrian Berthanio Jurusan S1 Teknik Informatika Fakultas Teknologi Informasi, Universitas Kristen Maranatha Jl. Prof. Drg. Suria Sumantri no. 65 Bandung 40164 email:
[email protected],
[email protected]
Abstract The motivation to develop application to produce video from computer screen capture comes from eagerness to explore the Java Media Framework capabilities. We try to found out if the framework can produce adequate result when it is used to implement simple method like producing video file from picture frame sequences, and audio synchronizations. The application use separate threads to capture screen images into frames, and record audio. Threads are essential to make smooth real time video and audio capturing/recording. Setting parameters are also provided in order to give the user many chance to experiment with different audio and video settings to produce best result. Merging video and audio has been simplified with functionality provided by Java Media Framework. Several experiments shows that the application can produce satisfied result with higher parameter settings but generate large output file. Keywords: screen capture, audio record, video producer, Java media framework
1.
PENDAHULUAN
Pada dasarnya sebuah video dapat dihasilkan dari serangkaian gambar statis (still images) yang ditampilkan secara berurutan dengan kecepatan tinggi. Penggabungan file audio dapat dilakukan dengan memperhatikan sinkronisasi terhadap gambar (frame) yang sedang ditampilkan. Aplikasi ini dibuat dengan mengacu pada konsep tersebut untuk menghasilkan video sederhana, tanpa melakukan kompresi antar frame atau teknik lanjut lainnya.
Selain membuat kelas-kelas dasar yang umum terdapat pada lingkungan bahasa pemrograman Java, dalam pengembangan aplikasi ini digunakan juga Java Media Framework (JMF), yang menyediakan banyak fasilitas untuk
47
Jurnal Informatika, Vol. 9 No. 1, Juni 2013: 47 - 63
pemrograman multimedia di Java. Dengan demikian diperlukan pengetahuan dan pemahaman yang baik tentang cara integrasi dan penggunaan framework atau pustaka yang digunakan pada aplikasi Java yang dibuat. Peran referensi dan dokumentasi yang lengkap menjadi sangat penting sehingga akan sangat membantu dalam pengembangan aplikasi. Bahasa pemrograman berorientasi objek Java memiliki ruang lingkup yang sangat luas sehingga memungkinkan pengembang aplikasi untuk mengembangkan beragam jenis aplikasi. Jenis aplikasi yang dapat dikembangkan dengan bahasa pemrograman Java antara lain aplikasi berbasis desktop, aplikasi untuk perangkat mobile, dan aplikasi web enterprise. Dengan dukungan framework atau pustaka yang diperlukan dalam proses pengembangannya, diharapkan aplikasi yang dihasilkan dapat berfungsi dengan baik. Selain itu proses pengembangan aplikasi ini juga bertujuan untuk mendapatkan pengetahuan dan pemahaman bagaimana cara mengimplementasikan framework atau pustaka yang digunakan dalam pengembangan aplikasi berbasis Java.
2.
LANDASAN TEORI
2.1 Video Video adalah teknologi perekaman, pemrosesan, penyimpanan, pengiriman, dan rekonstruksi secara elektronik dari serangkaian gambar diam yang mewakili sebuah adegan (scene) bergerak [5]. Frame rate adalah jumlah gambar diam per unit waktu video, ukurannya dari 6 atau 8 frame per detik (frame/second) untuk kamera mekanik tua sampai 120 atau lebih frame per detik untuk kamera professional [2]. Frame rate minimal untuk memperoleh ilusi atau kesan gambar bergerak adalah sekitar 15 frame per detik. Mata manusia dan sistem visual di otak dapat memproses 10 sampai 12 gambar terpisah per detik dengan mengamati gambar tersebut satu per satu. Pusat penglihatan di otak dapat menahan satu buah gambar selama 1/15 detik. Jadi jika gambar lain diterima dalam periode tersebut, maka akan tercipta ilusi gambar bergerak. Screencast adalah perekaman digital terhadap tampilan layar komputer oleh aplikasi tertentu yang juga dikenal dengan video screen capture dan seringkali berisi narasi audio [4]. Istilah screencast jika dibandingkan dengan istilah yang mirip yaitu screenshot sebenarnya merupakan dua hal yang berbeda. Screenshot adalah sebuah gambar yang direkam dari layar komputer. Sedangkan screencast
48
Aplikasi Penghasil Video dari Capture Layar Komputer Menggunakan Bahasa Pemrograman Java (Tjatur Kandaga, Febrian Berthanio)
adalah sebuah film yang dihasilkan dari rangkaian screenshot yang berisi perubahan aktivitas yang dilihat pengguna di layar komputer, dan bisa ditambahkan dengan narasi audio. 2.2 Audio Audio digital adalah reproduksi suara menggunakan suatu metode untuk merepresentasikan sinyal analog secara digital, diantaranya pulse-code modulation (PCM). Sistem audio digital antara lain meliputi konversi analog ke digital (ADC), dan konversi digital ke analog (DAC) [1]. Proses konversi audio digital dimulai dengan proses konversi sinyal analog ke digital. Proses konversi sinyal analog ke digital dijalankan dengan sampling rate dan bit resolution yang telah ditentukan. Contohnya, audio CD mempunyai sampling rate 44,1 kHz (44100 sample per detik) dan 16-bit resolution untuk setiap channel (mono atau stereo). Selanjutnya data audio dalam bentuk digital akan diolah lagi melalui proses pemfilteran, pemberian efek, atau kompresi menjadi format tertentu. 2.3 JMF (Java Media Framework) JMF (Java Media Framework) menyediakan antarmuka pemrograman aplikasi (Application Programming Interface) dari pustakanya untuk menggabungkan media berbasis waktu (time-based media) kedalam aplikasi Java dan applet [3]. Model pemrosesan dan arsitektur global JMF dapat dilihat pada gambar 1 dan gambar 2. Adapun tujuan dari perancangan Java Media Framework antara lain : 1. Memungkinkan input, pengolahan, dan output dari time-based media. 2. Memungkinkan pengembangan media streaming dan aplikasi konferensi di Java. 3. Memudahkan pengembang program untuk mengimplementasikan beragam solusi berdasarkan API yang ada serta integrasi fitur baru dengan framework yang sudah ada. 4. Mendukung proses capturing media data.
49
Jurnal Informatika,, Vol. 9 No. 1, Juni 2013: 47 - 63
Gambar 1 Media Processing Model [JMF99]
Gambar 2 High-Level High JMF Architecture [JMF99] Beberapa interface dasar dari JMF antara lain Controller, Processor, Processor dan DataSink. 3. ANALISIS DAN DESAIN 3.1 Analisis Aplikasi yang dikembangkan adalah aplikasi desktop yang berfungsi mengmeng capture serangkaian screenshot dari layar komputer pengguna dan memproses rangkaian screenshot tersebut menjadi sebuah video berformat Quick Time Movie (berekstensi .mov). Selain itu pengguna juga dapat menggunakan fitur untuk merekam audio (optional) ( yang akan digabungkan (merge)) dengan video yang direkam. Proses perekaman audio dan video dari layar komputer pengguna akan dilakukan secara bersamaan bersamaan sehingga menghasilkan keluaran berupa file
50
Aplikasi Penghasil Video dari Capture Layar Komputer Menggunakan Bahasa Pemrograman Java (Tjatur Kandaga, Febrian Berthanio)
video dengan suara. Analisis sistem secara detail akan dijelaskan selanjutnya pada bagian pemodelan perangkat lunak. Pemodelan dilakukan dengan menggunakan UML (Unified Modelling Language). 3.2 Rancangan Use Case Fitur utama program adalah merekam dan menghasilkan video yang merupakan hasil capture serangkaian screenshot dari layar computer pengguna, seperti ditampilkan pada gambar 3. Fitur-fitur lainnya untuk pengaturan parameterparameter yang dapat digunakan pengguna sebelum melakukan proses perekaman audio dan video yaitu set parameter video, set parameter audio, set parameter save directory, dan set parameter capture area. Stop recording digunakan untuk menghentikan proses perekaman. Jika pengguna menggunakan fitur record audio untuk merekam suara, maka fitur merge audio & video secara otomatis akan digunakan untuk menggabungkan audio dan video yang akan menghasilkan video dengan suara. Jika tidak ada proses perekaman audio, maka yang dihasilkan hanya video tanpa suara.
51
Jurnal Informatika, Vol. 9 No. 1, Juni 2013: 47 - 63
Gambar 3 Rancangan Use Case Diagram
52
Aplikasi Penghasil Video dari Capture Layar Komputer Menggunakan Bahasa Pemrograman Java (Tjatur Kandaga, Febrian Berthanio)
3.3 Activity Diagram Berikut adalah diagram aktivitas dari beberapa use case yang sudah dibuat sebelumnya. 3.3.1 Record Video Aktifitas Record Video (gambar 4) dimulai dengan mengaktifkan thread untuk proses perekaman kemudian dilakukan proses peng-capture-an serangkaian screenshot ke sebuah file buffer. Selanjutnya data dari screenshot tersebut akan dibaca kembali (reload) untuk dimasukkan ke proses encoding yang akan menghasilkan file keluaran berupa video dan aktifitas ini berakhir.
Gambar 4 Activity Diagram Record Video 3.3.2 Record Audio Aktifitas Record Audio seperti terlihat pada gambar 5, dimulai dengan mengaktifkan thread untuk proses perekaman dilanjutkan dengan membuka line
53
Jurnal Informatika, Vol. 9 No. 1, Juni 2013: 47 - 63
(jalur) yang akan digunakan untuk merekam suara dari mikropon. Selanjutnya dibuat juga sebuah input stream untuk membaca data audio yang direkam dan dimasukkan ke sebuah buffer. Kemudian dari buffer tersebut data audio dibaca lagi untuk dituliskan ke dalam bentuk file keluaran (.wav) dan aktifitas ini berakhir.
Gambar 5 Activity Diagram Record Audio 3.3.3
Stop Recording
Aktifitas Stop Recording ditampilkan pada gambar 6. Aktifitas dimulai dengan proses pengecekan status recording yang sedang berjalan apakah hanya video saja atau video dan audio. Jika yang direkam hanya video, maka thread untuk
54
Aplikasi Penghasil Video dari Capture Layar Komputer Menggunakan Bahasa Pemrograman Java (Tjatur Kandaga, Febrian Berthanio)
merekam video dihentikan dan aktivitas berakhir. Sedangkan jika yang direkam video dan audio, maka thread untuk merekam video dan audio dihentikan dan akan ada proses penggabungan audio dan video yang dilakukan sebelum aktifitas berakhir. Proses ini adalah proses merging yang akan dijelaskan pada bagian selanjutnya.
Gambar 6 Activity Diagram Stop Recording 3.3.4 Merge Audio & Video Aktifitas ini sebenarnya dilaksanakan pada saat proses Stop Recording akan berakhir dengan kondisi proses recording yang dilakukan adalah record video dan audio. Aktifitas ini dapat dilihat pada gambar 7, yang diawali dengan membuat Processor untuk masing-masing file video dan audio yang dihasilkan
55
Jurnal Informatika, Vol. 9 No. 1, Juni 2013: 47 - 63
sebelumnya. Selanjutnya DataSource juga dibuat untuk masing-masing Processor tersebut. DataSource berfungsi untuk membaca data dari masingmasing Processor yang sudah dibuat. Kemudian DataSource dari masingmasing Processor tersebut digabungkan (merge) ke sebuah custom DataSource. Lalu sebuah Processor dan DataSink dibuat untuk menghasilkan file keluaran berupa video dengan suara dengan data yang sudah di merge di custom DataSource tadi dan aktifitas ini pun berakhir.
Gambar 7 Activity Diagram Merge Audio & Video
56
Aplikasi Penghasil Video dari Capture Layar Komputer Menggunakan Bahasa Pemrograman Java (Tjatur Kandaga, Febrian Berthanio)
3.4 Diagram Kelas Aplikasi yang dibuat seluruhnya memiliki 13 kelas yang terdiri dari 6 buah kelas utama yang merupakan bagian inti dari aplikasi dan 7 buah kelas yang berfungsi sebagai penyusun tampilan (user interface) aplikasi. Selain 13 kelas tersebut terdapat 6 buah inner class yang merupakan bagian dan pendukung dari kelas utama. Perancangan diagram kelas untuk aplikasi yang akan dibuat ditunjukkan pada gambar 8.
Gambar 8 Rancangan Diagram Kelas Dari gambar diagram kelas pada gambar 8 akan dijelaskan beberapa ketentuan berkaitan dengan 6 buah kelas utama yaitu ScreenCapturer, DataHandler, JpegImagesToMovie, Merge, AudioHandler dan MainApp. Ketentuan – ketentuan tersebut adalah sebagai berikut: 1. Kelas JpegImagesToMovie dan ScreenCapturer memiliki atribut berupa objek yang dibuat dari kelas DataHandler yang berfungsi untuk membaca data yang sudah disimpan oleh kelas ScreenCapturer. 2. Kelas MainApp memiliki atribut-atribut berupa objek yang dibuat dari masing-masing kelas AudioHandler, Merge, Setting, dan ScreenCapturer. Objek dari kelas AudioHandler digunakan untuk memanggil method-
57
Jurnal Informatika, Vol. 9 No. 1, Juni 2013: 47 - 63
method yang berguna dalam proses perekaman audio. Objek dari kelas Merge digunakan untuk memanggil method-method yang berguna dalam proses penggabungan audio dengan video. Objek dari kelas Setting digunakan untuk mengaktifkan dan menyesuaikan perubahan parameterparameter yang diperlukan aplikasi. Objek dari kelas ScreenCapturer digunakan untuk memanggil method-method yang menangani proses pengambilan rangkaian screenshot dari monitor komputer serta proses encoding. 4. IMPLEMENTASI DAN PENGUJIAN 4.1 Form Utama Aplikasi Form ini akan ditampilkan saat pertama kali aplikasi dijalankan (gambar 9). Terdapat dua buah frame yang akan muncul secara bersamaan. Frame yang pertama berfungsi untuk menjalankan dan menghentikan operasi perekaman video dan audio. Sedangkan frame yang kedua berisi panel-panel untuk pengaturan parameter - parameter yang diperlukan aplikasi sebelum memulai proses perekaman.
Gambar 9 Implementasi Antarmuka Form Utama
58
Aplikasi Penghasil Video dari Capture Layar Komputer Menggunakan Bahasa Pemrograman Java (Tjatur Kandaga, Febrian Berthanio)
4.2 Form Save Directory Form Save Directory akan muncul saat pengguna menekan tombol Browse di bagian Setting untuk menentukan dimana file .mov dan .wav yang dihasilkan akan disimpan. Tampilannya seperti gambar 10.
59
Jurnal Informatika, Vol. 9 No. 1, Juni 2013: 47 - 63
Gambar 10 Implementasi Form Save Directory Video & Audio 4.3 Form Status Encoding Form ini dimunculkan saat proses perekaman sudah berakhir. Tujuannya untuk memberikan tampilan dan kesan bahwa ada proses encoding dan merging yang sedang berjalan setelah proses perekaman dihentikan. Gambar 11 bagian pertama menunjukan proses encoding sedang berjalan. Gambar 11 bagian kedua menunjukkan proses merging sedang berjalan. Sedangkan gambar 11 bagian ketiga akan muncul jika proses encoding atau merging dibatalkan oleh pengguna dengan menggunakan tombol cancel.
60
Aplikasi Penghasil Video dari Capture Layar Komputer Menggunakan Bahasa Pemrograman Java (Tjatur Kandaga, Febrian Berthanio)
Gambar 11 Implementasi Form Status Encoding Tabel 1 menunjukkan hasil pengujian terhadap parameter – parameter setting yang dimiliki oleh aplikasi. Pengujian dilakukan dengan melakukan perekaman menggunakan nilai setting parameter yang berbeda. Tabel 1 Pengujian Parameter – Parameter Setting Rec No FPS
Playb. FPS
Frame Width
Frame Height
Waktu (menit)
Encoding Quality
1 2 3 4 5 6 7 8 9
15 15 15 15 30 15 30 45 15
480 480 480 480 480 1280 1280 480 480
360 360 360 360 360 800 800 360 360
15 15 15 15 15 15 15 15 60
25% 50% 75% 100% 25% 25% 50% 25% 25%
15 15 15 15 30 30 30 45 15
Ukuran File Output 213 MB 368 MB 419 MB 1,11 GB 256 MB 1,02 GB 2,97 GB 417 MB 577 MB
Pada proses pengujian parameter – parameter setting terlihat bahwa parameter yang banyak menentukan besarnya ukuran file output adalah ukuran frame (width dan height) serta kualitas encoding.
61
Jurnal Informatika, Vol. 9 No. 1, Juni 2013: 47 - 63
5. SIMPULAN DAN SARAN Dari hasil analisis, perancangan, implementasi dan implementasi aplikasi ini dapat ditarik beberapa simpulan: 1. Dengan bantuan JMF (Java Media Framework) dapat dihasilkan file video dengan cara meng-capture serangkaian gambar (screenshot) dari layar monitor pengguna kemudian memproses rangkaian gambar tersebut. 2. Implementasi aplikasi penghasil video dari hasil capture aktivitas di monitor pengguna sudah dapat menghasilkan video dan audio yang tidak terputus-putus, sinkronisasi yang tepat, dan semua fitur-fitur utama sudah berfungsi dengan baik. Selain simpulan tersebut diatas, penulis juga menarik simpulan berdasarkan percobaan terhadap parameter – parameter setting aplikasi yaitu sebagai berikut: 1. Kualitas dari file video yang dihasilkan dapat diatur dengan cara mengubah setting dari parameter-parameter yang sudah disediakan. 2. Parameter ukuran frame untuk area yang di capture (width dan height) beserta lamanya perekaman paling signifikan dalam menentukan besarnya ukuran file video yang dihasilkan. Semakin besar area yang di capture dan semakin lama perekaman berarti semakin banyak dan semakin besar ukuran gambar (JPEG) yang direkam sehingga ukuran video dari hasil encoding gambar pun menjadi besar. 3. Parameter Encoding Quality juga berpengaruh besar terhadap ukuran file video yang dihasilkan. Semakin besar kualitas encoding berarti gambar JPEG direkam dengan kompresi yang kecil sehingga ukuran video dari hasil encoding gambar menjadi besar. Aplikasi ini masih dapat dikembangkan teknik kompresinya, misalnya dengan melakukan kompresi antar frame gambar karena ukuran file yang dihasilkan cukup besar untuk durasi perekaman yang tergolong sebentar. Selain itu ada kemungkinan untuk mengembangkan aplikasi serupa dengan menggunakan framework yang berbeda untuk menghasilkan video dari hasil perekaman aktivitas di monitor dengan format dan ukuran yang lebih beragam. DAFTAR PUSTAKA [1] Bosi, Marina, and Goldberg, Richard E., 2003: Introduction to Digital Audio Coding and Standards, Springer. [2] Guido M. Schuster and Aggelos Katsaggelos, 2010. Rate-Distortion Based Video Compression: Optimal Video Frame Compression and Object Boundary Encoding, Springer.
62
Aplikasi Penghasil Video dari Capture Layar Komputer Menggunakan Bahasa Pemrograman Java (Tjatur Kandaga, Febrian Berthanio)
[3] Java Media Framework API Guide, 1999. California, Sun Microsystems, Inc. [4] Udell, Jon, 2005. What Is Screencasting. O'Reilly Digital Media. O'Reilly. [5] Zettl, Herbert, 2009. Video Basics. Cengage Learning; 6th ed
63