config.xml 16.2 KB
Newer Older
1
<?xml version="1.0" encoding="iso8859-1"?>
2
<!-- revision:1.1 -->
3 4 5
<chapter id="config">
<title id="tconfig">
Configuración
6 7 8
</title>

<para>
9 10 11 12 13 14 15 16
VLS carga su configuración del fichero de
configuración <filename>vls.cfg</filename>, que se
supone que se encuentra en el directorio actual o
en <filename>SYSCONF_DIR/videolan/vls</filename> (donde
<emphasis>SYSCONF_DIR</emphasis> es <filename>/usr/local/etc</filename>
si instalastes VLS a mano, o es <filename>/etc</filename>
si lo instalastes como un paquete debian).
</para>
17 18

<para>
19 20
Para escribir un fichero <filename>vls.cfg</filename>, usa como punto
de partida el proporcionado con VLS
21 22
.</para>

23 24 25
<sect1>
<title>
Estructura general
26 27 28
</title>

<para>
29 30 31 32
El fichero de configuración <filename>vls.cfg</filename>
está dividido en secciones, y cada sección puede contener varias
variables:
</para>
33 34 35

<programlisting>

36 37 38
BEGIN "Seccion1"
  Variable1 = "valor1"
  Variable2 = "valor2"
39 40 41
  [...]
END

42 43 44
BEGIN "Seccion2"
  Variable1 = "valor1"
  Variable3 = "valor3"
45 46 47 48 49 50 51
  [...]
END

[...]
</programlisting>

<para>
52 53 54 55 56 57
Todos los nombres de sección, nombres de variable y valores
no son case-sensitive. Puede haber secciones y subsecciones vacías. Los
comentarios deben comenzar con un carácter <keycap>#</keycap>. Algunas variables tienen
un valor por defecto; por lo que se puede omitir declararlas,
y tendrán su valor por defecto.
</para>
58 59 60

</sect1>

61 62 63
<sect1>
<title>
Construyendo un <filename>vls.cfg</filename>
64 65 66
</title>

<para>
67 68 69
A continuación se explican todas las secciones
que se pueden encontrar en el fichero <filename>vls.cfg</filename>:
</para>
70 71 72 73

<sect2><title>Section "VLS"</title>

<para>
74 75
Esta sección contiene los parámetros globales.
</para>
76 77 78 79 80 81

<programlisting>
LogFile = "name"
</programlisting>

<para>
82 83 84
Nombre del fichero de logs de VLS. Si se deja vacío "", no
se crea fichero de logs. Por defecto es "vls.log".
</para>
85 86 87 88 89 90

<programlisting>
SystemLog = "[disable|enable]"
</programlisting>

<para>
91 92 93 94
Generando Logs en el SystemLog. De momento, sólo está implementado
el SystemLog usando syslogd: compile con la opción <command>./configure
--enable-syslog</command>.
</para>
95 96

<caution><para>
97 98 99
Si VLS es ejecutado como <command>vlsd</command>, entonces
la siguiente configuración es obligatoria:
</para>
100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115

<programlisting>
BEGIN "Vls"
  LogFile   = ""
  SystemLog = "enabled"
  ScreenLog = "disabled"
END
</programlisting>

</caution>

<programlisting>
ScreenLog = "[disable|enable]"
</programlisting>

<para>
116 117
Generando mensajes de log en la consola.
</para>
118 119

<para>
120 121
Ejemplo:
</para>
122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137

<programlisting>
BEGIN "Vls"
  LogFile   = "vls.log"
  SystemLog = "disable"
  ScreenLog = "enable"
END
</programlisting>

</sect2>

<sect2><title>
Section "Groups"
</title>

<para>
138 139 140 141 142
En esta sección, se pueden definir lo grupos de usuarios,
y qué comandos son permitidos para estos usuarios. Para
cada grupo que se quiera definir, se debe añadir una línea en
el siguiente formato:
</para>
143 144 145 146 147 148

<programlisting>
groupname = "command1|command2|..."
</programlisting>

<para>
149 150 151 152 153
Esto añade un grupo "groupname", y sus usuarios
tienen permitido ejecutar el comando1, comando2, y así sucesivamente. Por el momento, los
comandos disponibles son: help, browse, start, suspend, resume, forward,
rewind, stop, shutdown, logout.
</para>
154 155

<para>
156 157
Ejemplo:
</para>
158 159 160 161 162 163 164 165 166 167 168 169 170 171 172

<programlisting>
BEGIN "Groups"
  monitor = "help|browse|logout"
  master  = "help|browse|start|resume|suspend|forward|rewind|stop|shutdown|logout"
