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:
- Cree un archivo de configuración para el servidor RTSP llamado
rtsp-simple-server.yml
con esta única línea:protocols: [tcp]
- 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
- 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.