More about FLV Encoder SDK
FLV Encoder SDK Help
Prepare a FTFLVSTREAMINFO structure (see Structures):
void CALLBACK WriteCallback(LPVOID lpParam, LPCVOID lpData, DWORD nLen)
{
WriteFile((HANDLE)lpParam, lpData, nLen, NULL);
}
...
FTVIDEOINFO video_info;
video_info.dwCodec = FT_VIDEOCODEC_SCREENVIDEO;
video_info.dwWidth = 0x100;
video_info.dwHeight = 0x100;
FTAUDIOINFO audio_info;
audio_info.dwFormat = FT_SOUNDFORMAT_UNCOMPRESSED;
audio_info.dwRate = FT_SOUNDRATE_44KHZ;
audio_info.dwSize = FT_SOUNDSIZE_16BIT;
audio_info.dwType = FT_SOUNDTYPE_STEREO;
FTFLVSTREAMINFO info;
// if you don't want to place any video into a flv, you can pass NULL
info.lpVideoInfo = &video_info;
// if you don't want to place any audio into a flv, you can pass NULL
info.lpAudioInfo = &audio_info;
info.lpWriteDataCallback = &WriteCallback;
HANDLE hFLVFile = CreateFile( ... );
info.lpParam = hFLVFile;
HFTFLVSTREAM hFlvStream = ftFlvStreamCreate(&info);
|
Prepare Screen Video Encoder:
HFTSCREENVIDEOENCODER hScreenVideoEncoder = ftScreenVideoEncoderCreate(0x100, 0x100, 16);
|
Write raw audio data:
ftFlvStreamPutAudioData(hFlvStream, lpAudioData, nLen, nTimeStamp);
|
Compress (encode) and write video data:
// OnVideoData(const char* data, unsigned int size, unsigned int timestamp)
LPCVOID lpData = 0;
DWORD cbBytes = 0;
ftScreenVideoEncodeFrame(hScreenVideoEncoder, data, size);
ftScreenVideoGetEncodedFrame(hScreenVideoEncoder, &lpData, &cbBytes);
ftFlvStreamPutVideoData(hFlvStream, lpData, cbBytes, timestamp);
|
Destroy the video encoder and flv stream:
ftScreenVideoEncoderDestroy(hScreenVideoEncoder);
ftFlvStreamDestroy(hFlvStream);
|
More about FLV Encoder SDK
Copyright © 2004 - 2007 Softanics. All rights reserved.
Macromedia and Shockwave Flash are trademarks of Adobe, Inc.
|