2017-05-24 1 views
0

저는 Gstreamer를 처음 사용했습니다.RTSP 스트림을 표시하는 GStreamer 파이프 라인

GStreamer를 사용하여 RTSP 소스에서 데이터를 스트리밍 할 수있는 비디오 클라이언트를 작성해야합니다. RTSP를 사용하여 노트북에있는 비디오를 스트리밍하도록 VLC를 구성했으며 스트림을 가져 와서 보여주기 위해 파이프 라인을 만들고 싶습니다. 나는 playbin을 사용해 보았지만 모든 것이 잘 작동합니다. 요점은 비디오 스트리밍에 사용 된 대기 시간을 미세 조정해야하지만 플레이 빈으로는 불가능하다는 것입니다.

대기 시간에 작동하도록 허용했기 때문에 rtspsrc을 시도했지만 모든 창에서 비디오를 표시하는 방법을 모르겠습니다. 그것이 내가 만든 파이프 라인입니다.

gst-launch-1.0 rtspsrc location=rtsp://localhost:8554/test latency=300 ! decodebin ! autovideosink 

"스트리밍 작업이 일시 중지되었으며, 이유가 협상되지 않았습니다 (-4)"라는 오류가 나타납니다.

인터넷에서 깊이봤을 때 다른 파이프 라인을 사용해 보았지만 분명히 뭔가 놓쳤습니다. RTSP에서 비디오를 보여주기 위해 gstreamer 파이프 라인을 작성하려면 어떻게해야합니까?

최종 목표는 대기 시간의 측면에서 적어도 조절 될 수있는 파이프 라인을 가지고있다, 그래서 나는 두 가지 선택이있다 : 가능하면

  • 이 playbin 요소의 대기 시간을 설정합니다. (이 요소는 비디오를 올바르게 보여줍니다.)
  • rtspsrc에서 대기 시간을 설정할 수 있기 때문에 비디오를 올바른 파이프 라인으로 보여줍니다.

나는 Xubuntu 16.04, gstreamer-tools-1.0 (0.10도 사용됨)을 사용하며 VLC 비디오 스트림은 mp4 확장자를 사용합니다.

답변

1

는 당신이 바로 속성을 설정하고 playbin 구성 요소를 사용하여 대기 시간을 조정할 수 있습니다

gst-launch-1.0 -v playbin uri=rtsp://localhost:8554/test uridecodebin0::source::latency=300 

당신이

0

playbin 내가 체크 가지고 latency 옵션 마지막 시간을 가지고 :)이 유용한 찾아 낸다. 그 눈금은 rtspsrc과 다릅니다. rtspsrc은 밀리 초 단위이고 playbin 단위는 나노초 단위입니다. 입력 비디오 요구 사항 (vbv 버퍼 제한)에 따라 여전히 특정 임계 값 이하로 떨어질 수 있습니다. 당신의 rtspsrc 파이프 라인에 대한

당신은 아마 바로 autovideosink 전에 videoconvert 또는 autovideosonvert 요소를 놓친다.

+0

도움 주셔서 감사합니다. 위의 대답으로 해결책을 얻은 것 같습니다. 하지만 나는 여전히'rtsp '를 가진 두 번째 해결책에 관심이있다. 나는'videoconvert'와'autovideoconvert' 둘 다 시도했지만 아무 것도 보이지 않습니다. 파이프 라인이 딱딱한 것 같습니다. 오류 메시지가 표시되지 않습니다. 내 파이프 라인에 다른 요소가 필요한가요? 감사! –

+0

export GST_DEBUG = 3 로그가 무슨 일을하는지보십시오. –

관련 문제