2016-09-05 10 views
0
나는 다음과 같이 리눅스에서 IP 카메라에서 RTSP 스트림을 재생할 수있어

다음 RTSP 스트림이 네트워크를 통해 실제로 사용할 수있는 경우사용하여 재생하기 전에 RTSP 스트림을 감지 gstreamer를

gst-launch -v rtspsrc location="rtsp://admin:[email protected]/live1.sdp" name=demux demux. ! queue max-size-buffers=2 ! rtph264depay ! ffdec_h264 ! ffmpegcolorspace ! autovideosink sync=false

어떻게 하나의 검사를 할 놀기 전에. rtsp 스트림이 다운 된 경우 스트림 재생을 감지하여 사용 가능할 때까지 스트림을 재생하지 않도록합니다.

답변

2

이렇게하려면 클라이언트 응용 프로그램을 작성해야합니다. 명령 줄에서 가능하지 않다고 생각합니다. 응용 프로그램을 사용하면 rtsp 소스에서 재생할 수 있으며 시간이 초과되면 다시 시도하거나 스트림을 사용할 수 없다는 사용자에게 적절한 메시지를 제공하거나 다시 시도 할 수 있습니다.

다양한 플랫폼 안드로이드, 윈도우, 리눅스 QT 기반 등등을위한 그런 플레이어를 가진 오픈 소스 github 프로젝트가 많이있다. 'gstreamer rtsp 뷰어 github'를 사용한 간단한 구글 검색은 많이 나열 될 것이다.

+0

내 응용 프로그램에는 사용자 상호 작용이 없습니다. 응용 프로그램은 10 초라고 말하고 다음 항목으로 이동하기 위해 사용 가능한 스트림을 재생하거나 전혀 재생하지 않고 다음 항목으로 이동합니다. – sb32134

+0

그렇다면 타이머를 사용하여 파이프 라인 상태 나 rtspsrc 요소의 상태를 확인할 수 있습니다. 재생을 시작하면 타이머를 중지하고 다음으로 이동하여 타이머를 다시 시작하십시오. 또 다른 방법은 제공된 콜백 중 하나에서 rtspsrc의 프레임을보고 타이머를 중지하는 것입니다. 어느 쪽이든 gstreamer는이를 수행하는 직접적인 방법을 제공하지 않습니다. –

+0

nmap이 좋은 선택이라면 나는 더 생각하고 있 었는가? IP 카메라가 네트워크에있는 경우, 다운 된 것을 재생하려고 시도 할 필요가 없습니다. 이것은 다음 항목으로 이동하기 전에 여전히 검은 색 화면이 표시되기 때문입니다. 그게 더 rtsp 항목을 재생하려고하지 않는 경우. – sb32134