Python + Mencoder betiği ile altyazılı filmleri cep telefonuza uygun çevirin

Dün akşam bash kabuğundan halletiğim bazı mencoder işlemleri için küçük bir Python betiği yazdım. Bu betik belirlediğim bir divx filmin içine altyazıyı gömerek bunu MPEG-4(.mp4) formatına çeviriyor. Daha önce mencoder ile bir iki şey yazmıştım hatırlarsanız fakat onların bazı eksiklikler vardı.

  • Birinci yazımda komut için telefona codec yüklenmeli ve divx player veya smartmovie gibi programlar ile izlenmesi gerekiyordu
  • İkinci yazımda artık herhangi bir codec yüklemenizde gerek yoktu, fakat hala divx player yüklememiz gerekiyordu.

Peki nasıl telefonumuza hiç bir ek uygulama yüklemeden dahili oynatıcımızdan oynatabileceğiz ? N95′in desteklediği video formatları arasında şunlar var:

3GPP formats (H.263)
H.264/AVC
MPEG-4
RealVideo 7,8,9/10

Bizim yapmamız gereken bu formatlardan birini kullanmak. Biraz daha araştırınca web’de bu konu hakkında iki tane belge buldum. Ben de birine göre daha önce yazdığım betiklerden de faydalanarak aşağıdaki betiği yazdım. Ayrıca şöyle bir şey var, N95 ve diğer N-serisi telefonların bazı multimedya tuşları olabiliyor. Bu tuşlar da sadece içindeki dahili Realplayer oynatıcı ile çalışıyordu. Artık oluşturduğumuz bu video’lar bu tuşlarla da uyumlu olacak.

Yazdığım betik şu şekilde, neler yaptığını sonrasında anlattım:

Okumaya devam edin »

Video dosyalarınızı sağ tıklayarak 320×240 formatına dönüştürün

Daha önce Thunar için küçük bir “custom action” hazırlamıştım. Eğer bilgisayarınıza tv bağlı ise sağ tıklayarak doğrudan oradan açılmasını sağlıyordu. Buna benzer küçük bir betik daha yazdım. Betik zaten hemen hemen aynı, fakat bu sefer yaptığı iş farklı.

Telefonum için 4gb kart aldım. Artık yeterince yerim de olduğu için izlemek istediğim dizileri telefondan otobüsle git gel yaparken izleyeceğim. Fakat bundan önce filmi hem 320×240 formatına çevirmemiz lazım, hem de altyazı filmin içine gömülmesi lazım. Bunu da daha önceki bir yazımda anlatmıştım. Ben bu betiği biraz daha değiştirdim, ve artık DivX Mobile Player’lerde sorunsuz bir şekilde de çalışıyor(Diğeri için codec yüklenmesi gerekiyordu). DivX Mobile Player uygulumasını cep telefonunuz için ücretsiz olarak resmi sitesinden indirebilirsiniz.

Betiğimiz şu şekilde:

#!/bin/bash

for D in *.[sS][rR][tT] ; do

mencoder -sub “$D” -subcp latin5 -subfont-text-scale 4 -vf scale=320:240 -oac mp3lame -lameopts vbr=0:br=32:mode=1 -ovc xvid -xvidencopts bitrate=256 -ofps 20 -sws 2 -o mobilevideoNEW.avi “$1″

done
exit 0

Betiği convertfilm.sh diye /usr/bin altına kaydedip, chmod +x convertfilm.sh yaparak herhangi bir konsol altından şu şekilde çalıştırılabilir

convertfilm film.srt film.avi

Bunun sonucunca mobilvideoNEW adında bir dosya oluşacak. Bu da bizim yeni oluşan filmimiz oluyor. Betiği kafanıza göre düzenleyebilirsiniz tabi. Örneğin -ofps 20 seçeneğini bize frame sayısını ayarlatabiliyor. N95 30′a kadar destekliyor, fakat daha eski telefonlarda bu sorun olabilir, o yüzden onu 15 yapmakta yarar var. Onun dışında mode:1 olan kısımdaki sayı da değiştirilerek stereo(0),jingle-stereo(1) ya da mono(3) yapılabilir. Bitrate kısmı da 256 ideal demiştim daha önceki yazımda, şimdi de öyle. Denemek isteyenler 384 yapıp tekrar deneyebilirler. Filmin kendisi biraz daha yer tutacak ama kalite de artmış olacak. Diğer bilgilerin hepsini “man mencoder” yaparak bulabilirsiniz.

Tabi her zaman konsol açık değildir diye, şu işlemleri de yaparsak tadından yenmez. İlk önce Thunar‘da (Edit > Configure custom actions) tıklayarak boş alanları şu şekilde dolduruyoruz:

Name: Film’i 320×240 formatına dönüştür
Command : /usr/bin/convertfilm %f
Appaearance Conditions
File Pattern : *.avi
Appears if selection contains: Video File

Kaydedelim bu şekilde, dilerseniz de ayrı bir simge ekleyin ki daha güzel dursun menüde. Bundan sonra bir klasör içinde bir film ve altyazı bulunmak şartıyla bir filmin üzerine sağ tıklarsanız şu ibare çıkacaktır:

videthunar.jpg

Tıkladığımız an arka planda mencoder çalışacak, ve video’muzu 320×240 formatına çevirecek ve altyazı da içine gömülecek.

Symbian yüklü telefonlarda altyazili film(divx,xvid) izlemek

Geçen hafta N95 telefonu elime geçti. 1 Haftadır onu kurcalıyorum. Bir çok özelliği var, Wifi, Gps gibi. Benim burada en çok işime yarayan büyük ekranı ve wifi’si. Elime aldığımda aklıma ilk gelen bununla film güzel izlenir düşüncesiydi. Ekranı 2.6 inch bu yüzden örneğin herhangi bir dizi izlemek gayet keyifli olacaktı. Yapmam gereken ise filmi cep telefona yüklemek ve izlemekti. Fakat tam istediğim gibi olmadı, çok yavaşdı, altyazi yoktu, hafiza kartında çok yer kaplamıştı.

1 gündür bunun üzerinde araştırma yaptım ve en iyi şekilde nasıl film izlenir onu bulmaya çalıştım Windows kullanmadığım için herhangi bir “Converter” adlı program yoktu haliyle, fakat hiçde üzülmedim. Onun yerine FFmpeg, mencoder gibi çok güçlü araçlar vardı. Linux altında tüm dağıtımlarda bu programlar mevcut. Herhangi bir dağıtım’a deposuna bakabilir ve görebilirsiniz. Filmler’de bunları kullandım.

Video’muzu 320×240 formatına çevirmemiz lazım, ayrıca bunu yaparken bitrate değerini 256-512 arasında değiştirmemiz lazım. Aynı zamanda bunu yaparken altyaziyi da bir şekilde eklemem lazımdı, piyasada Symbian film oynatıcıları mevcut. Bunlardan en meşhurları Smartmovie ve DivX Mobile Player. Smartmovie paralı olduğu için denemedim, onun yerine DivX Mobile Player indirip kurdum, ve çok da güzel oldu. Hatta bugün yeni sürümü de yayınlandı. N95′de çok güzel bir şekilde çalışıyor.

DivX Movie Player programı malesef altyazı desteklemiyor, aslında yardım menüsünde 7 tuşu ile açılıp kapatıldığı yazılıyordu fakat bu bende çalışmadı. Belki de dosyanın ekini .sub ya da .txt olarak değiştirmek lazımdı. Ben bunlarla hiç uğraşmadım ve onun yerine daha güzel bir çözüm buldum. Mencoder sayesinde altyaziyi doğrudan filmin içine gömdüm. Ayrıca gömerken de yukarıda bahsettiğim gibi 320×240 formatına da çevirdim. Tüm bunları mencoder aracıyla yaptım.


n95_2.jpg

DivX Mobile Playeri indirip, telefonunuza kurun. Ardından gerekli olan bir Codec var, onu da Smartmovie anasayfasında buldum. Filmi bunsuz izlemeyi bir deneyin, eğer çalışmasa codec’i indirin.

Daha sonra Linux’da herhangi bir konsolu açıp aşağıdaki komutu yerleştirin

mencoder -sub alytaziadi.srt -subcp latin5 -subfont-text-scale 4 -ffourcc dx50 -vf scale=320:240 -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=256:vhq -oac copy -o yeniolusanfilmadi.avi orjinalfilmadi.avi

Bu komutu bu hale getirine kadar 3-4 saatimi aldı fakat sonuç olarak çok güzel çalışıyor. Burada -sub ibaresinden sonra altyazimiz geliyor. -ffourcc dx50 ibaresini de eklemek zorundaydım, yoksa film telefonda çalışmıyordu. Bu ibare filminize dx50 etiketini yapıştırıyor. O olmadan da deniyebilirsiniz. scale=320×240 bu ibareyi de telefonunuzun ekran ebatına göre değiştirin. Son olarak da :vbitrate:256 ibaresi var. Burada 256′lik bir bitrate kullanılıyor. Normail filmler 800 bitrate civarinda. Ben bunu 512 ile de denedim, görüntü çok kaliteliydi fakat N95′e ara sıra takılmalar oluyordu, 256 ile hiç bir sorun yaşamadım. Bunu ortası yani 384 ise hem hızlı hem de kalite yönünden iyi olacaktır. 230mb’lik avi dosyası:

256 ile 70 mb
386 ile 105 mb
512 ile 140 mb

yer tutuyor. N95′in tv çıkışı da olduğu için, filmlerinizi tv’e de izlemek istiyorsanız o zaman bitrate’i ve scale değerini olabildiğince yüksek tutun. Gördüğünüz gibi herşeyi tek bir komutla yapabildik. En güzel yanı ise altyazimizi da filmin içine yerleştirdik. Bu sayede herhangi bir sorunla da karşılaşmadık. Telefondaki son hali ise şu şekilde:


n95_1.jpg

Resimin böyle olduğun bakmayın, gerçekte çok daha kaliteli. Bunlar da ingilizce ile arama yapanlar için olsun :) : subtitle, n95, symbian, divx, s 60, howto

Kaynak : [1][2]