Feeds:
Pos
Komentar

Archive for the ‘gratisan’ Category

hari ini saya diminta tolong oleh rekan kerja saya untuk melakukan konversi berkas rekaman CCTV yang menggunakan berkas DV4. setelah saya coba cari menggunakan google serta mencoba-coba sendiri, tampaknya ffmpeg (sekarang diubah namanya menjadi avconv) maupun handbrake tidak mampu melakukan konversi/transcoding, padahal berkas yang sama bisa dimainkan dengan media player classic di windows.

hasil dari mediainfo menyatakan bahwa berkas tersebut menggunakan format AVC:

mediainfo DV4

percobaan transcoding menggunakan ffmpeg maupun handbrake menghasilkan berkas yang terlalu kecil. hasil pencarian google juga tidak menunjukkan hal yang jelas, dan karena sudah menjelang pulang kantor, akhirnya saya putuskan untuk menggunakan aplikasi windows (gratis) yang bernama Super®.

super

tujuan saya menggunakan Super® adalah melakukan konversi berkas DV4 ke dalam format yang lebih mudah ditangani, dalam hal ini saya memilih MP4. dengan memilih Output Container MP4 lalu centang Stream Copy agak tidak perlu melakukan transcoding atas format yang pada dasarnya sudah AVC, Super® menghasilkan berkas MP4 yang lebih mudah saya kelola dengan default framerate 25 FPS.

Screen Shot 2013-05-31 at 5.31.55 PM

sekarang saya bisa langsung menggunakan ffmpeg/avconv untuk memotong-motong video (misalnya mulai dari menit 12 detik 49 selama 3 menit: ffmpeg -i input.mp4 -ss 00:12:49 -t 00:03:00 output.mp4), dan menggunakan mmg dari paket mkvtoolnix untuk melakukan penggabungan video sekaligus mengubah framerate sesuai dengan hasil rekaman asli CCTV tadi, setelah saya coba-coba angka yang cocok adalah 10 FPS.

Screen Shot 2013-05-31 at 5.44.45 PM

dari hasil penggabungan itu didapatkan berkas mkv (matroska), yang kemudian saya konversi kembali ke mp4: ffmpeg -i input.mkv -vcodec copy output.mp4. voila! berkas DV4 berhasil saya ubah ke MP4 tanpa sekalipun melakukan transcoding yang memakan waktu, sehingga semua proses di atas bisa dilakukan dengan cepat, dan semuanya menggunakan aplikasi non komersial alias tidak berbayar. anyway, di bawah adalah hasil videonya, rekaman pasangan maling yang menyaru seolah-olah calon penyewa apartemen rekan kantor namun lalu mencuri isi apartemen seperti TV, tabung gas, peralatan makan dan lain-lain.

Read Full Post »

menyambung tulisan sebelumnya untuk optimasi koneksi internet ke jaringan lokal di rumah, satu cara lagi adalah dengan membuat sebuah intercepting caching proxy dengan menggunakan squid. ini juga untuk menggantikan tulisan saya sebelumnya yang menjelaskan kombinasi squid dan firestarter, yang ternyata tidak bisa berfungsi. untuk instalasi squid di sistem operasi lucid:

# aptitude install squid

sunting berkas /etc/squid/squid.conf. yang penting untuk keperluan intercepting adalah baris http_port 192.168.0.1:3128 transparent, lalu saya menetapkan pool harddisk yang besar sekitar 20GB, cache_dir ufs /var/spool/squid 21000 16 256:

