如何将视频转换为字节数组,然后将字节数组转换回视频解析?

时间:2015-01-26 10:49:34

标签: java android arrays parse-platform

我正在开发一个项目,我需要先将视频转换为字节数组以减小其大小,然后将其转换回视频。

1 个答案:

答案 0 :(得分:1)

我不确定您是否会通过将每个字节放入数组来减少视频的大小。

如果我有一个4,000字节的视频,那么你将拥有一个恰好4,000字节的数组(包括数组本身在内存中的所有开销)。

名为ParseFile的{​​{1}}对象上有一个方法会返回.getData()。因此,如果您在byte[] array列中的Video课程中存储了视频,则可以执行以下操作:

data

现在你有一个视频对象的字节数组,但是字节数组和视频文件一样大,因为没有发生压缩。如果您想压缩视频文件,可以使用Android的zlib压缩Deflater

byte[] bytes_of_video = videoObject.getParseFile("data").getBytes();

我不知道您是想节省服务器或设备上的空间,但为了节省带宽成本,您可以将压缩视频数据存储在服务器中的byte[] originalBytes = bytes_of_video; Deflater deflater = new Deflater(); deflater.setInput(originalBytes); deflater.finish(); ByteArrayOutputStream baos = new ByteArrayOutputStream(); byte[] buf = new byte[8192]; while (!deflater.finished()) { int byteCount = deflater.deflate(buf); baos.write(buf, 0, byteCount); } deflater.end(); byte[] compressedBytes = baos.toByteArray(); 对象中,然后解压缩文件当设备准备好被查看/使用时,在设备上。但是设备上的压缩视频文件不是很有用,因为在压缩格式下你无法查看/编辑/使用它。