2013-02-14 93 views
8

:मैं xuggle का उपयोग कर जावा में लाइव वेबस्ट्रीम कैसे पढ़ सकता हूं? तो अगर मैं चलाने (मैं ffmpeg में कर सकते हैं, बस xuggle नहीं)

ffmpeg -t 10 -re -i "rtmp://170.93.143.150/rtplive/ app=rtplive/ playpath=e000990f025f0075004d823633235daa swfUrl=http://www.chart.state.md.us/video/mediaplayer/player.swf pageUrl=http://www.chart.state.md.us/video/video.asp?feed=e000990f025f0075004d823633235daa stop=5000 flashver=`LNX 11,2,202,262` live=true" test.flv -report 

यह मेरे कि webstream कि test.flv में डाल दिया जाता है से वीडियो की एक 5 सेकंड snapsnot देता है। सबसे अच्छा तरीका यह करने के लिए है करने के लिए

public IMediaReader grabStream(IMediaReader reader) throws IOException 
    { 
    String rtmp = "rtmp://170.93.143.150/rtplive/"; 
    rtmp = rtmp + " app=rtplive/"; 
    rtmp = rtmp + " playpath=e000990f025f0075004d823633235daa"; 
    rtmp = rtmp + " swfUrl=http://www.chart.state.md.us/video/mediaplayer/player.swf"; 
    rtmp = rtmp + " pageUrl=http://www.chart.state.md.us/video/video.asp?feed=e000990f025f0075004d823633235daa"; 
    rtmp = rtmp + " flashver=`LNX 11,2,202,262`"; 
    rtmp = rtmp + " live=true"; 

    IContainer container = IContainer.make(); 
    IMediaReader newReader = ToolFactory.makeReader(container); 

    int x = container.open(rtmp, IContainer.Type.READ, null, true, false); 

    if (x < 0) 
    { 
     IError ie = IError.make(x); 
     System.out.println("Open error: " + ie.getType().toString()); 
     throw new RuntimeException("failed to open with error" + x); 
    } 

    return newReader; 
    } 

शायद: अब मैं हर मैं कोशिश को छोड़कर xuggle का उपयोग कर जावा में एक ही बात करते हैं और -1 के लिए मुझे और सेट एक्स पर कंटेनर यह त्रुटियों को खोलने के लिए चाहते हैं किसी भी तरह इनपुटस्ट्रीम का उपयोग कर ffmpeg में एक xuggle कंटेनर में स्ट्रीम? या शायद वेब पर वेबस्ट्रीम में स्ट्रीम करने का एक और तरीका है?

उत्तर

6

RTMP स्रोत स्ट्रिंग निम्न स्वरूप

String rtmpSourceUrl = "rtmp://hostname/appName/streamName"; 

तो मैं निम्नलिखित

IContainerFormat inFormat = IContainerFormat.make(); 
inFormat.setInputFormat("flv"); // set the input format to avoid FFMPEG 
            // probing 
IMediaReader reader = ToolFactory.makeReader(rtmpSourceUrl); 
reader.setQueryMetaData(false); 
reader.setBufferedImageTypeToGenerate(-1); 
reader.getContainer().setForcedVideoCodec(ID.CODEC_ID_FLV1); 
reader.getContainer().open(rtmpSourceUrl , IContainer.Type.READ, inFormat, 
      true, false); 

इस अपनी समस्या को हल करता है की तरह पाठक बनाने की सिफारिश करेंगे में होना चाहिए?

+0

RTMP: //170.93.143.150/rtplive/e000990f025f0075004d823633235daa शायद तब यह मानते हुए streamName – jontro

+0

https://groups.google.com/forum/?fromgroups=#!searchin/xuggler-users/playpath के अनुसार है काम करना चाहिए/xuggler-users/kXoRdAocXfg/GeobXLlnFfkJ उन पैरामीटर जो मेरे पास सही हैं। यह सिर्फ llltmp में urlString पास करना चाहिए। – Grammin

+0

मैंने पाठक को बनाने का भी प्रयास किया कि आपने कैसे सुझाव दिया, और कोई किस्मत, कोई अन्य विचार नहीं? – Grammin