acl all src all
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8
acl cipete src 192.168.0.0/16
acl SSL_ports port 443		# https
acl SSL_ports port 563		# snews
acl SSL_ports port 873		# rsync
acl Safe_ports port 80		# http
acl Safe_ports port 21		# ftp
acl Safe_ports port 443		# https
acl Safe_ports port 70		# gopher
acl Safe_ports port 210		# wais
acl Safe_ports port 1025-65535	# unregistered ports
acl Safe_ports port 280		# http-mgmt
acl Safe_ports port 488		# gss-http
acl Safe_ports port 591		# filemaker
acl Safe_ports port 777		# multiling http
acl Safe_ports port 631		# cups
acl Safe_ports port 873		# rsync
acl Safe_ports port 901		# SWAT
acl purge method PURGE
acl CONNECT method CONNECT
http_access allow cipete
http_access allow manager localhost
http_access deny manager
http_access allow purge localhost
http_access deny purge
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost
http_access deny all
icp_access allow cipete
icp_access deny all
http_port 192.168.0.1:3128 transparent
hierarchy_stoplist cgi-bin ?
cache_dir ufs /var/spool/squid 21000 16 256
access_log /var/log/squid/access.log squid
refresh_pattern ^ftp:		1440	20%	10080
refresh_pattern ^gopher:	1440	0%	1440
refresh_pattern -i (/cgi-bin/|\?) 0	0%	0
refresh_pattern (Release|Package(.gz)*)$	0	20%	2880
refresh_pattern .		0	20%	4320
acl shoutcast rep_header X-HTTP09-First-Line ^ICY\s[0-9]
upgrade_http0.9 deny shoutcast
acl apache rep_header Server ^Apache
broken_vary_encoding allow apache
extension_methods REPORT MERGE MKACTIVITY CHECKOUT
cache_mgr user@mail.com
visible_hostname dontshootthemessenger
hosts_file /etc/hosts
coredump_dir /var/spool/squid

jalankan squid:

# service squid start

ujicoba dengan menggunakan peramban yang dikonfigurasi menggunakan proxy di atas (port 3128). agar bisa melakukan intercepting proxy yang transparent, kita tidak bisa membatasi hak akses dengan user/password.

sekarang agar semua klien dalam jaringan tiap kali menggunakan peramban akan dialihkan ke squid, kita harus memaksa semua konekasi outgoing di port 80 untuk dibelokkan ke 192.168.0.1:3128, ini bisa dilakukan dengan memanfaatkan ipkungfu. sunting berkas /etc/ipkungfu/redirect.conf, lalu tambahkan baris ini:

tcp:80:3128:internal	# transparent squid proxy

jalankan ipkungfu kembali:

# ipkungfu

setelah ini, semua klien di jaringan yang mengakses port 80 akan dibelokkan terlebih dulu ke squid proxy yang telah dibangun di atas. dengan demikian, selesai sudah 3 tulisan saya yang berhubungan dengan pembagian koneksi internet ke jaringan lokal di rumah.

Read Full Post »

agar kita bisa menjelajahi internet, ada fungsi paling dasar yang pasti selalu terpakai: DNS, Domain Name Service. DNS ini yang bertugas menerjemahkan nama domain (misalnya ryosaeba.wordpress.com) ke dalam bentuk IP address, yang lebih dimengerti oleh lapisan jaringan. biasanya jika kita berlangganan ke sebuah ISP, Internet Service Provider, kita akan menggunakan fasilitas DNS yang disediakan oleh ISP tersebut. bisa juga kalau kita ingin membatasi akses internet untuk internet yang aman buat anak-anak misalnya, kita menggunakan OpenDNS atau DNS Nawala.

sebenarnya proses meminta terjemahan nama domain ke IP address ini dari komputer kita ke DNS server ISP tidak lama, rata-rata memakan waktu 500 milidetik, alias setengah detik. namun bayangkan jika DNS server ISP itu bisa kita pindahkan ke dalam jaringan lokal di rumah, maka proses penerjemahan nama domain tadi bisa disingkat sampai cuma tinggal 1 milidetik. jika seharian kita melakukan ratusan permintaan penerjemahan nama domain, banyak waktu yang bisa dihemat jika DNS server-nya ada di jaringan lokal.

untuk mengetahui berapa lama proses yang dibutuhkan untuk melakukan penerjemahan nama domain ini, di linux maupun mac bisa digunakan perintah dig. berikut jika saya meminta google DNS (8.8.8.8) menerjemahkan malesbanget.com:

$ dig @8.8.8.8 malesbanget.com