END
</programlisting>

</sect2>

<sect2><title>
Section "Users"
</title>

<para>
173 174 175 176
Esta sección contiene una lista de los usuarios con permisos para
controlar VLS a través de una interfaz de administración. Por cada usuario,
se debe añadir una línea con el siguiente formato:
</para>
177 178 179 180 181 182

<programlisting>
username = "password:groupname"
</programlisting>

<para>
183 184 185 186
Esto añade un usuario "username", que pertenece al
grupo "groupname" (definido en la sección "Groups") y que puede
autenticarse con la contraseña "password".
</para>
187 188 189 190

<itemizedlist>

<listitem><para>
191 192 193 194
Bajo Unix/Linux, la contraseña debe estar encriptada,
con una herramienta como <command>mkpasswd</command>, o con la
función UNIX "crypt".
</para></listitem>
195 196

<listitem><para>
197 198
Bajo Windows, la contraseña debe estar en limpio.
</para></listitem>
199 200 201 202

</itemizedlist>

<para>
203 204
Ejemplo para Unix/Linux:
</para>
205 206 207

<programlisting>
BEGIN "Users"
208 209
  monitor = "3BcKWoiQn0vi6:monitor"       # password es 'monitor'
  admin   = "42BKiCguFAL/c:master"        # password es 'Vir4Gv5S'
210 211 212 213 214 215 216 217 218 219
END
</programlisting>

</sect2>

<sect2><title>
Section "Telnet"
</title>

<para>
220 221 222
En esta sección, se puede configurar la interfaz de
administración Telnet.
</para>
223 224 225 226 227 228

<programlisting>
LocalPort = "port"
</programlisting>

<para>
229 230
Define qué puerto será utilizado por el servidor
Telnet. El puerto por defecto es "9999"
231 232 233 234 235 236 237 238 239


.</para>

<programlisting>
Domain = "domain"
</programlisting>

<para>
240 241 242 243
Se puede utilizar "inet4" o "inet6" (por defecto "inet4"). Si
se quiere utilizar direcciones IPv4, utilice "inet4", y si se quiere
IPv6, utilice "inet6".
</para>
244 245 246 247 248 249

<programlisting>
LocalAddress = "IP address"
</programlisting>

<para>
250 251 252 253
Define en qué dirección IP estará escuchando el servidor Telnet
para aceptar peticiones. Por defecto es "0.0.0.0" (ó "0::0" con
IPv6).
</para>
254 255

<para>
256 257
Ejemplo:
</para>
258 259 260 261 262 263 264 265 266 267 268 269 270

<programlisting>
BEGIN "Telnet"
  LocalPort = "9999"
END
</programlisting>
</sect2>

<sect2><title>
Section "NativeAdmin"
</title>

<para>
271 272
Usa la misma sintaxis que "Telnet". No se utiliza todavía.
</para>
273 274 275 276 277 278 279 280

</sect2>

<sect2><title>
Section "Inputs"
</title>

<para>
281 282 283 284
En esta sección, se puede definir qué entradas se quieren
usar. Por cada entrada que se necesite, se debe añadir una línea
en el siguiente formato:
</para>
285 286 287 288 289 290

<programlisting>
InputName = "Type"
</programlisting>

<para>
291 292 293 294
Esto añade una entrada con el nombre "InputName", del tipo
"Type". Como se explicó anteriormente, existen varios tipos de
entradas:
</para>
295 296 297 298

<itemizedlist>

<listitem><para>
299 300
"local" para leer de un fichero o un DVD,
</para></listitem>
301 302

<listitem><para>
303 304
"video" para leer de una tarjeta capturadora MPEG,
</para></listitem>
305 306

<listitem><para>
307 308
"dvb" para leer de una tarjeta DVB,
</para></listitem>
309 310

<listitem><para>
311 312
"v4l" para leer de un dispositivo Video4Linux.
</para></listitem>
313 314 315 316

</itemizedlist>

<para>
317 318 319
Cada entrada debe estar configurada en su propia sección
(ver el siguiente párrafo).
</para>
320 321

<para>
322 323
Ejemplo:
</para>
324 325 326 327 328 329 330 331 332 333 334 335

<programlisting>
BEGIN "Inputs"
  local1 = "local"
  pvr    = "video"
  dvb1   = "dvb"
  tuner  = "v4l"
END
</programlisting>
</sect2>

<sect2><title>
336
Configuración de entradas
337 338 339
</title>

