gpt4 book ai didi

oracle - 从 Oracle 调用 ffmpeg api

转载 作者:行者123 更新时间:2023-12-04 22:51:13 25 4
gpt4 key购买 nike

我已经在 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 进行这种转换。

    最佳答案

    有趣的挑战。因此,听起来您宁愿不必调用“ffmpeg”命令行实用程序,而是在数据库内的 native 调用中利用 libavformat 和 libavcodec 库。我有这个权利吗?

    我相信这些 LOBs/OciLOBLocator 东西暴露了一个用于读写的 C API?如果是这种情况,那么也许您可以基于该 API 创建一个新的 URLProtocol。 URLProtocols 是 FFmpeg 处理 I/O 的方式。运行“ffmpeg -protocols”以查看所有已实现的协议(protocol)。查看 libavformat/file.c 的源代码,以获取有关 URLProtocol 所需内容的简单示例——打开、读取、写入、查找、关闭和一些其他功能。

    关于oracle - 从 Oracle 调用 ffmpeg api,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10397749/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com