NASIL TV Kartından Kayıt

From Lapis Wiki

Jump to: navigation, search
Bu makale NASIL bölümü serisinin bir parçasıdır
MasaÜstü Donanım Dağıtımlar
Tarayıcılar Programlama Linux ve Oyunlar


Konu başlıkları

Giriş

Bu makalede terminalden mencoder yardımı ile TV kartından nasıl kayıt yapılır onu görüceğiz.

Önhazırlık

Mplayer programını kaynak kodundan derlediğiniz takdirde mencoder aracı sisteminize kurulmuş demekdir. Eğer synaptic gibi paket yöneticisi kullanıyorsanız mplayer ve mencoder araçları ayrı ayrı paketlenmiş olabilir. Bu yüzden mencoder programını bulup yüklemeniz gerekecekdir.

Benim tavsiyem mplayer programını kaynak kodundan kurun ve

./configure 

komutunu verdiğinizde gerekli codec paketlerinin bulunup bulunmadıgını kontrol etmenizdir. Buna göre

ffmpeg, 
xvid,
div4linux 

gibi codec paketlerinin decoder ile birlikte sisteminizde bulunup bulunmadığınıda kontrol etmiş olursunuz.


Mencoder uygulaması çok yönlü bir komutdur. 7000 satırı aşkın bir kullanım klavuzuna sahipdir. Yanlızca tv kartından kayıt yapmak değil, video dosyalarını dönüştürmek içinde kullanabilirsiniz ya da DVD riplemek için. Bunları yazıcağım yeni wikilerde anlatacağım. TV kartından kayıt yapabilmek için video for linux (v4l,v4l2) driverlarına ihtiyacımız var. Bunlar Linux kernelinde genelde öntanımlı olarak mevcuttur. Fakat etkin olup olmaması kullandığınız kernele bağlıdır. Kontrol etmenizde fayda vardır.

Bu yazıda ben size v4l2 driverını kullanarak anlatıcağım. Zira v4l nin gelişmiş modeli yeni sürümü v4l2 diye adlandırılıyor.

Uygulama

Şimdi size kodu vericeğim sonrada teker teker her bir parametreyi açıklamasını yapacağım.

Bu kodu uygulamadan önce dikkat edilmesi gerekenler:

# Ses mixerinizde Line-in bulun ve recording enable yapın
# Kodu uygulamadan önce tv izleme programı ile kayıt etmek istediğiniz kanalı bulun ve tv izleme programını kapatın.

Kayıt yaparken seyretme olanagınız yok ama kayıt yapmakta oldugunuz dosyayı video playerla 10sn gecikmeli izleyebilirsiniz

Tv kartından kayıt yapmak için verilcek komut:

mencoder tv:// -tv driver=v4l2:device=/dev/video0:norm=PAL:width=640:height=480:fps=25 \
         -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=1500 -oac mp3lame \
         -lameopts br=96:cbr -vop pp=lb -o test.avi
Kayıtı durdurmak için terminali kapatıyoruz.
Açıklaması(Soldan Sağa):

mencoder tv://

TV kartını kaynak olarak belirmiş oluyoruz

-tv opsyon1:opsyon2:opsyon3:...

TV kartını kayıda ayarlamak için hangi sürücüyü kullanacagımızı ve standardları belirtmek için kullanıyoruz. Her seçenek arasına : işareti koymamız gerekiyor.
driver=v4l2
Bu kullancağımız video sürücüsünü tanımlıyor
device=/dev/video0
Bu tv kartının bulundugu yer, default olarak /dev/video0 tanımlıdır.
norm=PAL
Bu tv standardı(normalde bunu yazmasanızda çalışacakdır). Bu seçenek v4l2 sürücüsüne özeldir, v4l sürücüyü kullanacaksanız bu seçeneği kaldırın.
width=640
Kayıt etmek istediğiniz video'nun enini tanımlar.
height=480
Kayıt etmek istediğiniz video'nun boyunu tanımlar.
fps=25
Saniyedeki frame sayısını tanımlar.
-ovc opsyon
Video encoder burda hangi encoder ı kullanacağımızı seçeceğiz ffmpeg,divx4linux,xvid gibi
lavc 
Ben ffmpeg kullandım o yüzden lavc opsyonunu girdim.

-lavcopts opsyon1:opsyon2:opsyon3:...

Kullandığımız ffmpeg in opsyonlarını seçiyoruz.
vcodec=mpeg4
Video codec olarak mpeg4 seçilmiş.
vbitrate=1500
Değişken bit değeri 1500 olarak seçilmiş.
-oac opsyon
Ses Encoderı, burda hangi ses encoderı kullanacağımızı seçeceğiz
mp3lame 
Örnek kod düzeninde mp3 kullandım. Bu yüzden mp3lame opsyonunu girdim

-lameopts opsyon1:opsyon2:opsyon3:...

Seçtiğimiz mp3 codec için bitrate gibi seçenekleri giriyoruz.
br=96 
96kbps olarak belirtmişiz eğer video klip kaydetcekseniz arttırabilirsiniz 128,196 gibi
cbr 
mp3 bit rate sabit tutmak için (constant bitrate)

-vop opsyon1,opsyon2,opsyon3,...

video için filter opsyonlarını gireceğiz.
pp=lb 
deinterlence filter koyuyoruz.
-o test.avi
test.avi şeklinde terminali çalıştırdığımız yere kayıt işlemini yapabiliriz.

Kayıdı Otomatikleştirelim

Burda kaydetcegimiz dosya eskisinin uzerine yazmasın diye sistem zamanını alıp o isimde kayıt yapıyoruz.İlk önce bi bos dosya yapalım.

#gedit /usr/bin/kayit

içine aşagıdakilerini yapıştıralım

 export TARIH="`date +%d-%m_%T`.avi"
 mencoder tv:// -tv driver=v4l2:device=/dev/video0:norm=PAL:width=640:height=480:fps=25 \
        -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=1500 -oac mp3lame \
        -lameopts br=96:cbr -vop pp=lb -o /home/ev klasorunuzun ismi buraya/$TARIH

ve editoru save edip kapatalım sonra calıstırılabilen dosya haline getirelim.

#chmod +x /usr/bin/kayit

böylece terminalden kayit yazdıgımızda ev klasorunun altına o tarih ve saat ismini atarak kayıda baslayacakdır.

Yeni komutlar

mencoder ile Tv'den kayıt yaparken kullanabileceğiniz diğer parametreler aşağıdaki gibidir. Bunlardan işinize yarıyanları mencoder koduna ekleyebilirsiniz. Buradaki parametreler ile sınırlı olmadığınızı ve herzaman mencoder yardımcı kılavuzuna bakabileceğinizi unutmayınız.

-endpos=60
Kayıtın ne kadar süre sürdürüleceğini belirtir. Saniye cinsinden değerleri verebilirsiniz. 60sn yani 1dakika kayıt yaptıktan sonra işlem sonlanacakdır.

delogo=x:y:w:h:t

Kayıt yaparken Tv kanalının logosunu interpolasyonla silmek için bir opsyon. Bunu -vop filter parametresindeki opsyonlara arada virgül , koyarak düzenlediğimizde çalışacakdır. Örnek olarak show tv yi kaydederken logosunu silmek için
delogo=47:25:65:65:0 

girmeniz yeterli olcakdır. Burda x ve y sol üst köşeden başlıyor. w ve h genişlik ve yükseklik, t ise bu dikdörtgenin kalınlığını tanımlar. Ben 0 olarak alıyorum, w ve h ye ekleniyor başka bi işlevi yok.



CTRLBREAK