ffmpeg로 RTSP를 스트리밍하시겠습니까?

ffmpeg로 RTSP를 스트리밍하시겠습니까?

그래서 내 서버에서 LAN에 있는 다른 시스템의 클라이언트로 RTP 비디오 스트림을 성공적으로 보내고 ffplay를 사용하여 재생할 수 있었습니다. 이제 클라이언트가 비디오를 수신하고 비디오 일시 중지 등과 같은 추가 옵션을 가질 수 있도록 RTSP를 사용하여 동일한 네트워크에서 비디오를 보내고 싶습니다. 누구든지 나에게 일반적인 지침을 제공하거나 나에게 도움이 될 수 있는 리소스를 알려줄 수 있습니까? 내 임무를 완수하고 있어?

업데이트:

나는 다음 명령을 시도했습니다.

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

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

실시간으로 비디오 스트리밍이 시작되지만 실제로는 재생, 녹화 등과 같은 미디어 스트림을 제어할 수 있는 옵션이 표시되지 않습니다!

주의: 현재 RTSP에 사용하고 있는 .sdp 파일은 RTP 스트리밍에 사용한 파일과 동일합니다.

답변1

FWIW, 다음을 사용하여 테스트 목적으로 로컬 RTSP 서버를 설정할 수 있었습니다.단순-rtsp-서버다음 단계에 따라 ffmpeg를 실행하세요.

  1. rtsp-simple-server.yml다음 한 줄로 호출되는 RTSP 서버용 구성 파일을 만듭니다 .
    protocols: [tcp]
    
  2. RTSP 서버를 Docker 컨테이너로 시작합니다.
    $ docker run --rm -it -v $PWD/rtsp-simple-server.yml:/rtsp-simple-server.yml -p 8554:8554 aler9/rtsp-simple-server
    
  3. ffmpeg를 사용하여 비디오 파일을 서버로 스트리밍(영원히 반복)합니다.
    $ ffmpeg -re -stream_loop -1 -i test.mp4 -f rtsp -rtsp_transport tcp rtsp://localhost:8554/live.stream
    

해당 실행이 완료되면 ffplay를 사용하여 스트림을 볼 수 있습니다.

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

참고하세요단순-rtsp-서버UDP 스트림(iso TCP)도 처리할 수 있지만 서버를 Docker 컨테이너로 실행하는 것은 까다롭습니다.

관련 정보