Как отобразить изображение большого пальца или первый кадр из файла MP4 с помощью Delphi 7 - PullRequest
1 голос
/ 27 мая 2010

Мне нужно отобразить миниатюру предварительного просмотра папки, полной файлов MP4.

Итак, есть ли компонент Delphi 7, который извлекает уменьшенное изображение из файлов MP4 (если MP4 содержит уменьшенное изображение), или компонент Delphi 7, который может извлечь 1-й кадр из файла MP4?

Мне нужно извлечь его, чтобы я мог сохранить его в файл .jpg или .png (для дальнейшего использования в дальнейшем).

Любые идеи, спасибо.

1 Ответ

2 голосов
/ 27 мая 2010

Возможности обработки видео в Delphi действительно ограничены. Но он включает в себя простой медиаплеер ActiveX / OLE. Поэтому одним из вариантов является использование компонента медиаплеера, чтобы открыть файл MP4, а затем сделать снимок поверхности BMP. Затем измените размер и сохраните этот BMP. Но ... для этого требуется, чтобы у вашего пользователя были все необходимые демультиплексоры и декодеры MP4 для проигрывателя Windows Media для воспроизведения всего файла MP4, который они, возможно, еще не установили. И вы можете столкнуться с анаморфными пропорциями в вашем видеоизображении.

Другой вариант - использовать замечательный бесплатный проект с открытым исходным кодом ffmpeg.org. Он может открывать и повторно сохранять буквально тысячи аудио / видео / графических файлов, используя 1 маленький EXE. Ваша программа delphi может просто вызвать командную строку ffmpeg.exe, которая извлекает один кадр из любой точки фильма, а затем ffmpeg может изменить размер и сохранить его в jpg. Все, что вам нужно сделать, это ждать JPG, чтобы написать.

Если вы не хотите идти по пути командной строки и не возражаете платить за компонент, вы можете купить FFVCL на сайте www.delphiffmpeg.com. Это оболочка VCL для ffmpeg. Я никогда не использовал его сам, но он может делать все, что может делать командная строка ffmpeg.exe, но вместо этого в Delphi IDE из оболочки VCL.

Есть также бесплатные заголовки Pascal, чтобы использовать ffmpeg в delphi из его C API и DLL, если вы любите приключения. www.iversenit.dk/dev/ffmpeg-headers

...