Sincronice reproductores VLC en dos máquinas


15

¿Es posible sincronizar la reproducción de VLC en dos máquinas diferentes? Me gustaría que dos PC en diferentes partes de la casa reproduzcan el mismo video, por lo que cualquier otra sugerencia que resuelva este problema también es bienvenida.

Respuestas:


9

Yo uso multicast. Esto envía una secuencia a todos los receptores simultáneamente.

La red tiene segmentos cableados y wifi.

Con la multidifusión, la transmisión usa solo una vez su ancho de banda en cada segmento

Eso significa también que todas las computadoras reciben el mismo paquete aproximadamente al mismo tiempo, menos demoras de propagación a través de mis conmutadores. Los retrasos de propagación son insignificantes para el sonido y el video humano visible (30 fps).

Lo único que puede suceder es que diferentes computadoras funcionen en diferentes lugares en su caché de red. Para mantenerlos lo más cerca posible, rechacé el almacenamiento en caché hasta que el sistema más lento (una computadora portátil de 32 bits con wifi) a veces se corta, luego le doy un poco más.

Motivo: una vez que vlc comienza a comer búfer, lleva mucho tiempo volver al comienzo del búfer, parece que la codificación no prioriza volver al 'búfer cero', pero es cómodo permanecer allí.

También uso en el 'servidor' dos clientes vlc: uno genera la secuencia y no se muestra localmente. El otro es el cliente de visualización que escucha la transmisión como todos los demás sistemas, con la misma configuración de caché de red.

En línea de comando:

cliente generador de flujo que se conecta al flujo de Internet (este tiene una gran caché para que no se corte y entregue un flujo constante en mi red de multidifusión):

vlc -vvv http://yp.shoutcast.com/sbin/tunein-station.pls?id=154 --sout udp:239.0.0.1 --no-sout-display --sout-keep --ttl 4 (se supone que debe estar en una línea)

Como puede ver, se muestra --no-sout-display: se genera la salida del flujo, pero no se genera salida local. Hago lo mismo, no importa si reproduzco archivos / DVD locales o contenido de red.

Y asegúrese de tener eso --ttl configurado en> 1 si tiene un enrutador inalámbrico en alguna parte. Siempre lo configuro en 4 para no obtener 'sorpresas'. Sin embargo, si tiene una red de enrutadores múltiples y los hosts en una red no pueden ver la multidifusión, entonces es posible que necesite aumentar esa muesca una o dos muescas (o verificar si su enrutador deja pasar la multidifusión en absoluto, no todos los enrutadores inalámbricos son establecido en eso por defecto).

En cada sistema, incluido el que genera la secuencia y tiene la vlc sin salida ejecutándose, tengo la siguiente vlc:

vlc udp://@239.0.0.1 --network-caching 60 --sout-keep

Esto establece el almacenamiento en caché de la red en mi red y con el rendimiento del sistema más lento al máximo. .06 segundos de caché.

Para el sonido, esto corresponde a una distancia de propagación de aproximadamente 100 pies, lo que significa que si el caché se consume al máximo, entonces el sistema lento suena como si estuviera a 100 pies de distancia.

El retraso de mi red es de 0,5 ms o más (no ping, es un viaje de ida y vuelta de pila de baja prioridad y varios ms).

En mi lugar, donde nunca veo ni escucho simultáneamente dos sistemas que están separados> 100 pies (no arraso escaleras arriba y sótano, la ventaja de hacerlo de esta manera es tener lo mismo en todas partes sin destruir el amplificador de la sala de estar).

La computadora portátil en el dormitorio: si se corta con demasiada frecuencia, solo subo el caché localmente, no lo escucho en el sótano o en el piso de arriba, y cuando estoy allí, probablemente haya apagado los otros :-).

Muy importante: cada vez que necesito transcodificar, tengo todos los receptores en el mismo protocolo y codificación, y realizo la transcodificación en el vlc sin salida que genera la transmisión.

No transcodifico en los clientes de multidifusión. Eso daría lugar a retrasos graves ya que cada sistema tiene un rendimiento diferente.

Para este ejemplo de audio no hay transcodificación, todos pueden entender las codificaciones originadas en shoutcast. (en realidad, tampoco necesito transcodificar para video ... todos tienen los conjuntos de códecs completos).

¿Esto ayuda?

