ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 동영상
    미디어/동영상 2009. 1. 18. 22:02
    MCI(Media Control Interface)
    Video For Windows
    하드웨어에 상관없이 VFW를 지원하는 비디오 캡처 장치라면 무엇이든 사용
    하드웨어 의존성이 없는 캡처 프로그램

    VfW 1.1 interfaces

    #include <windows.h>
    #include <vfw.h>
    #include <mmsystem.h>

    VFW.DLL
    Avicap32.dll
    Avicap.dll
    mmsystem.dll
    vfw32.lib

    #pragma comment(lib,"vfw32")
    #pragma comment(lib,"winmm")

    capCreateCaptureWindow()
    capDriverConnect()
    capCaptureGetSetup()
    capCaptureSetSetup()
    capGetDriverDescription()
    capDriverGetCaps()
    capSetCallbackOnFrame()
    capSetCallbackOnVideoStream()
    capGrabFrame()
    capDriverGetName()
    capDriverGetVersion()
    capGetVideoFormatSize()
    capSetVideoFormat()
    capGetVideoFormat()
    capPreviewRate()
    capPreview()
    capOverlay()
    capFileSetCaptureFile()
    capFileAlloc()
    capCaptureSequence()
    capCaptureSequenceNoFile()
    capFileSaveAs()

    ICOpen()
    ICCompressGetFormatSize()
    ICCompressGetFormat()
    ICCompressGetSize()
    ICCompressBegin()
    ICCompress()
    ICDecompressGetFormatSize()
    ICDecompressGetFormat()
    ICDecompressBegin()
    ICDecompress()

    CLSID_AMMultiMediaStream
    IMultiMediaStream
    .Initialize()
    .AddMediaStream()
    MSPID_PrimaryVideo
    MSPID_PrimaryAudio
    .OpenFile()
    .GetMediaStream()
    .SetState()
    STREAMSTATE_RUN

    IMediaStream

    IDirectDrawMediaStream
    .CreateSample()
    .GetFormat()

    IDirectDrawStreamSample
    .GetSurface()
    .Update()

    AVI 파일
    오디오 스트림
    MIDI 스트림
    텍스트 스트림
    비디오 스트림
    연속적인 프레임의 비트맵
    픽셀당 3바이트
    AVIFileInit()
    AVIFileExit()
    AVIFileOpen()
    AVIFileRelease()
    AVIStreamReadFormat()
    AVIFileInfo()
    AVIFileGetStream()
    파일에 있는 다음 스트림을 찾는다.
    AVIStreamRelease()
    AVIStreamInfo()
    AVIStreamStart()
    AVIStreamEnd()
    AVIStreamRead()
    AVIStreamGetFrameOpen()    // 디코딩???
    AVIStreamGetFrameClose()
    AVIStreamGetFrame()
    AVIMakeCompressedStream()
    AVIStreamSetFormat()
    AVIStreamWrite()
    AVIStreamSampleToTime()
    AVIStreamTimeToSample()

    waveInGetDevCaps()
    waveInOpen()
    CALLBACK_FUNCTION
    WIM_DATA
    waveInClose()
    WAVEHDR
    .lpData    // 버퍼
    .dwBufferLength    // 버퍼 길이
    .dwBytesRecorded    // 읽은(?) 크기
    waveInPrepareHeader()
    waveInAddBuffer()
    waveInStart()
    waveInStop()
    waveInUnprepareHeader()
    waveOutGetNumDevs()
    waveOutGetDevCaps()
    waveOutOpen()
    CALLBACK_FUNCTION
    CALLBACK_WINDOW
    WOM_DONE
    waveOutClose()
    waveOutSetVolume()
    waveOutPrepareHeader()
    waveOutUnprepareHeader()
    waveOutWrite()

    // Return the time in milliseconds corresponding to the  currently playing audio sample, or -1 if no audio is playing.
    aviaudioTime()

    VCM(Video Compression Manger)
    H.263

    ACM(Audio Compresssion Manager)
    PCM 코덱
    GSM 코덱
    Open H.323
    G.711 코덱    // RTP ??
    G.723.1 코덱
    G.729 코덱


    #include <mmreg.h>  // Multimedia registration
    #include <msacm.h>    // Audio Compression Manager
    #pragma comment(lib,"msacm32")
    acmGetVersion()
    acmMetrics()
    ACM_METRIC_COUNT_CODECS
    ACM_METRIC_MAX_SIZE_FORMAT
    acmDriverEnum()
    WAVE_FORMAT_DSPGROUP_TRUESPEECH
    acmDriverDetails()
    acmDriverOpen()
    acmDriverClose()
    acmFormatEnum()
    acmStreamOpen()
    ACM_STREAMOPENF_NONREALTIME
    acmStreamClose()
    acmStreamPrepareHeader()
    acmStreamConvert()

    RecordSound
    .CreateThread()

    PlaySound1
    .CreateThread()

    VideoCapture
    .SetDialog()
    .Initialize()

    // to read in sound data from a Wave file
    CWaveSoundRead
    m_pwfx    // WAVEFORMATEX 구조체의 포인터
    m_hmmioIn    // 웨이브에 대한 MM I/O 핸들
    m_ckIn    // 멀티미디어 RIFF 청크
    .cksize // 사이즈?
    .nSamplesPerSec // 샘플링 레이트
    .wBitsPerSample // Resolution
    m_ckInRiff    // WAVE 파일을 열 때 사용

    .Open()
    .Close()
    .Reset()
    .Read()
    // to write in sound data to a Wave file
    CWaveSoundWrite
    .Open()
    .Close()
    .Reset()
    .Write()


    DirectShow    // ActiveMovie


    참조 사이트:
Designed by Tistory.