我尝试使用jobb库编译视频,问题是jobb崩溃,视频大小超过500 MB,以下是有关此问题的一些信息:
java.io.IOException: FAT Full (459872, 459873)
at de.waldheinz.fs.fat.Fat.allocNew(Fat.java:298)
at de.waldheinz.fs.fat.Fat.allocAppend(Fat.java:376)
at de.waldheinz.fs.fat.ClusterChain.setChainLength(ClusterChain.java:175)
at de.waldheinz.fs.fat.ClusterChain.setSize(ClusterChain.java:132)
at de.waldheinz.fs.fat.FatFile.setLength(FatFile.java:91)
at de.waldheinz.fs.fat.FatFile.write(FatFile.java:154)
at com.android.jobb.Main$1.processFile(Main.java:495)
at com.android.jobb.Main.processAllFiles(Main.java:604)
at com.android.jobb.Main.processAllFiles(Main.java:600)
at com.android.jobb.Main.main(Main.java:417)
Exception in thread "main" java.lang.RuntimeException: Error getting/writing file with name: videos.zip
at com.android.jobb.Main$1.processFile(Main.java:501)
at com.android.jobb.Main.processAllFiles(Main.java:604)
at com.android.jobb.Main.processAllFiles(Main.java:600)
at com.android.jobb.Main.main(Main.java:417)
答案 0 :(得分:1)
file with name: videos.zip
- 首先,您不必使用zip。您可以将zip存档用作扩展文件本身,而不必将其打包在.obb文件中。但使用zip文件可能会降低您的应用程序速度。
或者您可以将文件放在某个目录中(例如,“tmp”),然后调用类似的内容:jobb -d D:\tmp -o D:\main.com.example.1.obb -pn com.example -pv 1
。如果您的每个文件都小于500 MB,一切都应该没问题。但如果没有 - 我想,你将不得不考虑另一个解决方案:也许,压缩大视频文件,以使其大小小于500 MB。
P.S。对于使用.obb文件的工作,我创建了this帮助器,您可能会发现它很有用。
答案 1 :(得分:1)
由于OBB文件是在FAT16文件系统上构建的,因此最大总大小为2 GB。这可以由单个文件使用,也可以由数百个文件组成。请注意,FAT16最多只允许在根目录中包含512个文件,因此如果您拥有的文件多于文件,则需要将它们放在OBB文件中的单独文件夹中。
Lem叔叔是对的,使用ZIP存档实际上可能会使您对文件的访问速度变慢。除非你绝对需要压缩(无论如何都是非常好的ZIP压缩?),我建议不要将这些文件放到ZIP存档中。 jobb工具旨在从目录的内容(包括子目录,保留目录结构)创建有效的OBB文件。
您的错误原因是jobb工具源及其使用的FAT库中的问题。我更详细地写了详细信息here,但基本上是该工具认为FAT16最多只允许512 MB,而实际上它允许最多2 GB。修复工具后,您将能够使用它来创建更大的OBB文件。与此同时,可以创建一个修复它的自定义构建。我后来打算发布我个人的工具版本。
SuperFloppyFormatter returning FAT32 for anything over 512 MB?