【问题标题】:Parsing FLV header (duration) of remote file in Java在 Java 中解析远程文件的 FLV 标头(持续时间)
【发布时间】:2009-08-21 18:47:56
【问题描述】:

我正在寻找一个专门在 Java 中为持续时间解析 FLV 标头的示例。给定 FLV 文件的 URL,我只想下载标题并解析持续时间。我有 FLV 规范,但我想要一个例子。 Python 或 PHP 也可以,但首选 Java。

【问题讨论】:

    标签: java python flash flv


    【解决方案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 方法或阅读规范。

    【讨论】:

    • 我两者都有。由于我已经看过规范,最大的问题是下载部分文件然后解析标题的最佳方法。我尝试发送 HTTP Range 标头来说明我想要多少字节,但只有一些服务器发回 HTTP 206 部分内容,因此您的解决方案更好。谢谢!
    • 好的,如果您对解析有疑问,只需编辑问题即可。
    • InputStream.read 不一定会完全读取。要获得简单的解决方案,请输入DataInputStream 并致电readFully
    【解决方案2】:

    正如the-alchemistthis other question 中所说:

    Red5 project 有一个类叫做 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
    

    【讨论】:

      猜你喜欢
      • 2011-04-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-16
      • 2021-10-08
      • 2011-08-11
      相关资源
      最近更新 更多