; <<>> DiG 9.7.0-P1 <<>> @8.8.8.8 malesbanget.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 3619
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;malesbanget.com.		IN	A

;; ANSWER SECTION:
malesbanget.com.	4471	IN	A	65.98.16.186

;; Query time: 471 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Sat Jun 12 07:40:01 2010
;; MSG SIZE  rcvd: 49

lama kueri bisa dilihat dari Query time. dari hasil di atas terlihat hasilnya adalah 471 milidetik. ketika saya ulangi lagi sebanyak 3 kali, hasilnya berturut-turut adalah 239, 312, dan 757 milidetik.

untuk keperluan DNS caching ini, saya memilih menggunakan pdnsd, dan supaya efektif, saya akan menggunakan ipkungfu agar semua kueri DNS yang terjadi di jaringan lokal saya akan selalu dilewatkan ke pdnsd, walaupun komputer klien tersebut secara eksplisit meminta server DNS yang lain.

unduh paket pdnsd:

# aptitude install pdnsd

sunting berkas /etc/pdnsd.conf; konfigurasi saya adalah pdnsd bisa dipergunakan oleh mesin lain dalam jaringan lokal di rumah, lalu DNS server yang saya pergunakan adalah google DNS dan OpenDNS serta pilihan terakhir adalah DNS speedy, lalu blokir beberapa situs iklan.

global {
	perm_cache=1024;
	cache_dir="/var/cache/pdnsd";
	run_as="pdnsd";
	server_ip = eth0;  // Use eth0 here if you want to allow other
				// machines on your network to query pdnsd.
	status_ctl = on;
  	paranoid=on;
//	query_method=tcp_udp;	// pdnsd must be compiled with tcp
				// query support for this to work.
	min_ttl=15m;       // Retain cached entries at least 15 minutes.
	max_ttl=1w;	   // One week.
	timeout=10;        // Global timeout option (10 seconds).

        // Don't enable if you don't recurse yourself, can lead to problems
        // delegation_only="com","net";
}

// This section is meant for resolving from root servers.
server {
	label = google;
	ip = 8.8.8.8;                // google DNS
	ip = 208.67.222.222;  // OpenDNS
	ip = 4.4.4.4;                // google DNS
	ip = 208.67.220.220;  // OpenDNS
	ip = 202.134.0.61;      // speedy
	ip = 203.130.196.5;    // speedy
	timeout = 5;
	uptest = query;
	interval = 30m;      // Test every half hour.
	ping_timeout = 300;  // 30 seconds.
	purge_cache = off;
	exclude = .localdomain;
	policy = included;
	preset = off;
}

source {
	owner=localhost;
//	serve_aliases=on;
	file="/etc/hosts";
}

rr {
	name=localhost;
	reverse=on;
	a=127.0.0.1;
	owner=localhost;
	soa=localhost,root.localhost,42,86400,900,86400,86400;
}

neg {
	name=doubleclick.net;
	types=domain;   // This will also block xxx.doubleclick.net, etc.
}

neg {
        name=edgesuite.net;
        types=domain;   // This will also block xxx.doubleclick.net, etc.
}

neg {
        name=predictad.com;
        types=domain;   // This will also block xxx.doubleclick.net, etc.
}

neg {
        name=widgetbucks.net;
        types=domain;   // This will also block xxx.doubleclick.net, etc.
}

neg {
        name=yieldmanager.com;
        types=domain;   // This will also block xxx.doubleclick.net, etc.
}

lalu sunting berkas /etc/default/pdnsd dan buat baris ini: START_DAEMON=yes. setelah itu, aktifkan pdnsd:

# service pdnsd start

silakan menguji pdnsd yang sudah dipasang dengan perintah dig, misalnya “dig @192.168.0.1 malesbanget.com”. untuk kueri DNS yang pertama akan terlihat masih normal, sekitar 500 milidetik, namun jika diulangi, maka kueri berikutnya akan menjadi lebih cepat, cuma 1 atau 2 milidetik.

langkah berikutnya adalah mengubah konfigurasi dhcp3-server agar komputer klien mengacu ke DNS server yang telah dibuat, dengan menyunting berkas /etc/dhcp3/dhcpd.conf, lalu mengubah bagian domain-name-servers sesuai dengan IP address DNS server tadi (dalam hal ini 192.168.0.1):

subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.100 192.168.0.200;
option domain-name-servers 192.168.0.1;
option domain-name "mshome.net";
option routers 192.168.0.1;
option broadcast-address 192.168.0.255;
default-lease-time 600;
max-lease-time 7200;
} 

setelah itu, restart dhcp3-server:

# service dhcp3-server restart

ini adalah hasil uji coba di komputer klien, terlihat kueri DNS berikutnya cuma 1 milidetik:

eko@epia800:~$ dig malesbanget.com

; <<>> DiG 9.7.0-P1 <<>> malesbanget.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 45235
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;malesbanget.com.		IN	A

;; ANSWER SECTION:
malesbanget.com.	14400	IN	A	65.98.16.186

;; Query time: 422 msec
;; SERVER: 192.168.0.1#53(192.168.0.1)
;; WHEN: Fri Jun 11 23:30:21 2010
;; MSG SIZE  rcvd: 49

eko@epia800:~$ dig malesbanget.com

; <<>> DiG 9.7.0-P1 <<>> malesbanget.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 886
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;malesbanget.com.		IN	A

;; ANSWER SECTION:
malesbanget.com.	14398	IN	A	65.98.16.186

;; Query time: 1 msec
;; SERVER: 192.168.0.1#53(192.168.0.1)
;; WHEN: Fri Jun 11 23:30:23 2010
;; MSG SIZE  rcvd: 49

namun bagaimana untuk klien yang “bandel”, yang suka menentukan sendiri DNS server apa yang mau dipakai? ini bisa ditangani dengan membelokkan outgoing request di port 53 TCP/UDP ke pdnsd memanfaatkan fasilitas redirection yang ada di ipkungfu. sunting berkas /etc/ipkungfu/redirect.conf, lalu tambahkan 2 baris berikut:

udp:53:53:internal	# dns
tcp:53:53:internal	# dns

jalankan ipkungfu kembali agar dia mendeteksi perubahan konfigurasi.

# ipkungfu

sekarang walaupun klien menentukan sendiri DNS server yang dia pakai, akan selalu dibelokkan ke pdnsd. optimasi berikutnya yang bisa dilakukan adalah membuat squid caching proxy.

Read Full Post »

koneksi speedy di rumah saya dibagi dengan menggunakan notebook tua, sebuah thinkpad X20 yang sudah tidak berfungsi lagi layarnya. daripada menjadi bangkai tak berguna, saya manfaatkan X20 yang berprosesor pentium III 600 MHz ini untuk menjadi router, ketimbang menjadi bangkai. lagipula, karena X20 ini merupakan notebook, tentu saja lebih irit listrik ketimbang menggunakan komputer desktop tua sebagai router.

langkah pertama adalah membuat modem ADSL yang dipakai untuk koneksi speedy ke mode bridging. pada umumnya modem ADSL sudah berfungsi juga sebagai router, bahkan juga berfungsi sebagai wireless router. namun untuk kepentingan saya pribadi, saya memindahkan fungsi router ini ke X20, karena processing power dan jumlah memori yang lebih besar ketimbang modem, ditambah ada beberapa hal yang tidak bisa dilakukan jika modem berfungsi juga sebagai router.

kedua, membuat X20 bisa melakukan dial PPPoE ke modem. ini dengan mudah dilakukan dengan menjalankan pppoeconf, ikuti saja petunjuk yang muncul. untuk kepentingan saya, saya buat koneksi Speedy ini persistent, jadi kalau koneksi terputus, X20 akan otomatis melakukan redial.

langkah ketiga adalah menentukan besar MTU yang sesuai.

langkah keempat adalah melakukan pembagian koneksi internet itu sendiri. ada dua aplikasi yang saya tahu mempermudah hal ini. pertama adalah firestarter. ini adalah cara yang paling mudah untuk membagi akses internet, dan antarmuka grafisnya juga cukup intuitif, mudah dipelajari. untuk menjalankan firestarter, unduh dulu aplikasinya:

