2013-02-14 29 views
8

(Sadece xuggle değil, Ffmpeg bunu yapabilirsiniz): Bana test.flv koymak alır o Webstream videonun 5 saniye snapsnot verirJava'da canlı bir web akışını xuggle kullanarak nasıl okuyabilirim? Ben çalıştırmak Yani eğer

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 

. o etmektir yapmanın en iyi yolu belki

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; 
    } 

: Şimdi ben denemek her şey hariç xuggle kullanarak java aynı şeyi yapmak ve -1 olarak beni ve setler x üzerinde konteyner o hataları açmak istiyoruz giriş akışını bir şekilde kullanarak bir xuggle kapsayıcısına ffmpeg içinde akış? Ya da java'ya bir web akışında akış yapmak için başka bir yol var mı?

cevap

6

rtmp kaynak dizesi aşağıdaki biçimde Sonra

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

Bu sorunu çözmek mu şu

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); 

gibi okuyucuyu oluştururken öneriyoruz olmalıdır?

+0

rtmp: //170.93.143.150/rtplive/e000990f025f0075004d823633235daa muhtemelen o zaman bu https://groups.google.com/forum/?fromgroups=#!searchin/xuggler-users/playpath göre streamName – jontro

+0

olduğunu varsayarak çalışması gerekir/xuggler kullanicilari/kXoRdAocXfg/GeobXLlnFfkJ Sahip olduğum parametreler doğru. UrlString dosyasını sadece librtmp içine geçirmelidir. – Grammin

+0

Ayrıca okuyucuya nasıl önerdiğini ve şansınız olmadığını, başka fikirleri denedim? – Grammin

İlgili konular