MFormats SDKA smart video codec library for C#, VB.NET, Delphi and C++

Supports multiply video formats
FFmpeg with proprietary
implementations of MXF and LXF
Built for video professionals
Audio/video synchronisation, frame
accuracy and low latency
Works with broadcast I/O
Low-latency integration with Blackmagic,
AJA, DELTACAST, Bluefish and Stream Labs
Download 60-day trial

A clean, easy-to-use APIfor your favourite development language

C#
C++
Delphi
VB.NET
Coding
Encoding
MFFactoryClass myFactory = new MFFactoryClass();
M_AV_PROPS frameProps = new M_AV_PROPS();
frameProps.vidProps.eVideoFormat = eMVideoFormat.eMVF_HD1080_5994i;
MFFrame createdFrame;
myFactory.MFFrameCreateFromMem(ref frameProps, lpVideo, 0, 0, out createdFrame, ""; //- w/o audio
MFWriter myWriter = new MFWriter();
myWriter.WriterSet(@"c:\testEncoding.mp4", 1, "format='mp4' video::codec='mpeg4' audio::codec='aac'");
((IMFReceiver)myWriter).ReceiverFramePut(createdFrame, -1, "");
M_AV_PROPS frameProps = new M_AV_PROPS();
frameProps.vidProps.eVideoFormat = eMVideoFormat.eMVF_HD1080_5994i;
MFWriter myWriter = new MFWriter();
MFReader myReader = new MFReader();
myReader.ReaderOpen(@"D:\video\myClip.mxf", "");
MFFrame myFrame;
((IMFSource)myReader).SourceFrameGet(-1, out myFrame, "");
IMFFactory* pFactory = NULL;
::CoCreateInstance(__uuidof(MFFactory), NULL, CLSCTX_ALL, __uuidof(IMFFactory), (void**)&pFactory);

M_AV_PROPS avFrameProps = {};
avFrameProps.vidProps.eVideoFormat = eMVideoFormat.eMVF_HD1080_5994i;

IMFFrame* pFrame;

pFactory->MFFrameCreateFromMem(avFrameProps, lpVideo, lAudioSamples, lpAudio, &pFrame, NULL);

IMFWriter* pWriter = NULL;
::CoCreateInstance(__uuidof(MFWriter), NULL, CLSCTX_ALL, __uuidof(IMFWriter), (void**)&pFactory);

BSTR bsFileName = ::SysAllocString(L"c:\testEncoding.mp4");
BSTR bsOptions = ::SysAllocString(L"format='mp4' video::codec='mpeg4' audio::codec='aac'");
pWriter->WriterSet(bsFileName, 1, bsOptions);
::SysFreeString(bsOptions);
::SysFreeString(bsFileName);

pWriter->ReceiverFramePut(pFrame, -1, NULL);

pFrame->Release();
pWriter->Release();
pFactory->Release();
IMFReader* pReader = NULL;
::CoCreateInstance(__uuidof(MFReader), NULL, CLSCTX_ALL, __uuidof(IMFReader), (void**)&pReader);

BSTR bsFileName = ::SysAllocString(L"D:\video\myClip.mxf");
pReader->ReaderOpen(bsFileName, NULL);

::SysFreeString(bsFileName);

IMFFrame* pFrame;
pReader->SourceFrameGet(-1, &pFrame, NULL);

pFrame->Release();
pReader->ReaderClose();
pReader->Release();
Dim myFactory As New MFFactoryClass()
Dim frameProps As New M_AV_PROPS()
frameProps.vidProps.eVideoFormat = eMVideoFormat.eMVF_HD1080_5994i
Dim createdFrame As MFFrame
myFactory.MFFrameCreateFromMem(frameProps, lpVideo, lAudioSamples, lpAudio, <
createdFrame, "")
Dim myWriter As New MFWriter()
myWriter.WriterSet("c:\testEncoding.mp4", 1, "format='mp4' video::codec='mpeg4' audio::codec='aac'")
myWriter.ReceiverFramePut(createdFrame, -1, "")
Dim myReader As New MFReader()
myReader.ReaderOpen(@"D:\video\myClip.mxf", "")
Dim myFrame As MFFrame
myReader.SourceFrameGet(-1, myFrame, "")
Dim myFactory As New MFFactoryClass()
Dim frameProps As New M_AV_PROPS()
frameProps.vidProps.eVideoFormat = eMVideoFormat.eMVF_HD1080_5994i
Dim createdFrame As MFFrame
Dim myReader As New MFReader()
myReader.ReaderOpen(@"D:\video\myClip.mxf", "")

Supported formatsContainers, codecs, network streams and features

Startup
Professional
Expert
File formats
MP4
MOV
DV
MPEG-TS
MPEG-TS
ASF/WMV
MP4
AVI
DVD-Video
MXF
LXF
Network streams
RTMP
HTTP
UDP
RTSP (receive only)
MPEG-DASH (receive only)
WebRTC (coming soon)
NewTek's NDI (coming soon)
Video codecs
H.264/AVC (CPU-based playback)
H.265/HEVC (CPU-based playback)
MPEG-4
MPEG-2
DVCPRO
M-JPEG
DNxHD
WMV
VC-1o
VP8
VP9
H.264/AVC (GPU-powered encoding)
H.265/HEVC (GPU-powered encoding)
Audio codecs
AAC
MP3
WMA
FLAC
Vorbis
MP2
PCM
Fatures
Grab video from DirectShow-based live sources
Share a single video source between several processes or applications
Mix several video streams and use transition effects
Overlay simple text and images (.GIF, .JPG, .PNG)
Low-latency integration with I/O hardware by Blackmagic Design, AJA, Bluefish444, DELTACAST and Stream Labs
GPU-powered screen capture engine
Growing files playback
Time shifting
External decoding
Alberto Rodriguez
MFormats SDK is in the core of video files processing in Nacsport’s products. We are just starting to scratch the surface of the SDK’s features set — for sure we will be using it more and more in the upcoming products.
Rolf Siegrist
Before MFormats SDK video was hard to deal with in a managed language like C# and the .NET framework. Now it’s a breeze. We developed a prototype for an interview system together with Medialooks in no time. From the planning up to the end product, Medialooks was the right competent partner. The future of video development is saved and we can fulfil our customers’ wishes.
Kelly Lewis
Real Time Graphics uses MFormats SDK to augment their custom Ingest and Playout systems to allow for delayed HD-SDI playout and web streaming. The implementation of the required MFormats SDK functionality was rapid and trouble free. While we have only began scratching at the surface of what Medialooks’ products can offer, we look forward to implementing additional MFormats SDK functionality into both our new and legacy software and hardware systems.
Download 60-day trial