Arsip ‘Script’ Tag
Script Pemutar VCD Multitracks dengan (Totem) Movie Player di Lucid
Pagi tadi anak-2-ku menyodori VCD anak2 untuk diputar di laptop. Ga bisa menolak karena VCD player merk Vitron lagi rusak. Dengan pede saya masukkan saja VCD tsb. ke CDROM. Putar dengan (Totem) Movie Player. Jreng…. Jalan mulus. Tapi, oh no! Setelah pesan video “PERINGATAN”, eh videonya berhenti. Duh!
Ternyata VCD-nya multitracks (?). Tuh, dalam folder MPEGAV ada lima berkas .DAT
Entah saya kurang jago atau bagimana (gr), saat saya coba putar pake VLC dan GNOME MPlayer juga gatot alisa gagal total!
Saya coba gugling, ternyata akar masalahnya ada di gstreamer. Saya belum coba “solusi” ini, namun saya ingin mencoba solusi lain tanpa harus mengubah Totem dari gstreamer ke xine.
Caranya…
1. Tambahkan baris berikut di berkas /etc/fstab untuk mount /dev/cdrom ke /media/cdrom
2. Tulis script berikut, dan beri nama (misal) totem-vcd.sh
#!/bin/sh # eshabe@gmail.com # Add a line below to /etc/fstab file, if not exist # /dev/cdrom /media/cdrom iso9660 ro,user,noauto,unhide # Bug(s): # If in non fullscreen mode, new track is displayed in "default" size TARGET=/media/cdrom/MPEGAV/AVSEQ??.DAT VCD='' for i in $TARGET do a=$(basename $i | sed -n ' s/[^0-9]//g; s/^0//g; p') VCD=$VCD' vcd://'$a done if [ -n "$VCD" ] then echo -n 'Playing...' totem --fullscreen $VCD fi echo 'Stoped.'
3. Ubah properti berkas agar bisa dieksekusi (executable)
Nah, masukkan VCD-mu ke CDROM. Klik ganda berkas totem-vcd.sh, pilih Run!
DEB Banyak Yg Rusak?
Menjengkelkan sekali! Setelah diperiksa dg md5sum, ternyata banyak berkas deb yg rusak (md5sum FAILED). Jika hanya satu-dua berkas hal ini tidak masalah namun jika belasan?
Di tulisan sebelumnya, hasil pemeriksaan saya simpan di /tmp/cekmd5sum.txt, maka untuk mendapatkan daftar berkas yg rusak dpt dg cara:
grep FAILED /tmp/cekmd5sum.txt | sort -k2 > /tmp/chkfailed.txt
Selanjutnya, adalah menggandakan ulang berkas-2 yg ada di /tmp/chkfailed.txt. Untuk membantu pekerjaan yg menjemukan ini, kamu bisa menggunkan skrip kesayanganmu.
Saya tulis skrip berikut:
#!/usr/bin/perl
my $badfile = $ARGV[0];
my $md5sum = $ARGV[1];
if (! -r $badfile or ! -r $md5sum)
{
print “Usage: mymd5.pl badfilelist md5sumfile\n”;
exit;
}
my @bads;
my @md5;
die “Can not open $badfile” if (!open(BADF,”<$badfile”));
while (my $l=)
{
chomp($l);
my @f = split /: /,$l;
$bads[$#bads+1] = $f[0];
}
close BADF;
die “Can not open $md5sum” if (!open(MD5,”<$md5sum”));
while (my $l=)
{
chomp($l);
foreach my $i (@bads)
{ $md5[$#md5+1] = $l if (index($l,” $i”)>=0); }
}
close MD5;
print join (“\n”,@md5);
Simpan dg nama mymd5.pl (atau nama lain, sesukamu). Skrip ini berfungsi untuk mendapatkan daftar md5sum dari berkas-2 yg rusak (FAILED). Cara memakainya adalah:
mymd5.pl /tmp/chkfailed.txt /home/sihab/ubuntu/MD5SUMS > /tmp/badmd5.txt
Lanjut….
#!/usr/bin/perl
my $md5sum = $ARGV[0];
my $src=”/media/cdrom”;
die “Can not open \”$md5sum\”" if (!open(MD5,”<$md5sum”));
while (my $l=)
{
chomp($l);
my @f = split ‘ ‘,$l;
print “* “.$f[1].”\n”;
my $m = readpipe (‘md5sum ‘.$f[1]);
chomp ($m);
if ($m ne $l)
{
print “-exp: $l\n-act: $m\n”;
if (-r “$src/”.$f[1])
{
my $cmd = “cp $src/”.$f[1].” “.$f[1];
system ($cmd);
print ” copy\n”;
my $m = readpipe (‘md5sum ‘.$f[1]);
chomp ($m);
if ($m ne $l) { print “ERROR: checksum is different after copy!\n”; }
}
else
{ print ” * Pls use another source!\n”; }
}
else { print ” ok\n”; }
}
close MD5;
Simpan dg nama copyifbad.pl. Masukkan DVD Repo, lalu jalankan:
copyifbad.pl /tmp/badmd5.txt
Bila muncul : * Pls use another source! maka DVD harus diganti dg yg lain.
* N.B. : Jgn lupa untuk mengubah hak akses ke excutable tiap-2 skrip.
Powered by ScribeFire.
Komentar (2)










