java 读取网络流_如何使用xuggle在java中读取实时网络流? (我可以在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

它让我从该网络流中获得了5秒钟的视频,并将其放入test.flv.

现在我想在java中使用xuggle做同样的事情,除非我每次尝试打开容器时都会出错,并将x设置为-1:

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;

}

也许最好的方法是使用输入流以某种方式将ffmpeg流式传输到xuggle容器中?或者也许还有另一种方法可以将网络流传输到java?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值