在Java中将媒体内容转换为字符串

在Java中将媒体内容转换为字符串,java,android,base64,oracle-maf,Java,Android,Base64,Oracle Maf,我正在使用oraclemaf开发移动应用程序(安卓和IOS)。需要在应用程序中捕获媒体(图像、音频和视频),并希望存储到Oracle DB通常为CLOB列中 因此,我将捕获的媒体转换为base64字符串(使用commons-codec-1.10.jar)并通过Rest webservice(Accept JSON/XML)存储到DB中 对于图像和音频而言,base64字符串的长度是可以的,但对于视频而言,即使对于2秒的视频(2MB后置摄像头),它也会消耗约640万个字符,这会导致应用程序速度减慢

我正在使用
oraclemaf
开发移动应用程序(安卓和IOS)。需要在应用程序中捕获媒体(图像、音频和视频),并希望存储到
Oracle DB
通常为CLOB列中

因此,我将捕获的媒体转换为
base64
字符串(使用
commons-codec-1.10.jar
)并通过Rest webservice(
Accept JSON/XML
)存储到DB中

对于图像和音频而言,base64字符串的长度是可以的,但对于视频而言,即使对于
2秒的视频(
2MB后置摄像头
),它也会消耗约640万个字符,这会导致应用程序速度减慢,并导致Java堆空间错误


是否有其他方法可以使用Java将媒体内容转换为字符串,从而提供可行的解决方案?

如果确实需要将视频保存在DB表的CLOB/BLOB列中,则首先将内容保存在文件中,然后使用异步调度程序将其保存在DB中。最好是让这个调度器在另一个Java VM中运行,以免干扰运行服务器端的应用服务器


如果可以将所有二进制内容保存为文件中的二进制内容和数据库中的路径。无论如何,文件系统是提供二进制数据的最佳解决方案。

您可以使用压缩来获得更好的性能。感谢您的想法,转换后是否可以将其作为JSON发送?还有一个问题,正如我在查看此链接时所建议的那样。在base64字符串中,我已经有了数字(示例:ivborw0kggoaaaansuhueugaaswaaacwchayabkw7xsaaaoqleqvr4xu2dv64srxghbfeakhkbkhdbigsqyebinsp58if3ipfzkcgiopcf4dpgggnvggmylb2ajyjbsqikpxqvyd4bm),然后它如何正确地解压缩它。如果您有任何其他压缩和解压缩链接?如果是,请分享…谢谢你的回复,文件系统不符合我的要求。此后,必须在另一台设备中访问相同的媒体内容。我会检查你的第一个方法,然后再给你回复。有一个问题,android/ios设备中是否有调度器?该文件应保存在Oracle DB旁边的服务器上。配置Apache或Nginx服务器来服务这些二进制文件,所有设备都可以使用它们。