2012-10-02 5 views
1

프로젝트에서 작업 중입니다. RTMP 컨테이너에 패킷을 쓰고 싶습니다.XUGGLER를 사용하여 RTMP 스트림에 쓰기

  • 내가 달성 한 것은 :

    1. 이 RED5를 사용하여 RTMP 요청을 대기하는 응용 프로그램을 시작합니다. 가는 무슨
  • : ("// 로컬 호스트/MyApp를/테스트 RTMP"널 (null)을 "FLV") : RTMP 말할 수 // localhost를/myapp와에게

  • 을 나는로 줄 IContainerFormat의 출력 형식 IContainer를 열 수 있습니다 오류 :

    1. 나를 위해 열리는이 RTMP 채널에 패킷을 쓰고 싶습니다.
      • 문제는 FFMPEG에서 오류 32가 발생하기 시작합니다.이 오류와 관련된 약간의 검색 결과는 대개 클라이언트 - 서버 데이터 소비 사이에 지연이 있기 때문에 발생한다고 나타났습니다. 그러나 나는이 문제를 정말로 해결할 수 없었다. 나는 많은 것을 수색했지만 모두가 같은 문제에 대해 울고있다. 내가 오류입니다

12 : 57 : 20.242은 [스레드 0] 에러 org.ffmpeg - WriteN, RTMP 에러 (32) (129 바이트) 12시 57분 보내기 (Thread-0) 오류 org.ffmpeg - WriteN, RTMP 오류 32 (45 바이트) 12 : 57 : 20.246 [Thread-0] 오류 org.ffmpeg - WriteN, RTMP 보내기 오류 9 (42 바이트)

그리고 이것은 내가 Red5 Server에서받는 오류입니다

[INFO] [NioProcessor-1] org.red5.server.stream.ClientBroadcastStream - Provider connect 
[INFO] [NioProcessor-1] org.red5.server.stream.ClientBroadcastStream - Stream start 
[INFO] [NioProcessor-1] org.red5.server.stream.ClientBroadcastStream - Provider connect 
[ERROR] [NioProcessor-1] org.red5.server.net.rtmp.codec.RTMPProtocolDecoder - Error decoding buffer 
org.red5.server.net.protocol.ProtocolException: Error during decoding 
    at org.red5.server.net.rtmp.codec.RTMPProtocolDecoder.decode(RTMPProtocolDecoder.java:203) [red5.jar:na] 
    at org.red5.server.net.rtmp.codec.RTMPProtocolDecoder.decodeBuffer(RTMPProtocolDecoder.java:122) [red5.jar:na] 
    at org.red5.server.net.rtmp.codec.RTMPMinaProtocolDecoder.decode(RTMPMinaProtocolDecoder.java:61) [red5.jar:na] 
    at org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:225) [mina-core-2.0.0-RC1.jar:na] 
    at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:434) [mina-core-2.0.0-RC1.jar:na] 
    at org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.java:46) [mina-core-2.0.0-RC1.jar:na] 
    at org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:793) [mina-core-2.0.0-RC1.jar:na] 
    at org.apache.mina.core.filterchain.IoFilterAdapter.messageReceived(IoFilterAdapter.java:119) [mina-core-2.0.0-RC1.jar:na] 
    at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:434) [mina-core-2.0.0-RC1.jar:na] 
    at org.apache.mina.core.filterchain.DefaultIoFilterChain.fireMessageReceived(DefaultIoFilterChain.java:426) [mina-core-2.0.0-RC1.jar:na] 
    at org.apache.mina.core.polling.AbstractPollingIoProcessor.read(AbstractPollingIoProcessor.java:638) [mina-core-2.0.0-RC1.jar:na] 
    at org.apache.mina.core.polling.AbstractPollingIoProcessor.process(AbstractPollingIoProcessor.java:598) [mina-core-2.0.0-RC1.jar:na] 
    at org.apache.mina.core.polling.AbstractPollingIoProcessor.process(AbstractPollingIoProcessor.java:587) [mina-core-2.0.0-RC1.jar:na] 
    at org.apache.mina.core.polling.AbstractPollingIoProcessor.access$400(AbstractPollingIoProcessor.java:61) [mina-core-2.0.0-RC1.jar:na] 
    at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run(AbstractPollingIoProcessor.java:969) [mina-core-2.0.0-RC1.jar:na] 
    at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64) [mina-core-2.0.0-RC1.jar:na] 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [na:1.7.0_07] 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [na:1.7.0_07] 
    at java.lang.Thread.run(Unknown Source) [na:1.7.0_07] 
