xuggle学习-IContainer

来源:互联网 发布:js 遍历所有元素 编辑:程序博客网 时间:2024/05/23 12:02

IContainer可用于本地视频流或网络视频的读取。基本用法如官方:

IContainer container = IContainer.make();if (container.open("myfile.flv", IContainer.Type.READ, null) <0)   throw new RuntimeException("failed to open"); int numStreams = container.getNumStreams(); for(i = 0; i < numStreams; i++) {   IStream stream = container.getStream(i);   ...query IStream for stream information... } IPacket packet = IPacket.make(); while(container.readNextPacket(packet) >= 0) {   ... Do something with the packet... } container.close();


在xuggle中,make方法一般用于创建对象。

IContainer.make()-创建一个容器用于存储视频流

open("myfile.flv", IContainer.Type.READ, null):open打开myfile视频流(也可读取实时网络视频流),IContainer.Type.READ即从url读取流,若为write则写入指定文件。若能正确读取流则返回值大于0,若小于0,可将返回值定义为IError,可获取错误数及类型,常见有error_IO(暂时未读取),error_eof(读流中断,如网络中断).此方法需配合close使用。

getNumStreams:获取视频流数量。

getStream:获取指定流 。然后可进行相关处理,如分离视频与音频流( stream.getStreamCoder()=ICodec.Type.CODEC_TYPE_VIDEO)

readNextPacket:开始读流操作,若返回值>= 0,则已获取流。

原创粉丝点击