【问题标题】:How to extract an Image from a video file in qt?如何从qt中的视频文件中提取图像?
【发布时间】:2014-03-22 14:19:18
【问题描述】:

我想从 qt 中的视频文件中提取图像(第一帧)。我使用 ffmpeg 应用程序来提取帧,它给出了我需要的确切结果,但 ffmpeg 是一个单独的应用程序,它会重载进程。所以我想把它做成静态链接。是否可以静态链接到 ffmpeg ,是否有任何可用于从视频中提取帧的静态库,或者是否有任何其他方法可以从视频中提取帧?我不想使用 Qt 声子,因为它实际上会打开一个声子对话框,然后进行 scrrenshot。我希望提取过程应该在后台进行。

提前致谢

【问题讨论】:

    标签: qt ffmpeg


    【解决方案1】:

    您有两个选择:通过ffmpeg API,或通过ffmpeg 可执行文件。基本上

    可执行的方法:快速而肮脏,如果做得正确,还不错,但不是很灵活

    通过QProcess调用ffmpeg可执行文件,然后从磁盘读取处理后的数据。您需要从自己的参数构造ffmpeg命令行参数;能够捕获结果(失败\成功)和。

    API 方法:长期、干净,但在开始时需要大量工作

    • 获取 ffmpeg 动态库(avcodec 等)
    • 遵循有关如何使用 ffmpeg API 的教程。 Dranger 是最知名的,有一个 updated version小心,前面的学习曲线
    • 将其合并到您的 Qt 应用程序中(专业配置、围绕您的 ffmpeg 功能的包装器等)
    • 构建静态库版本。我把它放在最后,因为我可能会很烦人,特别是如果你在窗户上(希望你不是)

    我个人建议坚持使用可执行方法,除非您不介意花一周时间来学习 ffmpeg API

    【讨论】:

      【解决方案2】:

      OpenCV 有一个内置的videocapture API,它实际上包装了 avcodec,更容易使用 - 以防你不想弄乱 avcodec。

      编辑:Data conversion.

      【讨论】:

        猜你喜欢
        • 2012-05-16
        • 1970-01-01
        • 2012-12-12
        • 1970-01-01
        • 1970-01-01
        • 2023-01-14
        • 1970-01-01
        • 2012-04-27
        • 1970-01-01
        相关资源
        最近更新 更多