我已经在 Linux 上安装了 ffmpeg 和 ffmpeg-devel 包。
Oracle 11g 已安装并正在运行。
数据库存储媒体文件,为了更好地流式传输,我们需要将它们转换为 AVI 格式。
为了便于集成,我们希望在数据库中进行这种转换。
现在,最简单的选择是为 ffmpeg 命令行实用程序编写一个包装器,并启用一个 PLSQL 过程来调用它。
但是,这将需要以下步骤:
- 阅读视频 BLOB
- 写入操作系统文件
- 调用 ffmpeg 包装器,给出来自 (2) 的文件名和输出文件名
- 将输出文件从 3 加载到 PLSQL 中的 BLOB
如果可能的话,我想编写一个 C 例程(使用 Oracle 外部库功能),它接受输入作为 BLOB(OciLOBLocator),调用呈现 LOB 的适当 libavformat 函数,并将返回写入 LOB(同样是 OciLOBLOcator)是 PLSQL 层然后用作 AVI 文件的内容。
这样做的另一个优点是它避免了从 Oracle 内部发出操作系统命令的不良影响。
我遇到的问题是,为 ffmpeg 提供的示例显示了对文件数据的处理,而我需要库来处理 LOB。
另一种方法是查看 Oracle 中的 OrdVideo 数据类型是否使用 setformat 和 process 进行这种转换。