<para>
340 341 342 343 344 345
Para cada entrada declarada en la sección "Inputs",
excepto para las entradas "local", se debe añadir una sección con el mismo nombre que
la entrada correspondiente. Por ejemplo, si se declara una entrada "pvr",
debe haber también una sección llamada "pvr". La sintaxis de cada sección
depende del tipo de la entrada correspondiente.
</para>
346 347

<para>
348 349 350
Para configurar una entrada local, no se debe hacer
nada. Excepto cuando otra estrategia trickplay deba ser usada:
</para>
351 352 353 354 355 356 357 358 359

<programlisting>
BEGIN "Local1"
  ProgramCount = "1"
  TrickPlay    = "normal"
END
</programlisting>

<para>
360 361 362 363 364
"Local1" es el nombre de la entrada local que se quiere
configurar. "ProgramCount" es el número de programas asignados a esta
entrada. "TrickPlay" es la estrategia trickplay que se usa en esta entrada
(por defecto "normal").
</para>
365 366

<para>
367 368 369
Para configurar una entrada video, se debe añadir una entrada en el
siguiente formato:
</para>
370 371 372 373 374 375 376 377 378

<programlisting>
BEGIN "VideoInputName"
  Device = "device"
  Type   = "type"
END
</programlisting>

<para>
379 380 381 382 383 384
"VideoInputName" es el nombre de la entrada de vídeo que
se quiere configurar. "Device" es la ruta de la tarjeta codificadora MPEG
de la que se quiere leer (por defecto es "/dev/video"). "Type" puede ser "Mpeg2-PS"
o "Mpeg2-TS", dependiendo de la configuración de la tarjeta (por defecto es
"Mpeg2-PS").
</para>
385 386

<para>
387 388
Ejemplo para una tarjeta Hauppauge WinTV-PVR-250:
</para>
389 390 391 392 393 394 395 396 397

<programlisting>
BEGIN "pvr"
  Device = "/dev/video0"
  Type   = "Mpeg2-PS"
END
</programlisting>

<para>
398 399 400
Para configurar una entrada dvb, se debe añadir una sección en el
siguiente formato:
</para>
401 402 403 404 405 406 407 408 409

<programlisting>
BEGIN "DvbInputName"
  DeviceNumber = "devicenumber"
  SendMethod   = "0"
END
</programlisting>

<para>
410 411 412 413 414 415 416 417 418 419 420
"DvbInputName" es el nombre de la entrada dvb que se
quiere configurar. Se debe poner "SendMethod" a "0" si se quiere transmitir
el flujo DVB completo o se debe poner a "1" si sólo se quieren transmitir
los flujos MPEG de audio y vídeo (por defecto es "0"). "DeviceNumber"
es el número de la tarjeta DVB de la que se quiere leer (lee
de <filename>/dev/ost/dvr&lt;devicenumber&gt;</filename>,
por defecto es ""). El fichero de configuración dvb es definido por el
driver. Se puede encontrar en <filename>$HOME/.dvbrc</filename> para
/dev/dvb/adapter0 ó en <filename>$HOME/.dvbrc.X</filename> para
<filename>/dev/dvb/adapterX</filename>.
</para>
421 422

<para>
423 424
Ejemplo:
</para>
425 426 427 428 429 430 431 432 433 434 435 436 437 438 439

<programlisting>
BEGIN "dvb1"
  DeviceNumber = "0"
  TrickPlay = "normal"
END
</programlisting>

</sect2>

<sect2><title>
Section "Channels"
</title>

<para>
440 441 442 443
En esta sección, se pueden definir las salidas que se
quieren utilizar. Para cada salida, se debe escribir una línea en el
siguiente formato:
</para>
444 445 446 447 448 449

<programlisting>
ChannelName = "Type"
</programlisting>

<para>
450 451 452 453
Esto añade una salida llamada "ChannelName", del tipo
"Type". "Type" debe ser "network" o "file". Como las entradas,
las salidas deben ser configuradas en su propia sección.
</para>
454 455

<para>
456 457
Ejemplo:
</para>
458 459 460 461 462 463 464 465 466 467 468 469 470 471 472

<programlisting>
BEGIN "Channels"
  localhost  = "network"
  client1    = "network"
  client2    = "network"
  multicast1 = "network"
  multicast2 = "network"
  localfile  = "file"
END
</programlisting>

</sect2>

<sect2><title>
473
Configuración de las salidas
474 475 476
</title>

<para>
477 478 479 480
Para cada salida declarada en la sección "Channels",
se debe añadir una sección con el mismo nombre que su salida correspondiente.
La sintaxis de cada sección depende del tipo de salida.
</para>
481 482

