NASIL TV Kartından Kayıt
From Lapis Wiki
Bu makale NASIL bölümü serisinin bir parçasıdır
|
| MasaÜstü • Donanım • Ağ • 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.
