Po paru miesiącach udało mi się uruchomić moją kartę tv Leadtek WinFast DTV2000 H PLUS [card=87]
pod Kubuntu 13.04/12.04 i pod Debianem7 oba systemy w wersji x86_64. Tak na marginesie dodam że moja przygoda z linuksem zaczeła się w lutym więc nowy jestem.
Jest obraz i dźwięk, co prawda dźwięk jest opóźniony w stosunku do obrazu, bo program do oglądanie uruchamiam poniższym poleceniem:
Kod: Zaznacz cały
tvtime | arecord -D hw:1,0 -r 44000 -c 2 -f S16_LE | aplay -
Niestety, inaczej się nie da bo wyjście liniowe z karty się popsuło. A chciałbym nagrywać programy telewizyjne pod Debianem. I wiem, że się da bo parę dni temu przypadkiem udało mi się to zrobić, że nagrałem jakiś program takim poleceniem:
Kod: Zaznacz cały
mencoder tv:// -tv device=/dev/video0:input=1:driver=v4l2 :o utfmt=yuy2:normid=5:fps=25:width=768:height=578:brightness=20:contrast=0:saturation=20:freq=199.000:fps=25:audiorate=48000:amode=1:alsa:adevice=hw.0 -vf pp=de -of mpeg -mpegopts format=dvd -srate 48000 -ofps 25 -ovc lavc -oac lavc -lavcopts vcodec=mpeg2video:vrc_buf_size=1835:keyint=15:vrc_maxrate=9800:vbitrate=2000:aspect=4/3:acodec=mp2:abitrate=192 -vf scale=720:576 -o /home/janusz/tvp1_`date "+%s"`.mpg
Próbowałem odtworzyć stan systemu sprzed awarii w nadziei że uda mi się znowu to zrobić niestety jak na razie mi się nie udało.
Pamiętam, że przed awarią nie działał mi dźwięk w winecfg v1.5.19.
Próbowałem znaleźć w internecie rozwiązanie tego problemu i gdy wszystkie sposoby zawiodły sprawdziłem nagrywanie z tv i o dziwo udało się coś nagrać.
Bawiłem się też z alsamixerem włączając i wyłączając różne kanały.
Doinstalowałem mnóstwo pakietów do alsy, pulseaudio i gstreamer, jakieś wtyczki do nich itp. i lipa dalej nie działa. Może coś gdzieś w jakimś pliku zmieniłem ale cóż amnezja.
W ustawieniach systemu -> multimedia zakładka Ustawienia urządzenia dźwiękowe, gdy zmienię kartę dźwiękową z wbudowanej na:
Kod: Zaznacz cały
CX23880/1/2/3 PCI Video and Audio Decoder [Audio Port]
Tu wyniki paru poleceń, które mogą pomóc:
Kod: Zaznacz cały
arecord -l
**** List of CAPTURE Hardware Devices ****
card 0: SB [HDA ATI SB], device 0: ALC889A Analog [ALC889A Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: SB [HDA ATI SB], device 1: ALC889A Digital [ALC889A Digital]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: SB [HDA ATI SB], device 2: ALC889A Analog [ALC889A Analog]
Subdevices: 2/2
Subdevice #0: subdevice #0
Subdevice #1: subdevice #1
card 1: CX8801 [Conexant CX8801], device 0: CX88 Digital [CX88 Digital]
Subdevices: 1/1
Subdevice #0: subdevice #0
Kod: Zaznacz cały
lsmod | grep cx88
cx88_dvb 30564 0
cx88_vp3054_i2c 12564 1 cx88_dvb
videobuf_dvb 12762 1 cx88_dvb
dvb_core 77734 2 videobuf_dvb,cx88_dvb
cx88_alsa 17365 1
snd_pcm 68083 5 snd_pcm_oss,cx88_alsa,snd_hda_codec,snd_hda_intel
cx8800 35584 0
cx8802 17390 1 cx88_dvb
cx88xx 72141 4 cx8802,cx8800,cx88_alsa,cx88_dvb
btcx_risc 12555 4 cx88xx,cx8802,cx8800,cx88_alsa
tveeprom 20593 1 cx88xx
videobuf_dma_sg 13231 5 cx88xx,cx8802,cx8800,cx88_alsa,cx88_dvb
videobuf_core 17825 5 videobuf_dma_sg,cx88xx,cx8802,cx8800,videobuf_dvb
v4l2_common 13222 3 cx88xx,cx8800,tuner
videodev 70889 4 v4l2_common,cx88xx,cx8800,tuner
rc_core 18286 10 ir_nec_decoder,ir_rc5_decoder,cx88xx,ir_rc6_decoder,ir_jvc_decoder,ir_sony_decoder,ir_mce_kbd_decoder,ir_lirc_codec,rc_winfast
i2c_algo_bit 12841 2 cx88xx,cx88_vp3054_i2c
snd 52889 21 snd_timer,snd_seq_device,snd_seq,snd_rawmidi,snd_pcm,snd_mixer_oss,snd_pcm_oss,snd_hwdep,cx88_alsa,snd_hda_codec,snd_hda_intel,snd_hda_codec_realtek
i2c_core 23876 13 i2c_piix4,i2c_algo_bit,videodev,v4l2_common,tveeprom,cx88xx,nvidia,cx8800,tuner,xc4000,cx88_vp3054_i2c,cx88_dvb,zl10353
Kod: Zaznacz cały
dmesg
Kod: Zaznacz cały
[ 7.433357] hda_codec: ALC889A: BIOS auto-probing.
[ 7.449210] input: HDA ATI SB Headphone as /devices/pci0000:00/0000:00:14.2/sound/card0/input5
[ 7.461036] xc4000 0-0061: creating new instance
[ 7.462182] xc4000: Successfully identified at address 0x61
[ 7.462186] xc4000: Firmware has not been loaded previously
[ 7.504620] cx88-mpeg driver manager 0000:03:06.2: firmware: agent loaded dvb-fe-xc4000-1.4.fw into memory
[ 7.532020] Registered IR keymap rc-winfast
[ 7.532190] input: cx88 IR (Leadtek WinFast DTV200 as /devices/pci0000:00/0000:00:14.4/0000:03:06.2/rc/rc0/input6
[ 7.532275] rc0: cx88 IR (Leadtek WinFast DTV200 as /devices/pci0000:00/0000:00:14.4/0000:03:06.2/rc/rc0
[ 7.532281] cx88[0]/2: cx2388x 8802 Driver Manager
[ 7.532322] cx88[0]/2: found at 0000:03:06.2, rev: 5, irq: 20, latency: 32, mmio: 0xfb000000
[ 7.532415] cx88[0]/0: found at 0000:03:06.0, rev: 5, irq: 20, latency: 32, mmio: 0xfa000000
[ 7.532517] cx88[0]: Calling XC4000 callback
[ 7.565168] cx88/2: cx2388x dvb driver version 0.0.9 loaded
[ 7.565174] cx88/2: registering cx8802 driver, type: dvb access: shared
[ 7.565184] cx88[0]/2: subsystem: 107d:6f42, board: Leadtek WinFast DTV2000 H PLUS [card=87]
[ 9.432026] Selecting best matching firmware (3 bits differ) for type=(0), id 000000200000b700:
[ 9.684167] cx88[0]/0: registered device video0 [v4l2]
[ 9.684245] cx88[0]/0: registered device vbi0
[ 9.684317] cx88[0]/0: registered device radio0
[ 9.684379] cx88[0]/2: cx2388x based DVB/ATSC card
[ 9.684385] cx8802_alloc_frontends() allocating 1 frontend(s)
[ 9.684482] cx88[0]/1: CX88x/0: ALSA support for cx2388x boards
[ 9.720124] xc4000 0-0061: attaching existing instance
[ 9.720130] xc4000: Successfully identified at address 0x61
[ 9.720134] xc4000: Firmware has been loaded previously
[ 9.720138] cx88[0]/2: xc4000 attached
[ 9.720144] DVB: registering new adapter (cx88[0])
[ 9.720150] DVB: registering adapter 0 frontend 0 (Zarlink ZL10353 DVB-T)...
Ma ktoś jakiś pomysł co zrobić żeby dało się nagrywać programy z telewizji?
Edycja 1: No i proszę udało mi się znaleźć rozwiązanie na tej stronie: http://mplayerhq.hu/pipermail/mplayer-u ... 72849.html
Brakujące biblioteki to te zaczynające się w nazwie od libalsa* nie wiem, czy wszystkie były potrzebne, no ale ważne, że działa.
A i polecenie nagrywające się trochę zmieniło:
Kod: Zaznacz cały
mencoder tv:// -tv device=/dev/video0:input=1:driver=v4l2 :o utfmt=yuy2:normid=5:fps=25:width=768:height=578:brightness=20:contrast=0:saturation=20:freq=199.000:fps=25:audiorate=48000:amode=1:alsa:adevice=hw.2,0:forceaudio:volume=100 -vf pp=de -of mpeg -mpegopts format=dvd -srate 48000 -ofps 25 -ovc lavc -oac lavc -lavcopts vcodec=mpeg2video:vrc_buf_size=1835:keyint=15:vrc_maxrate=9800:vbitrate=6000:aspect=4/3:acodec=mp2:abitrate=192 -vf scale=720:576 -o /home/janusz/tvp1_`date "+%s"`.mpg
Kod: Zaznacz cały
mplayer tv:// -tv driver=v4l2:input=1:alsa:adevice=hw.2,0:amode=1:audiorate=48000:forceaudio:volume=100:immediatemode=0:normid=5 :o utfmt=yuy2:fps=25:width=640:height=480:brightness=20:contrast=0:saturation=20:freq=199 -vf pp=lb
Kod: Zaznacz cały
01-00: ALC889A Analog : ALC889A Analog : playback 1 : capture 1
01-01: ALC889A Digital : ALC889A Digital : playback 1 : capture 1
01-02: ALC889A Analog : ALC889A Analog : capture 2
02-00: CX88 Digital : CX88 Digital : capture 1

A i dopisałem do pliku /etc/modprobe.d/alsa-base.conf linijkę:
Kod: Zaznacz cały
options snd-hda-intel index=-2
Tak więc z rozwiązaniem się jeszcze wstrzymam.
Edycja 2:
Sprawdziłem, wystarczy zainstalować paczki z nazwą rozpoczynającą się od:
Kod: Zaznacz cały
libalsa
Kod: Zaznacz cały
cat /proc/asound/pcm
Dodane:
Poprawiłem polecenie nagrywające teraz nie będzie wyświetlać informacji typu:
Kod: Zaznacz cały
drop frame
Kod: Zaznacz cały
mencoder tv:// -tv device=/dev/video0:input=1:driver=v4l2 :o utfmt=yuy2:normid=5 :o utfmt=uyvy:fps=25:width=720:height=578:brightness=20:contrast=0:saturation=0:freq=175,500:fps=25:audiorate=48000:amode=1:alsa:adevice=hw.1,0:forceaudio:volume=100 -vf pp=de -of mpeg -mpegopts format=dvd -srate 48000 -ofps 25 -mc 0 -noskip -ovc lavc -oac lavc -lavcopts vcodec=mpeg2video:vrc_buf_size=1835:keyint=15:vrc_maxrate=9800:vbitrate=8000:aspect=4/3:acodec=ac3:abitrate=192 -vf pp=fd -o /home/janusz/movie.mpg
Kod: Zaznacz cały
#!/bin/bash
odp=$(zenity --list \
--title="Wybierz program" \
--width=300 \
--height=600 \
--column="Hz" --column="Nazwa" \
191,000 TVP1 \
199,000 TVP2 \
175,500 Polsat \
343,250 "TVP Historia" \
351,000 "TVP Kultura " \
271,500 TVN \
287,250 "TVN 7" \
167,500 "TV 4" \
151,000 "TV Puls" \
127,250 "TELE 5" \
415,250 "Zone Europe" \
383,250 Foxlife \
303,250 PL \
327,500 "13 Street" \
207,500 "TVP Polonia" \
215,750 Esprit \
143,250 TLC \
479,250 "POLO TV ");
#--------------------------------------------------------------------------
amixer --card 0 set "Line" mute
rec=$(mencoder tv:// -tv device=/dev/video0:input=1:driver=v4l2 :o utfmt=yuy2:normid=5 :o utfmt=uyvy:fps=25:width=720:height=578:brightness=20:contrast=0:saturation=0:freq=$odp:fps=25:audiorate=48000:amode=1:alsa:adevice=hw.1,0:forceaudio:volume=100 -vf pp=de -of mpeg -mpegopts format=dvd -srate 48000 -ofps 25 -mc 0 -noskip -ovc lavc -oac lavc -lavcopts vcodec=mpeg2video:vrc_buf_size=1835:keyint=15:vrc_maxrate=9800:vbitrate=8000:aspect=4/3:acodec=ac3:abitrate=192 -vf pp=fd -o /home/janusz/movie_`date "+%s"`.mpg)
#--------------------------------------------------------------------------
konsole -e $rec
Kod: Zaznacz cały
#!/bin/bash
konsole -e /home/janusz/Dokumenty/tv-nagrywanie/tv-zenity.sh
Zatrzymanie nagrywania robi się tak:
Kod: Zaznacz cały
killall mencoder
Kod: Zaznacz cały
amixer --card 0 set "Line" unmute & amixer --card 0 set "Line" 100% & tvtime
A i jeśli komuś avidemux nie chce takiego materiału zapisać do kontenera mpg (przy ustawieniu avidemux na video copy i audio copy) to należy go zapisać do formatu avi lub mkv.