Sí, hay ejemplos en la red para hacer vlc sincronizado usando el maestro / cliente de sincronización de red y múltiples flujos de unidifusión (una cadena de destino de 10 millas de largo en el servidor :-D).

Sin embargo: la transmisión de unidifusión a n clientes en un segmento hace que la transmisión aparezca n veces en ese segmento, y cuanto más alto va hacia el servidor de origen, más multiplicaciones de la misma transmisión consumen ancho de banda. No podría ver mi video 1080p. Mi conexión inalámbrica apenas puede manejar uno de esos, no siempre (56Mb).

Oh, preguntas cómo en la GUI:

en la ventana de transmisión, haga clic en "más opciones" y anule la selección de "reproducir localmente" para la instancia vlc que genera la transmisión (tiene como entrada un archivo local, una lista de reproducción o una transmisión de Internet). Deje el almacenamiento en caché por defecto (1000 ms de memoria caché). Si alguno de los otros clientes no puede entender su códec, decida por uno que todos entiendan y transcodifiquen en ese mismo sistema.

En las opciones de los destinos, deje activada la 'pantalla local' predeterminada y cambie el almacenamiento en caché: juegue con esto (comience en 100 y baje el volumen) hasta que se corte el sistema más lento, luego configure todos los sistemas más rápidos en el mismo. Con memorias intermedias cortas: cuando un cliente se inicia, se necesitan entre 10 y 15 segundos de pulverización catódica hasta que "lo consigue".

Mis clientes están activos el 100% del tiempo, cada vez que dejo de transmitir simplemente escuchan la dirección de multidifusión.

No se proporciona puerto: el valor predeterminado es 1234 en todas partes, ejecuto un servidor de origen. Si ejecuta más de uno, debe proporcionar un número de puerto como este: ... 239.0.0.1:65535. Mis números de ejemplo: elija cualquier dirección de multidifusión en 239/8. Puertos: elija cualquiera por encima de 1024 (sí, 1024, porque Microsoft usa 1024 también en MC).

Si nadie está escuchando, la transmisión no se muestra en la red, solo comienza una vez que el primer oyente se une a la sesión de multidifusión. Entonces, si tiene diez definidos y escucha solo uno, entonces tiene un flujo de banda ancha. Si escuchas diferentes transmisiones, obtienes n veces el ancho de banda consumido para n transmisiones.

Multidifusión: el ancho de banda utilizado es el mismo para uno o 10000 clientes por transmisión.

Uso de unidifusión: cada cliente salta en la transmisión del remitente en un momento diferente, lo que significa que sus retrasos aún están presentes, incluso si redujera el almacenamiento en caché. Unicast y multicast funcionan completamente diferentes. Es por eso que unicast tiene la función de sincronización.

Hay una forma diferente si transmite lo mismo para decir una tienda Target completa: entonces transmitiría unidifusión con sincronización a clientes vlc satelitales y servirá a aquellos que estén dentro del 'rango acústico' desde allí. En las oficinas hago uno o dos por piso, por lo que todos los pisos están estrechamente sincronizados mediante unidifusión y sincronización de red. Dentro del piso, por lo general, la demora de propagación de la red es mucho más corta que la demora acústica, y la acústica se apaga para que no escuche todos los altavoces, sino solo los que están cerca de usted.

envíeme un correo electrónico a sirhelpsalot@gmail.com si necesita ayuda, podría poner esto en youtube también.

:-)


3
¡Bienvenido a SuperUser, y gracias por contribuir! ¿Podrías recortar un poco tu respuesta eliminando comentarios innecesarios? En este momento es un verdadero muro de texto y la respuesta real es bastante difícil de entender.
Indrek

1
¿Qué tan confiable es la transmisión / multidifusión para sincronizar video? Si tengo un escritorio de núcleo hexadecimal con VLC y un raspberry pi con omxplayer, ¿qué garantía tengo de que el omxplayer no tardará 3 segundos más en abrir la transmisión?
puk

4

VLC puede transmitir la salida a través de una red, así como reproducirla localmente, por lo que le sugiero que haga que una máquina transmita la salida a través de la red, pero marque la opción "mostrar localmente" en la pestaña "destinos".

Aquí hay una pequeña descripción de la configuración a utilizar para la transmisión.


1

El uso de VLC para (o lo hace, la documentación nunca se actualiza) tiene un módulo llamado netsync pero, como la mayoría de los módulos de VLC inusuales, es defectuoso, apenas documentado y descuidado. Nunca lo puse a trabajar.


Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.