<para>
483 484 485
Para configurar una salida de red, se debe añadir una sección en el
siguiente formato:
</para>
486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502

<programlisting>
BEGIN "NetChannelName"
  Domain    = "Domain"
  Type      = "Type"
  SrcHost   = "SourceHost"
  SrcPort   = "SourcePort"
  DstHost   = "DestHost"
  DstPort   = "DestPort"
  TTL       = "ttl"
  Interface = "Interface"
END
</programlisting>

<itemizedlist>

<listitem><para>
503 504 505
"NetChannelName" es el nombre de la salida de red que
se quiere configurar.
</para></listitem>
506 507

<listitem><para>
508 509
"Domain" puede ser "inet4" si se usan direcciones IPv4,
o "inet6" si se usa IPv6 (por defecto es "inet4")
510 511 512 513 514


.</para></listitem>

<listitem><para>
515 516 517 518
"Type" puede ser "unicast", "broadcast" o
"multicast" (por defecto es "unicast"), dependiendo de lo que se quiera hacer
(en la dirección "DstHost").
</para></listitem>
519 520

<listitem><para>
521 522 523
"SourceHost" es la dirección IP (o nombre DNS) desde
la cual VLS enviará el flujo.
</para></listitem>
524 525

<listitem><para>
526 527 528
"SourcePort" es el puerto UDP desde el que se enviará
el flujo.
</para></listitem>
529 530

<listitem><para>
531 532 533
"DestHost" es la dirección IP (o nombre DNS) a
la cual se enviará el flujo.
</para></listitem>
534 535

<listitem><para>
536 537 538
"DestPort" es el puerto UDP al que se enviará el flujo
(por defecto es "1234").
</para></listitem>
539 540

<listitem><para>
541 542 543 544
"TTL" es una opción válida sólamente si "Type" es
"multicast" (el valor por defecto es "0"). Se puede usar para incremententar el TTL
de los paquetes multicast si estos tienen que cruzar varios routers.
</para></listitem>
545 546

<listitem><para>
547 548 549 550 551
"Interface" es una opción sólo soportada bajo
GNU/Linux, para forzar que el flujo sea enviado a través de una interfaz
de red dada ("eth1" por ejemplo). Para usar esta opción, se deben tener
permisos de superusuario.
</para></listitem>
552 553 554 555

</itemizedlist>

<note><para>
556 557
"SrcHost" y "SrcPort" son opcionales.
</para></note>
558 559

<para>
560 561 562
Para configurar una salida a fichero, se debe añadir una sección en el
siguiente formato:
</para>
563 564 565 566 567 568 569 570 571

<programlisting>
BEGIN "FileChannelName"
  FileName = "file"
  Append   = "append"
END
</programlisting>

<para>
572 573 574 575 576 577
"FileChannelName" es el nombre de la salida a fichero que se
quiere configurar. "file" es el nombre del fichero donde se
guardará el flujo (por defecto "fileout.ts"). "append" puede se "yes" o
"no", e indica si VLS tiene que añadir el flujo al final del fichero
file, o sobreescribirlo.
</para>
578 579

<para>
580 581
Ejemplo:
</para>
582 583

<programlisting>
584
BEGIN "localhost"         # El cliente está en la misma máquina que el servidor
585 586 587 588
  DstHost = "localhost"
  DstPort = "1234"
END

589
BEGIN "client1"           # unicast hacia client1
590 591 592 593
  DstHost = "192.168.1.2"
  DstPort = "1234"
END

594
BEGIN "client2"           # unicast hacia client2 en IPv6
595 596 597 598 599 600 601 602 603 604 605 606
  Domain  = "inet6"
  DstHost = "3ffe:ffff::2:12:42"
  DstPort = "1234"
END

BEGIN "multicast1"         # multicast streaming
  Type    = "multicast"
  DstHost = "239.2.12.42"
  DstPort = "1234"
  TTL     = "2"
END

607
BEGIN "multicast2"         # multicast streaming en IPv6
608 609 610 611 612 613 614
  Domain  = "inet6"
  Type    = "multicast"
  DstHost = "ff08::1"
  DstPort = "1234"
  TTL     = "12"
END

615
BEGIN "localfile"         # volcado a fichero
616 617 618 619 620 621
  FileName = "stream.ts"
  Append   = "no"
END
</programlisting>

<caution><para>
622 623 624
Si se usa, se deberían especificar los campos "SrcHost"
y "SrcPort". Por ejemplo:
</para>
625 626

