Transmisión en vivo a un disco

No estoy seguro si este es el lugar correcto para hacer esta pregunta (bastante técnica), pero pensé en comenzar aquí.

Estoy interesado en crear un sitio web que tenga una función de transmisión de video. No es exactamente un video en vivo, porque los videos solo estarán disponibles después de que se hayan revisado. Sin embargo, me gustaría que los videos se pudieran ver a pedido (es decir, no quiero que haya un período de espera para que se carguen y codifiquen, como Youtube).

Básicamente, me pregunto cómo transmitir video en vivo directamente a un servidor, de modo que se codifique sobre la marcha y se pueda ver tan pronto como finalice la transmisión.

¡Gracias por tu ayuda!

Si puede ejecutar la aplicación python youtube-dl, puede capturar sobre la marcha. Solo necesitarías una forma de decirle que termine y darle un nombre significativo.

Respuestas (5)

Si está listo para construir su propio servidor y tiene alguna habilidad de codificación, entonces podría considerar configurar un servidor nginx que ejecute la extensión RTMP que pueda capturar una retransmisión de video en vivo o bajo demanda. También puede transcodificar casi en tiempo real o transcodificar "al completar la captura" usando ffmpeg.

Para el sistema que configuro, envío video en vivo usando un sistema de cámara basado en IP desde múltiples fuentes que pueden hacer transmisión RTMP, o si quiero capturar contenido de escritorio como un videojuego, uso OBS para hacer la transmisión al servidor.ingrese la descripción de la imagen aquí

El sitio web del usuario en sí se ejecuta desde un sistema basado en node.js que tiene acceso al contenido registrado por la captura nginx rtmp.

O

Podría buscar una solución prediseñada como Kaltura, que tiene una versión comunitaria de código abierto y una versión comercial . Piense en ello como su propia configuración de servidor de YouTube que tiene un tono de funciones listas para usar de inmediato.ingrese la descripción de la imagen aquí

¿Por qué necesitaría que los videos estén disponibles al instante si van a ser revisados ​​antes de ponerlos a disposición del público de todos modos?

Reducir el tiempo de codificación se reduce al rendimiento del servidor, que a su vez se reduce al dinero. Youtube tiene mucho dinero, y aun así la codificación del lado del servidor de los videos subidos lleva algún tiempo. Estoy bastante seguro de que han hecho todo lo posible para reducir el tiempo de espera tanto como sea posible; No creo que puedas hacer más con recursos y tiempo limitados. La única solución que veo es no volver a codificar los videos subidos, lo que eliminará ese problema por completo. Sin embargo, esto abre otro conjunto de problemas relacionados con la compatibilidad con varios dispositivos, el alto uso de ancho de banda por parte del visitante y probablemente también problemas de seguridad.

Puede echar un vistazo a los servicios de transmisión proporcionados por Twitch (que lamentablemente todavía usa flash) y Youtube Live Events ; ambos son sistemas muy sofisticados, por lo que sugiero usar uno de esos en lugar de intentar construir su propia solución.

Hay servicios de video como LiveStream y Ustream que brindan dicha funcionalidad. Tiene un costo, pero sus tarifas no son nada en comparación con el costo de construir una capacidad de distribución de video que va más allá de unos pocos amigos y familiares directos.

YouTube es mejor y es gratis. Recientemente dejamos esas otras plataformas y no podríamos estar más felices.

Técnicamente, podría asignar una unidad de red desde cualquier servidor del que esté hablando a su máquina local, y luego usar algo como una grabadora Blackmagic h264 para codificar en vivo un archivo en esa carpeta. Será un mp4 completo cuando presione detener y estará listo para ver al instante.

Pero esa es la parte fácil... ¿Cómo será tu sitio web? ¿Cómo funcionará? ¿Tendrá rutinas automatizadas para hacerlos privados para su revisión y luego públicos después de la revisión? ¿La gente tendrá que iniciar sesión para revisar? Hay un millón de preguntas en el front-end del sitio web que son muy difíciles de diseñar. Es por eso que la gente ha sugerido usar otros servicios que son muy maduros y han costado miles de millones armarlos.

Llevar el video al servidor en tiempo real es súper fácil, lo demás es difícil.

¿Por qué no transmites a YouTube? Eso es gratis. Haga que su transmisión/"evento" sea privado. Entonces está listo instantáneamente una vez que finaliza el "evento" porque no hay período de espera. Luego sirva ese reproductor incrustado en su sitio web. Esto es muy flexible y gratuito (menos gastos de cámara y computadora). No hay razón para construir su propio servidor... Tal vez eventualmente, pero el servicio de YouTube hará un gran trabajo mientras tanto.