Categories: TVVideo

Placa Pixelview PlayTV Hybrid no Linux Ubuntu: primeiras impressões

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

 

José Antonio Meira da Rocha

Jornalista, professor das áreas de Editoração e de Mídias Digitais na Universidade Federal de Santa Maria, campus cidade de Frederico Westphalen, Rio Grande do Sul, Brasil. Doutor em Design pelo Programa de Pós-Graduação em Design (PGDesign)/Universidade Federal do Rio Grande do Sul (UFRGS), Porto Alegre, Brasil, 2023. Mestre em Mídias pela UNISINOS, São Leopoldo, RS, Brasil, 2003. Especialista em Informática na Educação, Unisinos, 1976.

View Comments

Share
Published by
José Antonio Meira da Rocha

Recent Posts

Sempre faça um fotão

Colheita de soja. Foto: Wenderson Araujo/Trilux Fotógrafos de mídias rurais já perderam a conta das…

1 year ago

A corrupção dos tolos

João Batista MezzomoAuditor fiscal O que está por trás de tudo o que está acontecendo…

4 years ago

Naomi who? Naomi Wu!

A.k.a. "SexyCyborg". A mulher do século 21. Naomi Wu testa seu iluminador de implantes na…

5 years ago

Raspagem de dados

A principal ferramenta do jornalista de dados é a planilha, tipo LibreOffice Calc, M.S. Excel…

5 years ago

Que estratégia político-terapêutica pára um governo deliroide?

Rita Almeida, 9 de março de 2019 Psicóloga Rita Almeida: não delirantes, mas deliroides. Não…

6 years ago

Sua tia não é fascista, ela está sendo manipulada

Rafael Azzi5 de outubro de 2018 Você se pergunta como um candidato com tão poucas…

6 years ago