# aptitude install firestarter

setelah itu jalankan firestarter, bisa melalui menu aplikasi di gnome desktop, atau melalui command line:

# firestarter

klik menu Firewall, lalu klik Run Wizard, ikuti saja petunjuk yang ada.

kekurangan dari firestarter adalah kesulitan memodifikasi setting yang dibuat oleh firestarter, terutama jika saya ingin membuat DNS caching dan intercepting (transparent) squid cache proxy. jadi untuk menggantikan firestarter, saya menggunakan ipkungfu. kebalikan dari firestarter, ipkungfu ini tidak menggunakan antarmuka grafis, melainkan hanya sekumpulan berkas konfigurasi. walaupun begitu, saat instalasi awal, installer paket ipkungfu akan membantu melakukan beberapa setting dasar. untuk kepentingan awal, setting default ipkungfu sudah cukup untuk membagi koneksi internet dari speedy.

# aptitude install ipkungfu

setting default dari installer paket ipkungfu seharusnya mencukupi, namun jika diinginkan kita bisa mengutak-atik berkas konfigurasi yang berada di di /etc/ipkungfu. jika telah selesai, sunting berkas /etc/default/ipkungfu, dan pastikan ada baris “IPKFSTART=1”. setelah itu aktifkan ipkungfu:

# ipkungfu

jika anda memilih menggunakan firestarter, akan ditawarkan pilihan menjadikan mesin sebagai DHCP server, jadi tidak perlu lagi setting DHCP server. namun bagi yang menggunakan ipkungfu, kita masih harus melakukan setting dhcp server:

# aptitude install dhcp3-server

sunting berkas /etc/dhcp3/dhcpd.conf, lalu modifikasi sesuai dengan konfigurasi. misalnya di tempat saya, X20 sebagai router mempunyai IP address 192.168.0.1, lalu DNS menggunakan google DNS 8.8.8.8, dan saya menentukan pool IP DHCP adalah mulai dari 192.168.0.100 sampai 192.168.0.200, dan saya mengikuti standar microsoft dalam penamaan home network dengan mshome.net:

subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.100 192.168.0.200;
option domain-name-servers 8.8.8.8;
option domain-name "mshome.net";
option routers 192.168.0.1;
option broadcast-address 192.168.0.255;
default-lease-time 600;
max-lease-time 7200;
} 

setelah itu jangan lupa sunting berkas /etc/default/dhcp3-server dan modifikasi baris INTERFACES sesuai dengan konfigurasi jaringan lokal. misalnya di X20 koneksi ethernet yang tersambung ke sisi lokal adalah eth0, maka dibuat baris INTERFACES=”eth0″. setelah itu jalankan DHCP server:

# service dhcp3-server start 

jika semua langkah di atas dijalankan dengan benar, maka kini instalasi lucid lynx anda sudah bisa membagi koneksi internet.

langkah tambahan yang bisa dilakukan untuk mengoptimalkan jaringan lokal di rumah antara lain melakukan DNS caching dan membuat squid caching proxy.

Read Full Post »

setidaknya ada dua buah bugs yang saya temukan selama menggunakan lucid lynx.

bug pertama adalah ketika paket snmp di-upgrade, installer paket akan mengeluhkan kesalahan “userdel: user snmp is currently logged in“. cara termudah adalah mencari proses apa yang berhubungan dengan snmp:

# ps aux | grep snmp

snmp       408  0.0  0.9   9068  3116 ?        S    Jun11   0:38 /usr/sbin/snmpd -Lsd -Lf /dev/null -u snmp -I -smux -p /var/run/snmpd.pid

hasilnya ternyata ada proses snmpd yang sedang berjalan. stop proses tersebut:

# service snmpd stop

lalu jalankan installer paket kembali:

# dpkg --configure -a

setelah itu jangan lupa jalankan kembali snmpd:

# service snmpd start

