2010-11-29 36 views
34

Estoy pensando en desarrollar un servidor de transmisión y tengo la siguiente pregunta, sobre RTSP (por ejemplo url: rtsp://192.168.0.184/myvideo.mpg) o RTP (url ejemplo: rtp://192.168.0.184).¿Cuál es la diferencia entre RTP o RTSP en un servidor de transmisión?

Como he entendido, un servidor RTSP se utiliza principalmente para la transmisión de archivos que ya existen, es decir, no en vivo. El servidor RTP se usa para transmitir.

Alguien me corrija si me equivoco, ¿estoy en lo cierto ?.

Lo que quiero para desarrollar un servidor para transmitir contenido en vivo en la pantalla de la computadora, es decir, que se muestra en el momento en que se transmite en la transmisión.

+1

Además, es posible que desee pagar (juego de palabras involuntario :)) Servidor de código abierto Darwin Streaming de Apple (para evitar reinventar la rueda, a menos que tenga requisitos personalizados que las soluciones existentes no cumplan). –

+0

@ JP19 ¿Funciona en Windows? – Searush

+0

es el RTP RUL ¿verdad? ¿Necesitas especificar el número de puerto? –

Respuesta

73

Ocurre un error ... RTSP es un protocolo de transmisión en tiempo real. Es decir, puedes transmitir lo que quieras en tiempo real. Entonces puede usarlo para transmitir contenido en vivo (sin importar de qué se trate, video, audio, texto, presentación ...). RTP es un protocolo de transporte que se usa para transportar datos de medios que se negocian a través de RTSP.

Utiliza RTSP para controlar la transmisión de medios a través de RTP. Lo utiliza para configurar, reproducir, pausar, desmontar la secuencia ...

Por lo tanto, si desea que su servidor empiece a transmitir cuando se solicita la URL, puede implementar algún tipo de servidor RTP. Pero si quiere más control y está transmitiendo video en vivo, debe usar RTSP, porque transmite SDP y otros datos importantes de decodificación.

Lea los documentos que he vinculado aquí, son un buen punto de partida.

+0

: Gracias por su explicación. Estoy tratando de transmitir audio en aplicaciones J2Me y soy nuevo para los protocolos. Quiero saber si podemos enviar solicitudes RTSP a servidores RTP (tal vez se necesiten cambios de número de puerto desde la aplicación cliente). Mencionó 'puede implementar algún tipo de servidor RTP solo" ¿Quiere decir que hay servidores qué puede manejar tanto rtp, rtcp? ¿Cuáles son los servidores (rtp, rtcp) que podemos usar en nuestra máquina local para realizar pruebas? –

+0

@Cipi, pero ¿debo usar algo (smtg como servidor rtp, herramientas, programas, etc.) para hacer que la computadora transmita algo? Quiero decir, si quiero transmitir, obtengo errores como este: http://stackoverflow.com/questions/12007882/ffmpeg-rtp-streaming-error – Searush

+1

Cipi: solo curiosidad por saber si realmente podemos pausar una transmisión en vivo y luego golpear de nuevo. –

4

Creo que eso es correcto. RTSP puede usar RTP internamente.

+0

Eso es correcto en la mayoría de los casos, hay casos en que puede haber algo más que reemplace Rtp en el protocolo ..... – Jay

8

Algunos conceptos básicos:

servidor RTSP se pueden utilizar para la fuente de muertos, así como para la fuente viva. Los protocolos RTSP le proporcionan comandos (como su VCR Remote) y la funcionalidad depende de su implementación.

RTP es un protocolo en tiempo real que se utiliza para transportar audio y video en tiempo real. El transporte utilizado puede ser unicast, multicast o broadcast, dependiendo de la dirección de transporte y del puerto. Además de transportar RTP hace un montón de cosas para ti como paquetización, reordenamiento, el control de la fluctuación, calidad de servicio, soporte para sincronización de labios .....

En su caso si usted desea que la difusión de servidor de streaming, entonces necesita RTSP (por control), así como RTP (retransmisión de audio y vídeo)

Para empezar se puede ir a través de código de ejemplo proporcionado por live555

12

yo sepa, RTSP no transmite corrientes en absoluto, es sólo una fuera de la protocolo de control de banda con funciones como PLAY y STOP.

UDP sin procesar o RTP a través de UDP son protocolos de transmisión para transmisiones como TCP sin formato o HTTP a través de TCP.

Para ser capaz de transmitir un cierto programa durante el protocolo de transmisión dado, un método encapsulación tiene que ser definido para el formato de contenedor . Por ejemplo, el contenedor TS se puede transmitir a través de UDP pero Matroska no puede.

Sin embargo, casi todo se puede transportar a través de TCP.

(El hecho de que el que códec Cómo se utiliza también importa indirectamente, ya que restringe los formatos de contenedor que puede utilizar.)

0

RTSP (en realidad RTP) se puede utilizar para la transmisión de vídeo, pero también muchos otros tipos de medios incluyendo presentaciones en vivo. Rtsp es solo el protocolo utilizado para configurar la sesión RTP.

Para todos los detalles se pueden extraer mi fuente abierta aplicación RTSP Server en la siguiente dirección: https://net7mma.codeplex.com/

O mi artículo @http://www.codeproject.com/Articles/507218/Managed-Media-Aggregation-using-Rtsp-and-Rtp

Es compatible con re-aprovisionamiento arroyos, así como la creación dinámica de Se implementan varias secuencias de RFC y la biblioteca logra un mejor rendimiento y menos memoria que FFMPEG y casi cualquier otra solución en la capa de transporte y, por lo tanto, es un buen candidato para utilizar como un punto de acceso centralizado para la mayoría de los escenarios.

+1

Creo que esto no es una respuesta. – Lobo

+0

Sé con certeza que un Ciphi tiene razón ... ¡estamos diciendo lo mismo! Creo que no se puede tomar el tiempo para leer y son fuertes. – Jay

+3

Creo que RTSP en realidad no es RTP. RTSP se define en la capa de aplicación mientras que RTP está en la capa de transporte en el modelo OSI (http://www.tomax7.com/aplus/osi_model.htm). – Alston

0

Escucho tu dolor. Estoy pasando por esto ahora (años después). Por lo que he aprendido, puede pensar en RTSP como un "controlador de VCR", el protocolo le permite especificar qué flujos (presentaciones) desea reproducir, luego le enviará una descripción de los medios, y luego puede usar RTSP para reproducir, detener, pausar y grabar la transmisión remota. Los medios en sí revisan RTP. RTSP normalmente se implementa sobre un socket o capa de comunicación diferente. Aunque es simplemente un protocolo, la mayoría de las veces lo implementa un servidor sobre un socket. Para transmisiones en vivo, la transmisión RTSP que solicita es simplemente un nombre de una transmisión. No necesita hacer referencia a un archivo en el servidor, la implementación del RTSP del servidor puede analizar esa secuencia, armar un gráfico activo y luego proporcionar el SDP (descripción) para ese nombre de transmisión. Pero, por supuesto, esto es específico de la forma en que se implementó el servidor RTSP. Para las transmisiones "en vivo", probablemente sea más sencillo usar RTP, pero necesitará una forma de transferir el SDP desde el servidor RTP al cliente que desea reproducir esa transmisión.

Cuestiones relacionadas