<programlisting>
627 628 629 630
BEGIN "client1"         # El cliente está en la misma máquina que el servidor
  SrcHost = "192.168.1.1"  # IP de VLS
  SrcPort = "1242"         # Puerto Origen : el valor no es importante
  DstHost = "192.168.1.2"  # IP del cliente
631 632 633 634 635 636 637 638 639
  DstPort = "1234"
END
</programlisting>

</caution>

</sect2>

<sect2><title>
640
Configuración de los Programas
641 642 643
</title>

<para>
644 645 646 647 648
Como se ha explicado anteriormente, se deben definir programas.
Cada uno es un flujo MPEG (un fichero, por ejemplo). Para hacer esto, se debe
añadir una sección "Input" en el fichero <filename>vls.cfg</filename>. Cada sección
"Input" debe tener la siguiente sintaxis:
</para>
649 650 651 652 653 654 655 656 657

<programlisting>
BEGIN "Input"
  FilesPath    = "path"
  ProgramCount = "count"
END
</programlisting>

<para>
658 659 660 661
"path" es la ruta donde se encuentran los ficheros MPEG
(por defecto es el directorio actual). "count" es el número de
programas definidos ("0" por defecto).
</para>
662 663

<para>
664 665 666
Para cada programa que se quiera definir, se debe añadir una
sección con el siguiente formato:
</para>
667 668 669 670 671 672 673 674 675 676 677 678 679

<programlisting>
BEGIN "number"
  Name     = "name"
  Type     = "type"
  FileName = "file"
  Device   = "device"
END
</programlisting>

<itemizedlist>

<listitem><para>
680 681
"number" es el número de programa: el primer programa
tiene el número 1, el segundo 2, y así sucesivamente.
682 683 684 685 686


</para></listitem>

<listitem><para>
687 688 689
"name" es el nombre del programa, por el cual se le dirá
a VLS que arranque dicho programa (ver el siguiente capítulo "Ejecutando VLS").
</para></listitem>
690 691

<listitem><para>
692 693 694 695
"type" puede ser "Mpeg1-PS", "Mpeg2-PS", "Mpeg2-TS",
o "DVD". Si el flujo es guardado en un fichero MPEG (*.mpeg, *.mpg,
*.vob, y demás...), es probable que se encuentre en formato Mpeg1-PS o Mpeg2-PS.
</para></listitem>
696 697

<listitem><para>
698 699 700 701 702
si "type" se fija a "Mpeg1-PS", "Mpeg2-PS", o
"Mpeg2-TS", VLS asumirá que el flujo es guardado en el fichero "file", en
el directorio "path" (siendo "path" la variable definida en la sección
"Input").
</para></listitem>
703 704

<listitem><para>
705 706 707 708 709 710 711
si "type" es "DVD", la variable "Device" será
utilizada en lugar de "FileName" (la variable "FilesPath" no se refiere
al nombre del lector !). La variable "Device" es el lector DVD
("/dev/hdc" o "/dev/cdrom" por ejemplo). Se puede leer también de un DVD
copiado en el disco duro: entonces "Device" es el directorio donde se han guardado
los ficheros .vob ("/mnt/data/VIDEO_TS" por ejemplo).
</para></listitem>
712 713 714 715 716 717 718
</itemizedlist>

<note>
&streamable-mpeg-file;
</note>

<note><para>
719 720 721 722
Para leer DVDs, se necesita compilar VLS con
soporte DVD, que usa libdvdread y libdvdcss. Se necesitan permisos
de lectura <emphasis>y</emphasis> escritura en el lector de DVD.
</para></note>
723 724 725


<para>
726 727
Ejemplo completo:
</para>
728 729 730 731 732 733 734

<programlisting>
BEGIN "Input"
  FilesPath = "/home/videolan/streams"
  ProgramCount = "4"
END

735
BEGIN "1"     # Flujo MPEG2 guardado en /home/videolan/streams/Dolby.vob
736 737 738 739 740
  Name     = "dolby"
  FileName = "Dolby.vob"
  Type     = "Mpeg2-PS"
END

741
BEGIN "2"     # otro fichero
742 743 744 745 746 747 748 749 750 751 752
  Name     = "canyon"
  FileName = "Dolby_Canyon.vob"
  Type     = "Mpeg2-PS"
END

BEGIN "3"     # DVD
  Name     = "dvd"
  Device   = "/dev/cdrom"
  Type     = "Dvd"
END

753
BEGIN "4"     # DVD guardado en el disco duro
754 755 756 757 758 759 760 761 762
  Name     = "matrix"
  Device   = "/mnt/data/matrix/VIDEO_TS"
  Type     = "Dvd"
END
</programlisting>

</sect2>
</sect1>
</chapter>