bug kedua adalah paket mdadm, saat instalasi rupanya dia mencari /dev/MAKEDEV, padahal itu terletak di /sbin/MAKEDEV. untuk memperbaikinya, hapus dulu berkas konfigurasi mdadm sekalian dengan paketnya:

# rm /etc/mdadm/mdadm.conf
# aptitude -y purge mdadm

lalu buat symbolic link ke /sbin/MAKEDEV di direktori /dev:

# cd /dev/
# ln -s /sbin/MAKEDEV

setelah itu install kembali paket mdadm, kali ini instalasi akan berjalan lancar:

# aptitude -y install mdadm

Read Full Post »

tulisan ini sudah tidak berlaku lagi. silakan baca bagaimana cara membuat squid dengan ipkungfu sebagai pengganti tulisan ini.

bagi saya, cara termudah di ubuntu untuk melakukan sharing koneksi internet adalah dengan menggunakan firestarter.
lalu untuk mengirit pemakaian internet, cara yang lumayan mudah dan sederhana adalah dengan memaksakan trafik internet melalui proxy (intercepting proxy, yang lebih populer disebut sebagai transparent proxy, walaupun memang salah kaprah). berikut adalah langkah-langkahnya:

  1. instalasi dan konfigurasi firestarter untuk membagi koneksi internet anda ke jaringan lokal.
  2. instalasi dan konfigurasi Squid. jangan lupa tambahkan policy di firestarter untuk port yang dipergunakan oleh Squid; misalnya Squid masih menggunakan port default 3128, maka tambahkan policy di firestarter untuk koneksi port 3128 pada LAN.
  3. tambahkan baris ini pada /etc/firestarter/user-pre:
    $IPT -t nat -A PREROUTING -i $IF -p tcp --dport 80 -j REDIRECT --to-port 3128

Read Full Post »

di rumah saya menggunakan TV widescreen untuk menayangkan film dan video dari WDTV. yang menjadi masalah adalah jika menemukan video dalam kontainer AVI yang mempunyai PAR (pixel aspect ratio) 1:1, karena di TV akan muncul blok hitam di sebelah kiri dan kanan, tanda bahwa video tersebut memang dibuat bukan untuk WS (wide screen). bicara AR, ada dua jenis AR, yaitu pixel AR (PAR) dan display AR (DAR). TV konvensional mempunyai DAR 4:3, sedangkan TV wide screen mempunyai DAR 16:9. sebuah video dengan resolusi 640×480 dan PAR 1:1 akan mempunyai DAR 4:3.

awalnya saya mencoba untuk re-encode dengan menggunakan ffmpeg, namun proses ini rumit, karena harus menghitung sendiri resolusi akhir yang diinginkan agar sesuai dengan AR 16:9, lalu karena saya memilih codec x264, dimensi tadi harus dalam kelipatan 16 pixel.

dari hasil pencarian, akhirnya saya menemukan MPEG4 Modifier. ada dua jenis, satu dengan GUI (graphical user interface), satu lagi CL (command line), dan keduanya menggunakan .NET, artinya ini adalah aplikasi yang berjalan di windows. untungnya ada Mono, sehingga bisa berjalan di Mac OS X (saya menggunakan fink untuk memunculkan mono) dan sepertinya sudah ada dalam instalasi standar ubuntu jaunty.

jika menggunakan versi GUI, pemakaiannya sangat mudah. jalankan MPEG4 Modifier (dari ubuntu: mono MPEG4Modifier.exe), pilih video yang ingin diubah, pilih DAR yang diinginkan, lalu klik Save.

mpeg4-modifier

sayangnya jika menggunakan versi CL, pilihan AR yang ada tidak selengkap versi GUI. dari hasil eksperimen, untuk mencapai DAR 16:9, saya harus memasukkan parameter custom PAR 227:169.

$ mono ~/mmcl.exe --par custom 227:169 05\ -\ The\ King\ of\ Omashu.avi 05\ -\ The\ King\ of\ Omashu.ws.avi
MPEG4 Modifier CL v1.4.4
http://www.moitah.net/

Loading: 100.0%
Saving: 100.0%
Video was written successfully.

Read Full Post »

Older Posts »