【问题标题】:How to display a thumb image or first frame from a MP4 file using Delphi 7如何使用 Delphi 7 显示 MP4 文件中的缩略图或第一帧
【发布时间】:2011-02-24 15:58:04
【问题描述】:

我需要显示一个包含 MP4 文件的文件夹的缩略图预览。

那么,是否有可以从 MP4 文件中提取缩略图的 Delphi 7 组件(如果 MP4 确实包含缩略图),或者是否有可以从 MP4 文件中提取第一帧的 Delphi 7 组件?

我需要将其解压缩,以便将其保存为 .jpg 或 .png 文件(稍后再次使用)。

任何想法,谢谢。

【问题讨论】:

  • 检查这个问题中接受的答案,stackoverflow.com/questions/2911837/…,这适用于 Windows 中任何类型的注册文件,包括 mp4 和 avi。
  • @Peter Lang 感谢您指出这一点。我一定会试试这个(当然,除非其他人指向我直接捕获 MP4 第一帧的代码)。
  • 我没有指出任何事情:) 我只是修复了你问题的标签,RRUZ 留下了评论。

标签: delphi image-processing thumbnails delphi-7 mp4


【解决方案1】:

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 命令行可以做的事情,而是在 Delphi IDE 中的 VCL 包装器中。

还有免费的 Pascal 标头,如果您喜欢冒险,可以从它的 C API 和 DLL 在 delphi 中使用 ffmpeg。 www.iversenit.dk/dev/ffmpeg-headers

【讨论】:

  • phipps:布拉德,FFVCL 对于我需要它的目的来说有点矫枉过正和昂贵,但 ffmpeg 方法工作正常。非常感谢您指出这一点。抱歉,我花了一些时间来尝试这个,但它现在可以工作了。
猜你喜欢
  • 2014-02-09
  • 1970-01-01
  • 2011-05-11
  • 2021-08-31
  • 1970-01-01
  • 2011-01-25
  • 2020-03-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多