Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Catalog · How the catalog works
Anything · Lazarus or Delphi
Random projectRandom project

Bitmaps2Video-for-Media-Foundation

Encode a series of bitmaps and video clips together with an audio file to video using the Windows Mediafoundation-API

View on GitHub

Member rating

No ratings yet.

Sign in to rate this project.

README

Bitmaps2Video for Media Foundation

This version requires the newest version of Mfpack!

A VCL-based Delphi-class to encode a series of bitmaps and video-clips together with an audio file to video using the Windows Mediafoundation-API.

The encoding class TBitmapEncoderWMF can be found in Source\uBitmaps2VideoWMF.pas. It is designed to be an easy to use interface to the Mediafoundation-API, requiring only basic knowledge about video-processing.

Requires:

  • The MF-API-headers available at https://github.com/FactoryXCode/MfPackk Download the repository and add its folder "src" to your library path. There is no need to install any package. Thanks to FactoryXCode for the headers and samples!
  • Delphi-Versions: Developed under Delphi 11.3 - 12.1. Now designed to work with Delphi XE7 and up, unless I goofed it up again. Records with methods, anonymous procedures, interposer classes, tasks and TWicImage need to be available.
  • Windows-Versions: Windows 10 or above for full set of features. Windows 8 may work in a limited way, but untested. Will fail under Windows 7 and below.

Supported file formats and codecs:

Output:
Presently only .mp4 with H264 or H265(HEVC)-codecs. Hardware encoding is enabled if supported. Audio is encoded to AAC. The required encoders (MF-Transforms) usually come with your graphics-driver.

Input:
Theoretically anything that Windows has a decoder for should work as input for video or audio. Practically some file formats (like .vob) don't seem to be fully supported. Try them in the demo. Rule of thumb: What Films & TV will play, works.

Usage:

Add the 4 files in the Source-directory to your project and the uses-clause of any unit using the encoder. The methods of the encoder-class are explained in the interface section of uBitmaps2VideoWMF.pas. To see examples of usage, run the demo-project DemoWMF in the Demo-folder. The repo no longer contains dproj-files. Before using the demo-project you should set the output directories to .$(Platform)$(Config) in the project options.

https://github.com/user-attachments/assets/76ef1f8a-45e1-43a0-87b1-4b4c86ac3f22