我想在qt中从视频文件中提取图像(第一帧)。我使用ffmpeg应用程序来提取框架,它提供了我需要的extact结果,但是ffmpeg是一个单独的应用程序,它会重载进程。所以我想把它作为静态链接。是否有可能建立到ffmpeg的静态链接,是否有任何statick库可用于从视频中提取帧或有没有其他方法从视频中提取帧?我不想使用Qt声子,因为它在物理上打开一个声子对话框,然后进行scrrenshot。我希望提取过程应该在后台进行。
先谢谢
答案 0 :(得分:4)
您有两种选择:通过ffmpeg
API或ffmpeg
可执行文件。基本上
可执行方法:快速而肮脏,如果做得不错也不错,但不是很灵活
通过QProcess调用ffmpeg可执行文件,然后从磁盘读取已处理的数据。您需要从自己的参数构造ffmpeg命令行参数;能够捕获结果(失败\成功)和。
API方法:长期,干净但在开始时需要大量工作
我个人会建议坚持使用可执行的方法,除非你不介意花一周时间学习ffmpeg API
。
答案 1 :(得分:2)
OpenCV有一个内置的videocapture API,它实际上包含avcodec,更容易使用 - 如果你不想乱用avcodec。
编辑:Data conversion。