¿Transmitir RTSP con ffmpeg?

¿Transmitir RTSP con ffmpeg?

Así que pude enviar con éxito una transmisión de video RTP desde mi servidor al cliente en otro sistema en la LAN y reproducirla usando ffplay. Ahora quiero enviar el video en la misma red usando RTSP para que el cliente pueda recibir el video y pueda tener opciones adicionales como pausar el video, etc. ¿Alguien puede darme una guía general o señalarme un recurso que pueda ayudarme? cumpliendo mi tarea?

ACTUALIZAR:

He probado estos comandos:

ffmpeg -re -i input -f rtsp -rtsp_transport tcp rtsp://localhost:8888/live.sdp

ffplay -rtsp_flags listen rtsp://localhost:8888/live.sdp

Comienza a transmitir el video en tiempo real, pero en realidad no veo ninguna opción para controlar la transmisión de medios como reproducción, grabación, etc.

NB: El archivo .sdp que estoy usando actualmente para RTSP es el mismo que usé para la transmisión RTP.

Respuesta1

FWIW, pude configurar un servidor RTSP local para fines de prueba usandoservidor-rtsp-simpley ffmpeg siguiendo estos pasos:

  1. Cree un archivo de configuración para el servidor RTSP llamado rtsp-simple-server.ymlcon esta única línea:
    protocols: [tcp]
    
  2. Inicie el servidor RTSP como un contenedor Docker:
    $ docker run --rm -it -v $PWD/rtsp-simple-server.yml:/rtsp-simple-server.yml -p 8554:8554 aler9/rtsp-simple-server
    
  3. Utilice ffmpeg para transmitir un archivo de vídeo (en bucle para siempre) al servidor:
    $ ffmpeg -re -stream_loop -1 -i test.mp4 -f rtsp -rtsp_transport tcp rtsp://localhost:8554/live.stream
    

Una vez que lo tengas en ejecución, puedes usar ffplay para ver la transmisión:

$ ffplay -rtsp_transport tcp rtsp://localhost:8554/live.stream

Tenga en cuenta queservidor-rtsp-simpleTambién puede manejar transmisiones UDP (iso TCP), pero es complicado ejecutar el servidor como un contenedor Docker.

información relacionada