我需要显示一个包含 MP4 文件的文件夹的缩略图预览。
那么,是否有可以从 MP4 文件中提取缩略图的 Delphi 7 组件(如果 MP4 确实包含缩略图),或者是否有可以从 MP4 文件中提取第一帧的 Delphi 7 组件?
我需要将其解压缩,以便将其保存为 .jpg 或 .png 文件(稍后再次使用)。
任何想法,谢谢。
我需要显示一个包含 MP4 文件的文件夹的缩略图预览。
那么,是否有可以从 MP4 文件中提取缩略图的 Delphi 7 组件(如果 MP4 确实包含缩略图),或者是否有可以从 MP4 文件中提取第一帧的 Delphi 7 组件?
我需要将其解压缩,以便将其保存为 .jpg 或 .png 文件(稍后再次使用)。
任何想法,谢谢。
Delphi 的视频处理能力真的很有限。但它确实包含一个简单的 activeX/OLE 媒体播放器。因此,一种选择是使用媒体播放器组件打开 MP4 文件,然后对 BMP 表面进行快照。然后调整大小并保存该 BMP。但是...这要求您的用户拥有所有必要的 MP4 解复用器和解码器,以便 Windows 媒体播放器播放他们可能尚未安装的整个 MP4 文件。您可能会在视频图像中遇到变形宽高比。
另一种选择是使用精彩的免费和开源 ffmpeg.org 项目。它可以使用 1 个小型 EXE 打开和重新保存数以千计的音频/视频/图像文件。您的 delphi 程序可能会弹出一个 ffmpeg.exe 命令行,从电影中的任何点提取单个帧,然后 ffmpeg 可以调整大小并保存为 jpg。您所要做的就是等待 JPG 写入。
如果您不想走命令行路线,并且不介意为组件付费,您可以从 www.delphiffmpeg.com 购买 FFVCL。它是 ffmpeg 的 VCL 包装器。我自己从未使用过它,但据说它可以做任何 ffmpeg.exe 命令行可以做的事情,而是在来自 VCL 包装器的 Delphi IDE 中。
还有免费的 Pascal 头文件,如果你喜欢冒险的话,可以从它的 C API 和 DLL 中在 delphi 中使用 ffmpeg。www.iversenit.dk/dev/ffmpeg-headers