![Streaming RTSP com ffmpeg?](https://rvso.com/image/1586924/Streaming%20RTSP%20com%20ffmpeg%3F.png)
Portanto, consegui enviar com êxito um fluxo de vídeo RTP do meu servidor para o cliente em outro sistema na LAN e reproduzi-lo usando ffplay. Agora quero enviar o vídeo na mesma rede usando RTSP para que o cliente possa recebê-lo e ter opções adicionais, como pausar o vídeo, etc. Alguém pode me dar uma orientação geral ou indicar um recurso que possa me ajudar em cumprir minha tarefa?
ATUALIZAR:
Eu tentei estes comandos:
ffmpeg -re -i input -f rtsp -rtsp_transport tcp rtsp://localhost:8888/live.sdp
ffplay -rtsp_flags listen rtsp://localhost:8888/live.sdp
Ele inicia o streaming do vídeo em tempo real, mas na verdade não vejo nenhuma opção para controlar o fluxo de mídia, como reprodução, gravação, etc.!
NB: O arquivo .sdp que estou usando atualmente para RTSP é o mesmo que usei para streaming RTP.
Responder1
FWIW, consegui configurar um servidor RTSP local para fins de teste usandoservidor rtsp simplese ffmpeg seguindo estas etapas:
- Crie um arquivo de configuração para o servidor RTSP chamado
rtsp-simple-server.yml
com esta única linha:protocols: [tcp]
- Inicie o servidor RTSP como um contêiner Docker:
$ docker run --rm -it -v $PWD/rtsp-simple-server.yml:/rtsp-simple-server.yml -p 8554:8554 aler9/rtsp-simple-server
- Use ffmpeg para transmitir um arquivo de vídeo (em loop eterno) para o servidor:
$ ffmpeg -re -stream_loop -1 -i test.mp4 -f rtsp -rtsp_transport tcp rtsp://localhost:8554/live.stream
Depois de executar isso, você pode usar ffplay para visualizar o stream:
$ ffplay -rtsp_transport tcp rtsp://localhost:8554/live.stream
Observe queservidor rtsp simplestambém pode lidar com fluxos UDP (iso TCP), mas é complicado executar o servidor como um contêiner Docker.