Caused by: java.lang.IllegalArgumentException: null 
    at java.nio.Buffer.limit(Unknown Source) [na:1.7.0_07] 
    at org.red5.io.amf.Input.bufferToString(Input.java:275) [red5.jar:na] 
    at org.red5.io.amf.Input.getString(Input.java:258) [red5.jar:na] 
    at org.red5.io.amf.Input.readPropertyName(Input.java:565) [red5.jar:na] 
    at org.red5.io.amf.Input.readKeyValues(Input.java:351) [red5.jar:na] 
    at org.red5.io.amf.Input.readSimpleObject(Input.java:501) [red5.jar:na] 
    at org.red5.io.amf.Input.readObject(Input.java:537) [red5.jar:na] 
    at org.red5.server.net.rtmp.codec.RTMPProtocolDecoder.decodeStreamMetadata(RTMPProtocolDecoder.java:978) [red5.jar:na] 
    at org.red5.server.net.rtmp.codec.RTMPProtocolDecoder.decodeMessage(RTMPProtocolDecoder.java:564) [red5.jar:na] 
    at org.red5.server.net.rtmp.codec.RTMPProtocolDecoder.decodePacket(RTMPProtocolDecoder.java:385) [red5.jar:na] 
    at org.red5.server.net.rtmp.codec.RTMPProtocolDecoder.decode(RTMPProtocolDecoder.java:190) [red5.jar:na] 
    ... 18 common frames omitted 
[WARN] [NioProcessor-1] org.red5.server.net.rtmp.codec.RTMPProtocolDecoder - Closing connection because decoding failed: RTMPMinaConnection from 127.0.0.1 : 44814 to localhost (in: 3569 out 3521) 
[INFO] [NioProcessor-1] org.red5.server.stream.ClientBroadcastStream - Close 
[INFO] [NioProcessor-1] org.red5.server.stream.ClientBroadcastStream - Provider disconnect 
[INFO] [NioProcessor-1] org.red5.server.stream.ClientBroadcastStream - Provider disconnect 
[INFO] [NioProcessor-1] org.red5.server.net.rtmp.RTMPHandler - Connecting to: [[email protected] Depth = 2, Path = '/default/myapp', Name = 'test'] 
[INFO] [NioProcessor-1] org.red5.server.net.rtmp.RTMPHandler - Remembering client buffer on stream: 300 
[ERROR] [NioProcessor-1] org.red5.server.service.ServiceInvoker - Method FCSubscribe with parameters [teststream] not found in [email protected] 
[WARN] [NioProcessor-1] org.red5.server.stream.PlayEngine - Subscribe to teststream provider failed 

저는 미디어 스트리밍에 초보입니다. 따라서 누락 된 부분이 있는지 확실하지 않습니다. 사전에

감사합니다.

답변

0

RTMPProtocolDecoder의 Java 소스 코드를 디버깅 할 수있는 다른 기회가 있다고 생각하지 않습니다.

그러나 사용중인 Red5 버전을 알 수 없습니다. Red5의/소스 귀하의 예외의 최신 버전에서

RTMPProtocolDecoder.java:203 =이> 라인 147에 있습니다 http://code.google.com/p/red5/source/browse/java/server/trunk/src/org/red5/server/net/rtmp/codec/RTMPProtocolDecoder.java#147

또한 일부 의견에 추가했다. 가장 먼저해야 할 일은 최신 red5로 업데이트하는 것입니다. 이를 바탕으로 디버깅을하고 더 많은 도움을 요청할 수 있습니다.

+0

Red5 1.0-RC2로 시작했지만 서버 응용 프로그램에 몇 가지 문제가있어서 많은 검색을 마친 후 다시 Red5 0.9로 전환했습니다.1 버전에서 기본 NetConnection이 발생하고 내 서버 앱이 클라이언트 요청을 수락합니다. – amd

+0

어느 시점에서 최신 버전으로 업데이트해야하며 이후 버전에서는 많은 메모리 누수가 수정됩니다. 어느 시점에서 앱으로 프로덕션 환경으로 전환하려는 경우에는이 도구가 필요합니다. –

+0

Red5 0.9.1 http://code.google.com/p/red5/source/browse/java/server/trunk/src/org/red5/server/net/rtmp/codec/RTMPProtocolDecoder의 디코더입니다. 자바? 연구 = 4047 # 202 –

0

답변을 완료하기 만하면됩니다. Red5 eclipse plugin에 의존하지 말고, Red 5 1.0RC2와 호환되지 않는 코드를 생성합니다.Red5 1.0 RC 2는 red5-web.xml의 구성 변경으로 잘 작동합니다. 앱이 작동하기 시작하고 xuggler를 사용하여 컨테이너에서 스트림을 시작할 수 있습니다.

감사합니다. @ seba.wagner.

관련 문제