O kernel Linux 2.6.38 já traz suporte para a placa de TV Pixelview PlayTV USB Hybrid no Linux Ubuntu. Com esta placa, é possível se assistir a TV digital brasileira SBTVD em fullseg (1920×1080) e 1seg (320×240), além da TV standard. Também permite gravação de fontes externas analógicas — como receptores de satélite e filmadoras — pelas entradas Composite (conector RCA amarelo), S-Video e RF, em resolução 720×480. Além disto, capta rádio FM.
O Linux reconhece os chips Conexant cx23102 e Fujitsu mb86a20s graças ao trabalho do professor brasileiro Mauro Carvalho Chehab (mchehabΘredhat·com), mantenedor dos módulos multimídia do Linux e um dos 30 maiores colaboradores deste sistema operacional livre. Um trabalho fundamental no momento em que o Brasil deflagra uma ofensiva diplomática-cultural-comercial na difusão do padrão ISDB-TB em países do hemisfério sul.
Hacking TV
O comando lsusb, que lista os dispositivos USB, reporta:
Bus 001 Device 002: ID 1554:5010 Prolink Microsystems Corp.
Vendor ID é 1554 e Product ID é 5010.
O comando “modinfo cx231xx” reporta os parâmetros do módulo Linux cx231xx :
- pcb_debug: enable pcb config debug messages (int)
- mpegbufs: number of mpeg buffers, range 2-32 (int)
- mpeglines: number of lines in an MPEG buffer, range 2-32 (int)
- mpeglinesize: number of bytes in each line of an MPEG buffer, range 512-1024 (int)
- v4l_debug: enable V4L debug messages (int)
- core_debug: enable debug messages [core] (int)
- reg_debug: enable debug messages [URB reg] (int)
- alt: alternate setting to use for video endpoint (int)
- tuner: tuner type (int)
- transfer_mode: transfer mode (1-ISO or 0-BULK) (int)
- disable_ir: disable infrared remote support (int)
- i2c_scan: scan i2c bus at insmod time (int)
- i2c_debug: enable debug messages [i2c] (int)
- isoc_debug: enable debug messages [isoc transfers] (int)
- card: card type (array of int)
- video_nr: video device numbers (array of int)
- vbi_nr: vbi device numbers (array of int)
- radio_nr: radio device numbers (array of int)
- video_debug: enable debug messages (int)
No Ubuntu, estes parâmetros devem ser passados no arquivo /etc/modprobe.d/cx231xx.conf para serem automaticamente configurados no boot. Por exemplo, a ordem dos dispositivos de vídeo, rádio e closed captions pode ser definida com esta linha no arquivo:
options cx231xx video_nr=2 radio_nr=2 vbi_nr=2
Assim, posso ter a webcâmera como dispositivo /dev/video0, a placa de TV PCI como /dev/video1 e a placa de TV USB como /dev/video2
O arquivo de log /var/log/dmesg reporta:
cx231xx #0: cx231xx #0: v4l2 driver version 0.0.1 cx231xx #0: cx231xx_dif_set_standard: setStandard to 100 cx231xx #0: video_mux : 0 cx231xx #0: do_mode_ctrl_overrides : 0x100 cx231xx #0: do_mode_ctrl_overrides NTSC cx231xx #0: cx231xx #0/0: registered device video0 [v4l2] cx231xx #0: cx231xx #0/0: registered device vbi1 cx231xx #0: V4L2 device registered as video0 and vbi1 Registered IR keymap rc-pixelview-002t input: i2c IR (Pixelview PlayTV USB Hy as /devices/virtual/rc/rc1/input6 rc1: i2c IR (Pixelview PlayTV USB Hy as /devices/virtual/rc/rc1 ir-kbd-i2c: i2c IR (Pixelview PlayTV USB Hy detected at i2c-2/2-0030/ir0 [cx231xx #0] cx231xx #0: EndPoint Addr 0x84, Alternate settings: 5 cx231xx #0: Alternate setting 0, max size= 512 cx231xx #0: Alternate setting 1, max size= 184 cx231xx #0: Alternate setting 2, max size= 728 cx231xx #0: Alternate setting 3, max size= 2892 cx231xx #0: Alternate setting 4, max size= 1800 cx231xx #0: EndPoint Addr 0x85, Alternate settings: 2 cx231xx #0: Alternate setting 0, max size= 512 cx231xx #0: Alternate setting 1, max size= 512 cx231xx #0: EndPoint Addr 0x86, Alternate settings: 2 cx231xx #0: Alternate setting 0, max size= 512 cx231xx #0: Alternate setting 1, max size= 576 cx231xx #0: EndPoint Addr 0x81, Alternate settings: 6 cx231xx #0: Alternate setting 0, max size= 512 cx231xx #0: Alternate setting 1, max size= 64 cx231xx #0: Alternate setting 2, max size= 128 cx231xx #0: Alternate setting 3, max size= 316 cx231xx #0: Alternate setting 4, max size= 712 cx231xx #0: Alternate setting 5, max size= 1424 usbcore: registered new interface driver cx231xx cx231xx #0: cx231xxcx231xx: called cx231xx_uninit_vbi_isoc cx231xx #0: cx231xx_stop_stream():: ep_mask = 10 cx231xx #0: setPowerMode::mode = 32, No Change req. cx231xx #0: cx231xx_stop_stream():: ep_mask = 8 cx231xx #0: cx231xx-audio.c: probing for cx231xx non standard usbaudio cx231xx #0: EndPoint Addr 0x83, Alternate settings: 3 cx231xx #0: Alternate setting 0, max size= 512 cx231xx #0: Alternate setting 1, max size= 28 cx231xx #0: Alternate setting 2, max size= 52 cx231xx: Cx231xx Audio Extension initialized dvb_init: looking for demod on i2c bus: 2 mb86a20s: mb86a20s_attach: Detected a Fujitsu mb86a20s frontend tda18271 2-0060: attaching existing instance DVB: registering new adapter (cx231xx #0) DVB: registering adapter 0 frontend 0 (Fujitsu mb86A20s)... Successfully loaded cx231xx-dvb cx231xx: Cx231xx dvb Extension initialized
O módulo cx231xx reconhece o chip cx23102, decodificador de áudio e vídeo USB e receptor de infravermelho. Segundo sua datasheet, ele suporta os seguintes formatos de vídeo: Composite, S-Video, 480i YPrPb, RGB Packed, YCrCb Packed, 10-bit Packed, e YCrCb/YUY2. O receptor infravermelho do chip também foi detectado.
O sintonizador híbrido analógico e digital de TV e FM foi reconhecido como TDA1827HD/C2 .
O comando v4l-info (informações Video For Linux) reportou:
### v4l2 device info [/dev/video2] ### general info VIDIOC_QUERYCAP driver : "cx231xx" card : "Pixelview PlayTV USB Hybrid" bus_info : "usb-0000:00:1a.7-4" version : 0.0.1 capabilities : 0x5030011 [VIDEO_CAPTURE,VBI_CAPTURE,TUNER,AUDIO,READWRITE,STREAMING] standards VIDIOC_ENUMSTD(0) index : 0 id : 0xb000 [NTSC_M,NTSC_M_JP,?] name : "NTSC" frameperiod.numerator : 1001 frameperiod.denominator : 30000 framelines : 525 VIDIOC_ENUMSTD(1) index : 1 id : 0x1000 [NTSC_M] name : "NTSC-M" frameperiod.numerator : 1001 frameperiod.denominator : 30000 framelines : 525 VIDIOC_ENUMSTD(2) index : 2 id : 0x2000 [NTSC_M_JP] name : "NTSC-M-JP" frameperiod.numerator : 1001 frameperiod.denominator : 30000 framelines : 525 VIDIOC_ENUMSTD(3) index : 3 id : 0x8000 [?] name : "NTSC-M-KR" frameperiod.numerator : 1001 frameperiod.denominator : 30000 framelines : 525 VIDIOC_ENUMSTD(4) index : 4 id : 0x4000 [?] name : "NTSC-443" frameperiod.numerator : 1001 frameperiod.denominator : 30000 framelines : 525 VIDIOC_ENUMSTD(5) index : 5 id : 0xff [PAL_B,PAL_B1,PAL_G,PAL_H,PAL_I,PAL_D,PAL_D1,PAL_K] name : "PAL" frameperiod.numerator : 1 frameperiod.denominator : 25 framelines : 625 VIDIOC_ENUMSTD(6) index : 6 id : 0x7 [PAL_B,PAL_B1,PAL_G] name : "PAL-BG" frameperiod.numerator : 1 frameperiod.denominator : 25 framelines : 625 VIDIOC_ENUMSTD(7) index : 7 id : 0x8 [PAL_H] name : "PAL-H" frameperiod.numerator : 1 frameperiod.denominator : 25 framelines : 625 VIDIOC_ENUMSTD(8) index : 8 id : 0x10 [PAL_I] name : "PAL-I" frameperiod.numerator : 1 frameperiod.denominator : 25 framelines : 625 VIDIOC_ENUMSTD(9) index : 9 id : 0xe0 [PAL_D,PAL_D1,PAL_K] name : "PAL-DK" frameperiod.numerator : 1 frameperiod.denominator : 25 framelines : 625 VIDIOC_ENUMSTD(10) index : 10 id : 0x100 [PAL_M] name : "PAL-M" frameperiod.numerator : 1001 frameperiod.denominator : 30000 framelines : 525 VIDIOC_ENUMSTD(11) index : 11 id : 0x200 [PAL_N] name : "PAL-N" frameperiod.numerator : 1 frameperiod.denominator : 25 framelines : 625 VIDIOC_ENUMSTD(12) index : 12 id : 0x400 [PAL_Nc] name : "PAL-Nc" frameperiod.numerator : 1 frameperiod.denominator : 25 framelines : 625 VIDIOC_ENUMSTD(13) index : 13 id : 0x800 [PAL_60] name : "PAL-60" frameperiod.numerator : 1001 frameperiod.denominator : 30000 framelines : 525 VIDIOC_ENUMSTD(14) index : 14 id : 0xff0000 [SECAM_B,SECAM_D,SECAM_G,SECAM_H,SECAM_K,SECAM_K1,SECAM_L,?ATSC_8_VSB] name : "SECAM" frameperiod.numerator : 1 frameperiod.denominator : 25 framelines : 625 VIDIOC_ENUMSTD(15) index : 15 id : 0x10000 [SECAM_B] name : "SECAM-B" frameperiod.numerator : 1 frameperiod.denominator : 25 framelines : 625 VIDIOC_ENUMSTD(16) index : 16 id : 0x40000 [SECAM_G] name : "SECAM-G" frameperiod.numerator : 1 frameperiod.denominator : 25 framelines : 625 VIDIOC_ENUMSTD(17) index : 17 id : 0x80000 [SECAM_H] name : "SECAM-H" frameperiod.numerator : 1 frameperiod.denominator : 25 framelines : 625 VIDIOC_ENUMSTD(18) index : 18 id : 0x320000 [SECAM_D,SECAM_K,SECAM_K1] name : "SECAM-DK" frameperiod.numerator : 1 frameperiod.denominator : 25 framelines : 625 VIDIOC_ENUMSTD(19) index : 19 id : 0x400000 [SECAM_L] name : "SECAM-L" frameperiod.numerator : 1 frameperiod.denominator : 25 framelines : 625 VIDIOC_ENUMSTD(20) index : 20 id : 0x800000 [?ATSC_8_VSB] name : "SECAM-Lc" frameperiod.numerator : 1 frameperiod.denominator : 25 framelines : 625 inputs VIDIOC_ENUMINPUT(0) index : 0 name : "Television" type : TUNER audioset : 0 tuner : 0 std : 0xffffff [PAL_B,PAL_B1,PAL_G,PAL_H,PAL_I,PAL_D,PAL_D1,PAL_K,PAL_M,PAL_N,PAL_Nc,PAL_60,NTSC_M,NTSC_M_JP,?,?,SECAM_B,SECAM_D,SECAM_G,SECAM_H,SECAM_K,SECAM_K1,SECAM_L,?ATSC_8_VSB] status : 0x0 [] VIDIOC_ENUMINPUT(1) index : 1 name : "Composite1" type : CAMERA audioset : 0 tuner : 0 std : 0xffffff [PAL_B,PAL_B1,PAL_G,PAL_H,PAL_I,PAL_D,PAL_D1,PAL_K,PAL_M,PAL_N,PAL_Nc,PAL_60,NTSC_M,NTSC_M_JP,?,?,SECAM_B,SECAM_D,SECAM_G,SECAM_H,SECAM_K,SECAM_K1,SECAM_L,?ATSC_8_VSB] status : 0x0 [] VIDIOC_ENUMINPUT(2) index : 2 name : "S-Video" type : CAMERA audioset : 0 tuner : 0 std : 0xffffff [PAL_B,PAL_B1,PAL_G,PAL_H,PAL_I,PAL_D,PAL_D1,PAL_K,PAL_M,PAL_N,PAL_Nc,PAL_60,NTSC_M,NTSC_M_JP,?,?,SECAM_B,SECAM_D,SECAM_G,SECAM_H,SECAM_K,SECAM_K1,SECAM_L,?ATSC_8_VSB] status : 0x0 [] tuners VIDIOC_G_TUNER(0) index : 0 name : "Tuner" type : ANALOG_TV capability : 0x2 [NORM] rangelow : 0 rangehigh : 4294967295 rxsubchans : 0x0 [] audmode : MONO signal : 65535 afc : 0 video capture VIDIOC_ENUM_FMT(0,VIDEO_CAPTURE) index : 0 type : VIDEO_CAPTURE flags : 0 description : "16bpp YUY2, 4:2:2, packed" pixelformat : 0x56595559 [YUYV] VIDIOC_G_FMT(VIDEO_CAPTURE) type : VIDEO_CAPTURE fmt.pix.width : 640 fmt.pix.height : 480 fmt.pix.pixelformat : 0x56595559 [YUYV] fmt.pix.field : INTERLACED fmt.pix.bytesperline : 1280 fmt.pix.sizeimage : 614400 fmt.pix.colorspace : SMPTE170M fmt.pix.priv : 0 vbi capture VIDIOC_G_FMT(VBI_CAPTURE) type : VBI_CAPTURE fmt.vbi.sampling_rate : 27000000 fmt.vbi.offset : 0 fmt.vbi.samples_per_line: 1440 fmt.vbi.sample_format : 0x59455247 [GREY] fmt.vbi.start[0] : 10 fmt.vbi.start[1] : 273 fmt.vbi.count[0] : 12 fmt.vbi.count[1] : 12 fmt.vbi.flags : 0 controls VIDIOC_QUERYCTRL(BASE+0) id : 9963776 type : INTEGER name : "Brightness" minimum : 0 maximum : 255 step : 1 default_value : 128 flags : 32 VIDIOC_QUERYCTRL(BASE+1) id : 9963777 type : INTEGER name : "Contrast" minimum : 0 maximum : 127 step : 1 default_value : 64 flags : 32 VIDIOC_QUERYCTRL(BASE+2) id : 9963778 type : INTEGER name : "Saturation" minimum : 0 maximum : 127 step : 1 default_value : 64 flags : 32 VIDIOC_QUERYCTRL(BASE+3) id : 9963779 type : INTEGER name : "Hue" minimum : -128 maximum : 127 step : 1 default_value : 0 flags : 32
Os parâmetros de brilho, contraste, matiz, saturação e volume podem ser controlados interativamente pelo programa GUVCViewer. O programa v4l2ucp lê os parâmetros mas mostra-os desabilitados para mudanças.
O programa v4l2ctrl permite gravar e ler estes parâmetros por linha de comando. Pode ser colocado num ícone no painel, para acesso fácil. POr exemplo, a linha abaixo salva num arquivo os parâmetros. Trocar o “-s” por “-l” causa o carregamento dos parâmetros.
v4l2ctrl -d /dev/video2 -s sbtvd.conf
Áudio
Os dispositivos de áudio podem ser listados com o comando “cat /proc/asound/cards”:
meira@P5QL-E:~$ cat /proc/asound/cards 0 [Intel ]: HDA-Intel - HDA Intel HDA Intel at 0xf9ff8000 irq 44 1 [FM801AU ]: FM801 - ForteMedia FM801-AU ForteMedia FM801-AU at 0xe480, irq 17 2 [Cx231xxAudio ]: Cx231xx-Audio - Cx231xx Audio Conexant cx231xx Audio 3 [U0x93a0x2620 ]: USB-Audio - USB Device 0x93a:0x2620 USB Device 0x93a:0x2620 at usb-0000:00:1a.1-1, full speed
E também podemos listar os identificadores de hardware com “cat /proc/asound/pcm”:
meira@P5QL-E:~$ cat /proc/asound/pcm 00-00: ALC1200 Analog : ALC1200 Analog : playback 1 : capture 1 00-02: ALC1200 Analog : ALC1200 Analog : capture 1 00-03: ALC1200 Digital : ALC1200 Digital : playback 1 01-00: FM801 : FM801 : playback 1 : capture 1 02-00: Cx231xx Audio : Conexant cx231xx Capture : capture 1 03-00: USB Audio : USB Audio : capture 1
Com esta informação, sabemos que o dispositivo deve ser identificado como hw:2,0 em programas como mencoder. Neste caso, os parâmetros do mencoder seriam: “-tv device=/dev/video2:adevice=hw.2,0″. Note que o mencoder exige ponto em vez de dois pontos nos nomes de dipositivos ALSA, já que o “:” é usado como separador de parâmetros.
O programa amixer, no entanto, não lista nenhum controle de volume no dispositivo 2 (comando “amixer -c 2”).
O programa alsamixer (comando “alsamixer -c 2”) no terminal revela que o dispositivo não possui nenhum controle.
O programa arecord (comando “arecord -l”) lista todos os dispositivos de captura de áudio:
meira@P5QL-E:~$ arecord -l **** Lista de Dispositivos CAPTURE Hardware **** placa 0: Intel [HDA Intel], dispositivo 0: ALC1200 Analog [ALC1200 Analog] Dispositivo secundário: 1/1 Dispositivo secundário #0: subdevice #0 placa 0: Intel [HDA Intel], dispositivo 2: ALC1200 Analog [ALC1200 Analog] Dispositivo secundário: 1/1 Dispositivo secundário #0: subdevice #0 placa 1: FM801AU [ForteMedia FM801-AU], dispositivo 0: FM801 [FM801] Dispositivo secundário: 1/1 Dispositivo secundário #0: subdevice #0 placa 2: Cx231xxAudio [Cx231xx Audio], dispositivo 0: Cx231xx Audio [Conexant cx231xx Capture] Dispositivo secundário: 1/1 Dispositivo secundário #0: subdevice #0 placa 3: U0x93a0x2620 [USB Device 0x93a:0x2620], dispositivo 0: USB Audio [USB Audio] Dispositivo secundário: 1/1 Dispositivo secundário #0: subdevice #0
Com o programa de visualização de TV TVtime ligado, consegui gravar o áudio da TV analógica com programa Audacity pelo canal cx231xx Audio.
Até agora, não consegui direcionar o áudio para a saída dos altofalantes. Uma gambiarra que descobri pela rede é usar o programa sox para ler uma placa de som e direcionar a saída para outra. O código abaixo é um script para assistir TV com som no tvtime. Este workaround exige um pouco mais de processamento e resulta em uns décimos de segundos de delay — atraso de som.
#!/bin/sh sox -r 48000 -t alsa hw:1,0 -t alsa pulse & mpid=$! smplayer tv:///1 kill $mpid
Já a gravação de áudio e vídeo se deu sem problemas, pela entrada S-Video e áudio RCA, com a linha de comandos:
mencoder \ -noskip \ tv:///2 \ -tv norm=PAL-M\ :device=/dev/video2\ :driver=v4l2\ :outfmt=i420\ :width=720:height=480\ :fps=29.97\ :alsa\ :adevice=hw.2,0\ :amode=1\ :buffersize=200\ :brightness=10:contrast=-25 \ -ffourcc divx \ -oac mp3lame \ -lameopts cbr:preset=128 \ -ovc lavc \ -lavcopts vcodec=mpeg4\ :vbitrate=1400\ :threads=2\ :autoaspect \ -vf dsize=4/3 \ -vf-add scale \ -vf-add kerndeint=10:0:0:1:1 \ -vf-add softskip,harddup \ -endpos 02:10:00 \ -o ~/videos/tv-svideo-sbtvd-mpeg4-mp3-$$.avi
Controle remoto
O driver reconhece automaticamente as funções do controle remoto da PlayTV Hybrid e carrega o módulo do kernel Linux rc_pixelview_002t. Aparentemente, o módulo mapeia as teclas do controle remoto às teclas de um teclado alfanumérico. Uma busca levou ao código deste módulo com as teclas que ele emite:
/* 17 * Keytable for 002-T IR remote provided together with Pixelview 18 * SBTVD Hybrid Remote Controller. Uses NEC extended format. 19 */ 20 static struct rc_map_table pixelview_002t[] = { 21 { 0x866b13, KEY_MUTE }, 22 { 0x866b12, KEY_POWER2 }, /* power */ 23 24 { 0x866b01, KEY_1 }, 25 { 0x866b02, KEY_2 }, 26 { 0x866b03, KEY_3 }, 27 { 0x866b04, KEY_4 }, 28 { 0x866b05, KEY_5 }, 29 { 0x866b06, KEY_6 }, 30 { 0x866b07, KEY_7 }, 31 { 0x866b08, KEY_8 }, 32 { 0x866b09, KEY_9 }, 33 { 0x866b00, KEY_0 }, 34 35 { 0x866b0d, KEY_CHANNELUP }, 36 { 0x866b19, KEY_CHANNELDOWN }, 37 { 0x866b10, KEY_VOLUMEUP }, /* vol + */ 38 { 0x866b0c, KEY_VOLUMEDOWN }, /* vol - */ 39 40 { 0x866b0a, KEY_CAMERA }, /* snapshot */ 41 { 0x866b0b, KEY_ZOOM }, /* zoom */ 42 43 { 0x866b1b, KEY_BACKSPACE }, 44 { 0x866b15, KEY_ENTER }, 45 46 { 0x866b1d, KEY_UP }, 47 { 0x866b1e, KEY_DOWN }, 48 { 0x866b0e, KEY_LEFT }, 49 { 0x866b0f, KEY_RIGHT }, 50 51 { 0x866b18, KEY_RECORD }, 52 { 0x866b1a, KEY_STOP }, 53 };
Já fica mais fácil programar aplicativos para usar o controle remoto. Basta configurá-lo como se recebesse as teclas de um teclado normal.
VLC
Para se ver TV digital brasileira no PC (com Linux ou Windows), a linha de comando do VideoLan é esta:
vlc dvb-t://frequency=593142857 :dvb-adapter=0 :dvb-device=0 :live-caching=300
Onde a frequência varia conforme o canal. A seguinte tabela tem todas as frequências usadas no SBDTV (ISDB-T).
# UHF channels 14 to 69 T 473142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 14 T 479142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 15 T 485142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 16 T 491142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 17 T 497142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 18 T 503142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 19 T 509142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 20 T 515142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 21 T 521142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 22 T 527142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 23 T 533142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 24 T 539142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 25 T 545142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 26 T 551142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 27 T 557142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 28 T 563142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 29 T 569142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 30 T 575142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 31 T 581142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 32 T 587142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 33 T 593142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 34 T 599142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 35 T 605142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 36 # channel 37 not used T 617142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 38 T 623142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 39 T 629142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 40 T 635142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 41 T 641142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 42 T 647142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 43 T 653142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 44 T 659142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 45 T 665142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 46 T 671142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 47 T 677142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 48 T 683142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 49 T 689142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 50 T 695142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 51 T 701142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 52 T 707142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 53 T 713142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 54 T 719142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 55 T 725142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 56 T 731142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 57 T 737142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 58 T 743142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 59 T 749142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 60 T 755142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 61 T 761142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 62 T 767142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 63 T 773142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 64 T 779142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 65 T 785142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 66 T 791142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 67 T 797142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 68 T 803142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 69
Com o VLC, para se gravar TV basta apertar no botão vermelho “Gravar”. A gravação de TV digital é fácil e rápida, pois consiste apenas em pegar o fluxo mpeg-TS (Transport Stream) e jogar para um arquivo *.TS. Não ocupa muito processamento e fica com a qualidade máxima com que foi recebida, embora os arquivos fiquem gigantescos. Mas grava tudo: o vídeo em alta resolução, o vídeo em baixa resolução para celulares, os diversos canais de áudio, as legendas, a tabela com a programação da estação de TV.
Windows
O programa para se assistir e gravar TV digital, o “Presto! PVR HD”, grava em formato NXT e revela uma grata surpresa: ele grava tudo o que foi transmitido em cada canal sem impactar o processador. Isto acontece porque o sistema nipo-brasileiro de TV Digital já veicula tudo no formato padronizado MPEG-TS (Transport Stream): vídeo em mpeg4, áudio em AAC, etc. Os programas de gravação só precisam pegar os fluxos e mandar para um arquivo. Assim, o arquivo resultante contém o programa de alta resolução (1980 x 1080 pixels) ou standard resolution (720 x 480 pixels), os programas em 1seg, para celular (320 x 240 ou 320 x 180 pixels), as diversas trilhas sonoras e as legendas.
Também notei que, mesmo que canais HDTV tenham sinais fracos e dificuldades de sintonização, as gravações feitas deste modo ficam quase perfeitas.
A desvantagem é que os arquivos de gravações de TV digital ficam enormes: em média, 230 MB por minuto. Tamanho aproximado de material gravado em formato DV ou mjpeg. Para se editar o arquivo NTX com os editores de vídeos atuais, que não entendem este formato, deve-se convertê-lo para algo mais apropriado, como DV ou mpeg4. Um bom media player para abrir NTX e converter (salvar) em outros formatos é o VLC. Estou experimentando com o container MKV, com áudio e vídeos originais em mpeg4. Há problemas em escolher o fluxo de vídeo. Ele pega sempre o primeiro, na lista de fluxos. Alguns canais de TV mandam a versão 1seg em primeiro, em vez da SDTV ou HDTV, e assim, o VLC não gravará a versão em HD. Deve haver uma opção para escolher o fluxo (programa) correto.
Saiba mais
- Linux e o Sistema Brasileiro de TV Digital. Como configurar o VLC para assistir TV Digital.
- Configuração da placa Pixel View Hybrid semiautomatizada
Pessoal, estou enfrentando um problema com esta placa (ou TV Time).. A placa funciona, mas acontece o seguinte erro intermitente:
videoinput: Tuner present, but our request to change to
videoinput: frequency 83250 failed with this error: No such device.
videoinput: Please file a bug report at http://tvtime.net/
Se eu desconecto a placa e reconecto às vezes a coisa funciona, às vezes não… A partir do momento que o TV Time abre a placa vai bem, roda direto sem apresentar problemas.. Mas se fecho o programa o negócio enrosca..
Alguém já passou por isso? Tem ideia de como resolver?
Oi. Em qual usb você está conectando a Hybrid? Experimente, se for um desktop, usar as portas traseiras, pois elas tem mais potência do que as frontais (depende do seu gabinete…).
Caso isso não resolva, veja se o dmesg está detectando corretamente o dispositivo, como o comando:
dmesg | grep cx231xx
se em alguma das linhas mostrar o nome da placa ou não aparecer nenhum ERROR, ela está sendo detectada sem problemas.
Outra questão a ser vista é se você tem ou não webcam no computador ou outra placa de TV. Mesmo que só use por um momento, a detecção do linux coloca um /dev/videoX de acordo com a sua lógica. Tipo, bota a webcam e ela fica com /dev/video0, e a tv passa a ser /dev/video1. Caso aconteça, é preciso abrir o tvtime com esses valores já definidos, seja pelo /etc/tvtime/tvtime.xml ou por parametros na linha de comando.
Outra coisa para isolar a causa: experimente usar a Hybrid em outro computador, e veja como ela se comporta. Se lá não tiver linux, use um live cd nele, ubuntu 11.04 ou outro com o kernel 2.6.38, e instale o tvtime (você pode instalar coisas na sessão do livecd, mesmo que perca se sair dele…). Veja se tem diferença. Se funcionar bem é problema da sua máquina, caso contrário é da Hybrid.
Outro detalhe: o linux ainda não desmonta a Hybrid automaticamente quando tirada, para falar a verdade nem o Windows também. Se você desconecta-la com o sistema ligado, os módulos não serão todos tirados da memória, e é arriscado em danifica-la, pois alguns dados ficam armazenados dentro dela e o linux não pára de energizá-la. Ou você desliga/reinicia para tira-la ou derruba os módulos carregados e provavelmente o firmware no braço.
Nos seus testes com o dmesg caso apareça um erro de firmware em relação a Hybrid, experimente instalar o pacote linux-firmware, pois ele vem com muita coisa relativa a placas de tv. Normalmente não é preciso, mas pode ser uma forma de resolver o seu problema…
… e fica enchendo os arquivos de log com mensagens de erro. Recomendo religar o computador para não haver problema de falta de espaço em disco.
Ola,
Obrigado pela pronta resposta.. Considereações:
– O mesmo erro está acontecendo em diferentes máquinas (instalei em duas e tem o mesmo problema)…
– Fiz o teste com mais de uma Hybrid…
– Os erros são totalmente aleatórios (ex: estava apresentado o erro… Reiniciei o computador e voltou a funcionar – com a placa conectada na mesma porta USB – traseira)
– Quando ocorreu o erro no dmesg era reportado um erro (assim que o erro ocorrer novamente posto aqui a mensagem). Imagino que o problema seja no driver..
Abraço
prof. gostaria de inf. sua
saberia me informar se o linux ou esta placa da pixelview funciona tv digital também brasileiro no linux ubuntu 11.04 kernel 2.6.38. testei essa placa funcionou tudo ok . mas tenho interesse saber se funciona no linux tv digital e qual soft. ou programa pra tv digital linux vc recomendaria. obrigado
Olá, Márcio!
Sim, a TV Digital funciona com o media player VLC. Mais detalhes em http://dougsland.livejournal.com/103169.html?page=2#comments
Estou sem uma antena decente, assim que arrumar esse problema, continuo a pesquisa pra mudar o canal no VLC
Consegui fazer funcionar com video e audio, usando o VLC.
no menu “Media” selecionei “Open Capture Device”
Vai abrir a janelinha do “Device Selection”, então preencha “/dev/video2” na caixa “Video device name” e coloque “hw:2,0” (no meu é hw:1,0) em “Audio device name”. Ali em Options, na mesma janela, selecione “PAL-M”, clique em Play e divirta-se. Se você quiser usar RCA ou S-video, continue seguindo o coelho branco, clicando em “Advanced optons…” para mais uma janela. Lá temos 2 campos interessantes, “Input” e “Audio input”. São os mesmos valores que usaria na linha de comando, no caso do RCA, preencha os 2 campos com o valor “1”. Só clicar OK e Play.
Excelente notícia, Alexsandro!
Você já tentou gravar HDTV com o VLC?
Ainda não. Se o laptop não explodir, é o proximo passo.
Dúvida: como acesso os canais? Pois aqui tento usar os botões de avançar e retroceder e nada. Fica só uma tela fora do ar e um som cortado.
Já segui o seus passos.
Consegui agora. Desculpa a importunação.
Só que não consigo trocar de canal. Só mostra o 3 (Globo aqui onde moro).
Perdoe a demora, fui tentar uma nova configuracao de renderização aqui e consegui travar o meu kubuntu (aquele ubuntu com KDE). Tambem não consegui trocar o bendito do canal, estou fuçando aqui.
Rssss. O meu netbook deu uma queda na interface gráfica logo que fechei o vlc…. Mas voltou em instantes.
De todo jeito, é massa ter mais uma maneira de botar a Hybrid para funcionar. Parabéns!
Por enquanto nenhuma conclusão nova, assim que encontrar algo novo postarei aqui.
A proposito, escrevi meu sobrenome errado! Se como corrijo?
Acho que consegui.
POR FAVOR ALGUÉM SABE SE A PLACA DE TV DIGITAL HYBRIDA VISUS TV EXTREME USB JÁ FUNCIONA NO UBUNTU 11.04 E NO LINUX EM GERAL?
A menos que tenha tido suporte antes, aparentemente não:
http://br-linux.org/2010/tv-digital-brasileira-no-linux-mais-drivers-experimentais-disponiveis/
Tente usar o comando
ls /dev/video*
e veja se aparece alguma coisa. Se vc tiver webcam ou semelhante, /dev/video0 aparecerá. Se não tiver mais nada, veja se aparece um /dev/video0, então pelo menos em parte o visus foi detectado. Caso não apareça nada, é possível que o seu dispositivo ainda não seja reconhecido Procure ainda nas saídas de:
lsusb
e
dmesg
E veja se aparece alguma coisa em relação ao seu dispositivo. Tente pesquisar em http://www.linuxtv.org ou colocando no google com o modelo de seu aparelho na internet, do jeito que tem na caixa, como por exemplo:
visus extreme hybrid linux