1
我正在開發一個項目,它本質上是一個視頻上傳器,我想知道是否有任何方法可以使用Java中的Xuggler庫來獲取上傳視頻的解析度。有沒有辦法通過Xuggler獲得視頻的分辨率?
我正在開發一個項目,它本質上是一個視頻上傳器,我想知道是否有任何方法可以使用Java中的Xuggler庫來獲取上傳視頻的解析度。有沒有辦法通過Xuggler獲得視頻的分辨率?
在類IStreamCoder
中有getHeight
和getWidth
方法。
所以你應該只使用這些方法,this sample應該告訴你如何去做。
我提取了你應該重要的東西。
// Create a Xuggler container object
IContainer container = IContainer.make();
// Open up the container
if (container.open("/path/to/video.avi", IContainer.Type.READ, null) < 0)
throw new IllegalArgumentException("could not open file: " + filename);
// query how many streams the call to open found
int numStreams = container.getNumStreams();
// and iterate through the streams to find the first video stream
int videoStreamId = -1;
IStreamCoder videoCoder = null;
for (int i = 0; i < numStreams; i++) {
// Find the stream object
IStream stream = container.getStream(i);
// Get the pre-configured decoder that can decode this stream;
IStreamCoder coder = stream.getStreamCoder();
if (coder.getCodecType() == ICodec.Type.CODEC_TYPE_VIDEO) {
videoStreamId = i;
videoCoder = coder;
break;
}
}
if (videoStreamId == -1)
throw new RuntimeException("could not find video stream in container: "
+filename);
/*
* Now we have found the video stream in this file.
* Let's open up our decoder so it can do work.
*/
if (videoCoder.open() < 0)
throw new RuntimeException("could not open video decoder for container: "
+ filename);
// here you have what you need
int height = videoCoder.getHeight();
int width = videoCoder.getWidth();
Thnx很多隊友! ;) – frikkio