iFLBC 코덱을 사용하여 RTP 오디오 스트림을 생성하기 위해 gstreamer 파이프 라인을 구축하려고합니다. Gstreamer (버전 0.10 현재)에는 rtpilbcpay
이라고하는 RTP 페이로드 파이프 라인 요소가 있습니다. 불행하게도 RTP 패킷 화만이 구현되며 코덱 자체는 gstreamer에 포함되지 않습니다. RFC 3951의 레퍼런스 코드를 사용하여 gstreamer에서 사용할 수 있기를 희망하는 샘플 오디오 용 iLBC 인코딩 파일을 만들었습니다. 그러나, 내가 그 파일을 rtpilbcpay
에 파이프하면 오류가 발생합니다. fakesink
를 사용하여 최소 파이프 아래로 I "은 이그제큐티브 소프트웨어의 디스 키퍼는"오류가 여전히 동일합니다 :gstreamer를 사용하여 RTP를 통해 iLBC 인코딩 파일을 스트리밍
~/tmp% gst-launch-0.10 filesrc location=sample.ilbc ! rtpilbcpay ! fakesink
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
ERROR: from element /GstPipeline:pipeline0/GstRTPILBCPay:rtpilbcpay0: Element doesn't implement handling of this stream. Please file a bug.
Additional debug info:
gstbasertpaudiopayload.c(909): gst_base_rtp_audio_payload_handle_buffer(): /GstPipeline:pipeline0/GstRTPILBCPay:rtpilbcpay0:
subclass did not configure us properly
ERROR: pipeline doesn't want to preroll.
Setting pipeline to NULL ...
Freeing pipeline ...
아마 중요한 부분 (파일 형식 선언을?) 누락 파이프 라인에, 내가 유사 못한 PCMU 인코딩 된 파일을 재생 (queue
버퍼는 도움이되지 않았다) :
~/tmp% gst-launch-0.10 filesrc location=sample.pcmu ! mulawdec ! fakesink
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
ERROR: from element /GstPipeline:pipeline0/GstFileSrc:filesrc0: Internal data flow error.
Additional debug info:
gstbasesrc.c(2550): gst_base_src_loop(): /GstPipeline:pipeline0/GstFileSrc:filesrc0:
streaming task paused, reason not-negotiated (-4)
ERROR: pipeline doesn't want to preroll.
Setting pipeline to NULL ...
Freeing pipeline ...
이 단순히 버그 또는 잘못된 파이프 라인 설정이 (나는 그것이 후자의 희망)인가? 파이프 라인에서 필요한 "접착제"요소는 무엇입니까?