GStreamer-Java : RTSP- 소스에서 UDP- 싱크로

멜론 스키

저는 현재 화상 통화에서 IP- 웹캠에서 SIP 사용자에게 RTP-Stream을 전달 (나중에 트랜스 코딩)하는 프로젝트를 진행하고 있습니다.

다음과 같은 gstreamer 파이프 라인을 생각해 냈습니다.

  gst-launch -v rtspsrc location="rtsp://user:pw@ip:554/axis-media/media.amp?videocodec=h264" ! rtph264depay ! rtph264pay ! udpsink sync=false host=xxx.xxx.xx.xx port=xxxx

아주 잘 작동합니다. 이제 Java를 사용하여이 파이프 라인을 만들고 싶습니다. 다음은 파이프를 만드는 코드입니다.

    Pipeline pipe = new Pipeline("IPCamStream");

    // Source
    Element source = ElementFactory.make("rtspsrc", "source");
    source.set("location", ipcam);

    //Elements
    Element rtpdepay = ElementFactory.make("rtph264depay", "rtpdepay");
    Element rtppay = ElementFactory.make("rtph264pay", "rtppay");

    //Sink
    Element udpsink = ElementFactory.make("udpsink", "udpsink");
    udpsink.set("sync", "false");
    udpsink.set("host", sinkurl);
    udpsink.set("port", sinkport);


    //Connect
    pipe.addMany(source, rtpdepay, rtppay, udpsink);
    Element.linkMany(source, rtpdepay, rtppay, udpsink);


    return pipe;

파이프 라인을 시작 / 설정할 때 wireshark를 사용하여 카메라의 입력을 볼 수 있지만 안타깝게도 UDP-Sink 로의 전송이 없습니다. 코드에서 실수를 몇 번 확인했으며 파일 (filesrc)에서 동일한 udpsink로 스트리밍하기위한 파이프 라인도 설정했으며 제대로 작동합니다.

그러나 UDP-Sink로 IP-Cam의 "전달"이이 Java-Pipeline에서 작동하지 않는 이유는 무엇입니까?

mpr

Java 버전의 GStreamer를 사용하지는 않았지만 링크 할 때 알아야 할 사항은 때때로 요소의 소스 패드를 즉시 사용할 수 없다는 것입니다.

gst-inspect rtspsrc 를 수행 하고 패드를 살펴보면 다음과 같이 표시됩니다.

Pad Templates: 
  SRC template: 'stream_%u'
    Availability: Sometimes
    Capabilities:
      application/x-rtp
      application/x-rdt

"가용성 : 가끔"은 초기 링크가 실패한다는 것을 의미합니다. 원하는 소스 패드는 몇 개의 RTP 패킷이 도착한 후에 만 ​​나타납니다.

이 경우 패드가 추가 된 이벤트 를 기다리면서 수동으로 요소를 연결해야 하거나 C에서 원하는 작업은 gst_parse_bin_from_description 함수를 사용하는 입니다. Java에도 비슷한 것이있을 것입니다. 패드가 추가 된 이벤트에 대한 리스너를 자동으로 추가하고 파이프 라인을 연결합니다.

gst-launch는 이러한 동일한 parse_bin 함수를 사용한다고 생각합니다. 그것이 항상 일을 잘 연결하는 이유입니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

여러 UDP 싱크가있는 GStreamer 파이프 라인 (이미지 포함)

Gstreamer 또는 ffmpeg를 사용하여 Android에서 rtsp 클라이언트 만들기

gstreamer 1.0을 사용하여 UDP를 통해 PC로 웹캠 비디오 스트리밍

FFmpeg / LibAV에서 RTSP / UDP 버퍼 크기 설정

Gstreamer에서 RTSP를 통한 데이터 전송

Gstreamer 1.0 소스 1 개와 싱크 디스플레이 2 개

GStreamer의 HTTPS 비디오 스트리밍을 통한 RTSP

gstreamer rtsp 서버 파이프 라인에 opencv 프레임 작성

Gstreamer를 사용하여 바이너리 이미지 데이터에서 Gstreamer 비디오 싱크

Python Opencv Videocapture에서 Gazebo gstreamer UDP 비디오 받기

OpenCV Gstreamer에서 gstreamer UDP 스트림을 수신 할 수 없습니다.

Gstreamer 및 OpenCV (Python)를 사용한 RTSP 스트리밍

OpenCV 및 gstreamer로 RTSP 스트림 표시

gstreamer로 UDP를 통해 스트리밍하면 화면 캡처 크기 조정이 실패합니다.

rtsp h264 스트림을위한 gstreamer 파이프 라인

Android에서 RTSP 링크 재생

gstreamer를 사용하여 rtsp 스트림 수신

Gstreamer 1.0 rtsp 스트림을 파일에 저장

Android는 기본적으로 udp / RTP / RTSP 스트림을 재생할 수 있습니까?

Gstreamer. 파일 싱크에 앱 싱크 쓰기

Gstreamer udp 서버

Gstreamer udp-source pcm 재생

OpenCV로 gstreamer 소스 작성

gstreamer를 사용하여 재생하기 전에 rtsp 스트림 감지

gstreamer-1.0, RTSP H264 스트림 및 공유 메모리

GStreamer-RTSP 서버로 컴파일

파이프라인 Gstreamer RTSP 파일이 큰 지연으로 가라앉음

GStreamer - FLV 파일로 RTSP 스트리밍

RTSP로 WebRTC 스트림

TOP 리스트

  1. 1

    Matlab의 반복 Sortino 비율

  2. 2

    ImageJ-히스토그램 빈을 변경할 때 최대, 최소 값이 변경되는 이유는 무엇입니까?

  3. 3

    Excel : 합계가 N보다 크거나 같은 상위 값 찾기

  4. 4

    C #에서 'System.DBNull'형식의 개체를 'System.String'형식으로 캐스팅 할 수 없습니다.

  5. 5

    원-사각형 충돌의 충돌 측면을 찾는 문제

  6. 6

    Oracle VirtualBox-설치를 위해 게스트를 부팅 할 때 호스트 시스템이 충돌 함

  7. 7

    어떻게 아무리 "나쁜", ANY의 SSL 인증서와 HttpClient를 사용하지합니다

  8. 8

    Ubuntu는 GUI에서 암호로 사용자를 만듭니다.

  9. 9

    잘못된 상태 예외를 발생시키는 Apache PoolingHttpClientConnectionManager

  10. 10

    Python 사전을 사용하는 동안 "ValueError : could not convert string to float :"발생

  11. 11

    openCV python을 사용하여 텍스트 문서에서 워터 마크를 제거하는 방법은 무엇입니까?

  12. 12

    Vuetify 다중 선택 구성 요소에서 클릭 한 항목의 값 가져 오기

  13. 13

    C ++ VSCode에서 같은 줄에 중괄호 서식 지정

  14. 14

    Cassandra에서 버전이 지정된 계층의 효율적인 모델링

  15. 15

    JQuery datepicker 기능이 인식되지 않거나 새 프로젝트에서 작동하지 않음

  16. 16

    cuda 11.1에서 Pytorch를 사용할 때 PyTorch가 작동하지 않음: Dataloader

  17. 17

    jfreecharts에서 x 및 y 축 선을 조정하는 방법

  18. 18

    상황에 맞는 메뉴 색상

  19. 19

    마우스 휠 JQuery 이벤트 핸들러에 대한 방향 가져 오기

  20. 20

    매개 변수에서 쿼리 객체를 선언하는 방법은 무엇입니까?

  21. 21

    Maven은 아이 프로젝트 대상 폴더를 청소하지

뜨겁다태그

보관