[Libav-user] Creating "Prores' Quicktime Movies From Image Buffers

Rennie Johnson renniejohnson at roadrunner.com
Sat Oct 26 18:31:53 EEST 2019


I need to add Prores QT output to a Windows Application I have created in
Visual Studio 13.  I would appreciate any quick-start guidance someone could
give me.  I want to support the 422, 422HQ, 4444, and 4444HQ formats.  I
don't need alpha channel.  Eventually, I would want to add sound support.

 

If someone wants to help me take this on, I have a small budget for that.
Otherwise, I appreciate any guidance, as the FFMPEG API is so vast, it's
hard to tell where to start.

 

You can email directly to renniejohnson at roadrunner.com.

 

If possible, I would create a C++ managed class, but a native class would be
OK.  I need two member functions that would look something like:

 

1.       LPVOID CreateQuicktimeFile(String^ filePath, int width, int height,
int srcDataFormat, int qtCodec, float tcFormat, int closeFile);

 

a.       filePath = Destination output file name and path

b.      width = Number of horizontal pixels in the image

c.       height= Number of vertical pixels in the image

d.      scrDtaFormat = A token that describes the image data structure, such
as

                                                               i.
16BIT_INTEGER_RGB_INTERLEAVED

                                                             ii.
8BIT_INTEGER_RGB_INTERLEAVED

                                                            iii.
10BIT_YUV_INTERLEAVED

                                                           iv.
10_10_10_2_RGB_PACKED

e.      qtCodec = A token that describes the QT files CODEC, such as:

                                                               i.
PRORES_422

                                                             ii.
PRORES_422HQ

                                                            iii.
PRORES_4444

                                                           iv.
PRORES_4444Q

f.        tcFormat = A token that describes the time code format and
playback rate, such as:

                                                               i.
TC_FORMAT_2398 = 24 Frame Timecode Format, Playing at 23.976 FPS.

                                                             ii.
TC_FORMAT_24 = 24 Frame Timecode Format, Playing at 24 FPS.

                                                            iii.
TC_FORMAT_25 = 25 Frame Timecode Format, Playing at 25FPS.

                                                           iv.
TC_FORMAT_2997 = 30 Frame Timecode Format, Playing at 29.97 FPS.

                                                             v.
TC_FORMAT_30 = 30 Frame Timecode Format, Playing at 30 FPS.

g.       closeFile = Closes the QT File after creation.

h.      Return Value = Pointer To the New QT Object (May not be necessary)

 

2.       Int AppendFrame(void* bufferData, int openFile, int closeFile); 

 

a.       bufferData = A pointer to an image buffer of a single frame that
matches the characteristic described in the function above.

b.      Return Value = 0 if successful.

c.       openFile = Opens a previously closed file for appending if
non-zero.

d.      closeFile = Closes the QT file after appending if non-zero.

 

Thank you for any help.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://ffmpeg.org/pipermail/libav-user/attachments/20191026/44fdc68d/attachment.html>


More information about the Libav-user mailing list