xuggle操作视频
有个需求是要读取视频的宽高,找到了Xuggle和FFmpeg两种方式,FFmpeg很强大,但是我并不需要那些功能,所以使用了轻量一点的Xuggle
引入依赖
1 2 3 4 5
| <dependency> <groupId>xuggle</groupId> <artifactId>xuggle-xuggler</artifactId> <version>5.4</version> </dependency>
|
可能maven仓库中没有该依赖,可以下载后放到本地仓库或私服
xuggle-xuggler-5.4.jar
操作示例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| String fileName = "/Users/zhanghe/Desktop/1.mp4"; IContainer container = IContainer.make(); IContainerFormat format = IContainerFormat.make();
int result = container.open(fileName, IContainer.Type.READ, null); if(result < 0){ throw new RuntimeException("不能打开该文件"); } int num = container.getNumStreams(); for(int i = 0;i<num;i++){ IStream stream = container.getStream(i); IStreamCoder coder = stream.getStreamCoder(); if(coder.getCodecType() == ICodec.Type.CODEC_TYPE_VIDEO){ System.out.println(coder.getWidth()); System.out.println(coder.getHeight()); }
}
long duration = container.getDuration(); System.out.println("duration:"+duration);
long fileSize = container.getFileSize(); System.out.println("fileSize:"+fileSize);
int bitRate = container.getBitRate(); System.out.println("bitRate:"+bitRate);
|