Возможности обработки видео в 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