Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Konfiguration IMFCaptureSink (Media Foundation) (https://www.delphipraxis.net/212665-konfiguration-imfcapturesink-media-foundation.html)

hotrs02 13. Mär 2023 13:32

Konfiguration IMFCaptureSink (Media Foundation)
 
Hi *.*,

ich benutze die Media Foundation Schnittstelle IMFCaptureEngine, um einerseits eine Vorschau eines Kamerabildes zu erhalten und andererseits, um Audio (MP3) oder Video (MP4) aufzuzeichnen bzw. ein Foto (BMP bzw. JPEG) zu erstellen. Das ganze funktioniert soweit recht gut.

Was fehlt ist die Konfiguration der Ausgabeformate. Ich würde z.B. bei der Audio- und Videoaufnahme die Größe der erstellten Dateien über die Bitrate beeinflussen können. Oder bei der JPEG-Datei Metainformationen wie z.B. den Aufnahmezeitpunkt bzw. die Orientierung festhalten.

Kennt hier ggf. jemand Lösungsansätze oder hat einen Hinweis auf eine passende Dokumentation für mich?


Gruß

hotrs02 17. Mär 2023 08:36

AW: Konfiguration IMFCaptureSink (Media Foundation)
 
Ich habe inzwischen eine Möglichkeit gefunden, die zumindest für MP3 Dateien funktioniert. Die Idee dahinter ist, den verwendeten Encoder über das IMFMediaType Objekt zu konfigurieren, welches dann an IMFCaptureSink.AddStream übergeben wird. Für den MP3 Encoder findet sich hier eine Dokumentation der Attribute:

https://learn.microsoft.com/en-us/wi...-audio-encoder

Mit Hilfe der Attribute MF_MT_AUDIO_AVG_BYTES_PER_SECOND und MF_MT_AUDIO_SAMPLES_PER_SECOND konnte ich so 1 Minute Aufnahme von gut 2 MB auf 350 KByte schrumpfen lassen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:21 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz