在Java中解析远程文件的FLV头信息(时长)

5 投票
2 回答
2539 浏览
提问于 2025-04-15 13:47

我想找一个用Java解析FLV文件头部的例子,特别是关于时长的部分。给定一个FLV文件的链接,我想只下载文件的头部,然后解析出时长。我有FLV的规范说明,但我想要一个具体的例子。如果有Python或PHP的例子也可以,但我更倾向于Java。

2 个回答

0

正如the-alchemist另一个问题中提到的:

Red5项目有一个叫做FLVReader的类,可以满足你的需求。这个类是LGPL许可证的。

我试过了,效果很好。你需要以下这些库:

获取FLV视频时长其实很简单:

FLVReader flvReader = new FLVReader(...); // Can use a File or a ByteBuffer as input
long duration = flvReader.getDuration();  // Returns the duration in milliseconds
1

你在下载头部信息或者解析它的时候遇到问题了吗?如果是下载的问题,可以试试这个代码:

URL url = new URL(fileUrl);
InputStream dis = url.openStream();
byte[] header = new byte[HEADER_SIZE];
dis.read(header);

如果你想读取整数而不是字节,可以用DataInputStream来包装InputStream。

之后只需要查看一下PHP-FLV Info里的getInfo方法,或者看看相关的规范说明。

撰写回答