avi로 다 만드신 다음에, 녹화가 끝나면 나중에 압축을 하시는건 어떠세요? 압축하는 프로그램들도 데이터를 다 보고 인코딩 시켜야 하기 때문에, 압축을 하면서 녹화를 하는 방식은 찾아보기 힘듭니다. 있다고 해도.. 이론상 압축률이 상당히 떨어지겠지요.
동영상을 만들어서 다른 pc로 전송하시는 건가요? 만약 그렇다고 한다면, 특정 동영상이 코덱이 아닌, 화면을 뿌려준후, 변경되는 부분만 처리해주는 방식이 훨씬 빠르게 먹힐 수 있습니다.
김동욱 님이 쓰신 글 :
: 자상하게 답변해 주시니 정말 감사합니다.
:
: 실은 간단한 동영상을 위해서 jpg그림을 겹쳐서 저장하려고 했는데.......
:
: 동작은 잘되긴하지만 너무 허접이라 ....^^;;
:
: 혹시 동영상만드는 방법을 아시는 고수님 있으면 가르쳐주세요.
:
: avi는 파일 크기에서 문제가 있을것 같고 영상을 저장 할때는 아무래도 압축 저장을
:
: 해야하지 않을까요?
:
: 유영인 [Chris] 님이 쓰신 글 :
: : 단순히, 파일 사이즈와 팔레트를 원하신다면, 다음과 같은 방법은 어떠신가요..?
: :
: :
: : 1) 파일 사이즈
: : 파일 크기는 빌더의 fseek의 도움말의 example 을 보시면 filesize 를 구할 수 있는 방법이 나와 있습니다. API도 있고요. 편하신것으로 사용하시면 될 것 같네요. 해당 JPEG 파일의 크기를 알면 되겠지요.
: :
: :
: : 2) 팔레트
: : 기본적으로 JPEG는 GetPalette라는 메소드를 가지고 있습니다. 아래는 그 GetPalette의 소스입니다. 델파이 입니다.
: :
: : function TJPEGImage.GetPalette: HPalette;
: : var
: : DC: HDC;
: : begin
: : Result := 0;
: : if FBitmap <> nil then
: : Result := FBitmap.Palette
: : else if FTempPal <> 0 then
: : Result := FTempPal
: : else if FPixelFormat = jf24Bit then // check for 8 bit screen
: : begin
: : DC := GetDC(0);
: : if (GetDeviceCaps(DC, BITSPIXEL) * GetDeviceCaps(DC, PLANES)) <= 8
: : then
: : begin
: : // next line is bug fix - re:
: : borland.public.delphi.vcl.components
: : // Steven Trefethen 21 Aug 1997
: : if FTempPal <> 0 then DeleteObject(FTempPal);
: : FTempPal := CreateHalftonePalette(DC);
: : Result := FTempPal;
: : end;
: : ReleaseDC(0, DC);
: : end;
: : end;
: :
: :
: :
: : 이곳으로 가시면, 더욱 깊이있는 정보를 얻으실 수 있습니다.
: :
: :
http://www.wotsit.org/
: :
: :
: :
: : 김동욱 님이 쓰신 글 :
: : : 답변 감사합니다.
: : :
: : : 파일 크기나 팔레트등의 정보는 어떻게 알 수 있나요?
: : :
: : : FFC000까지의 데이터는 무었인가 궁금하네요?
: : :
: : : 이런 자료는 어떻게 찾나요?
: : :
: : : ??????
: : :
: : : 요즘 저의 무식함이 더욱 돋보이는것 같군요.
: : :
: : : 오늘 하루도 건강하시고 즐거운 하루되세요.
: : :
: : : 유영인 [Chris] 님이 쓰신 글 :
: : : : Jpeg는 헤더를 알아낸다 하더라도, Bitmap과 같이 손쉬운 처리를 할 수 없습니다. 양자화 및 마커, 허프만 기법등을 사용하여 데이터를 손실, 혹은 복구하여야 합니다. 아무튼 Jpeg에도 헤더는 있습니다. FFC000 다음부터 시작하는 코드가 Header 입니다.
: : : :
: : : : unsigned short Height; // Height
: : : : unsigned short Width; // Width
: : : : unsigned char Number; // 헤더 갯수. 이 숫자만큼 아래 정보가 반복됩니다.
: : : :
: : : : unsigned char ID[3]; // 헤더 이름.
: : : : unsigned char H[3]; // 가로 연산 인자
: : : : unsigned char V[3]; // 세로 연산 인자
: : : : unsigned char dTable[3]; // 양자화 테이블 번호
: : : :
: : : : Jpeg가 가지고 있는 테이블 정보만 약 5개 정도가 됩니다. 이 것들을 전부 알아야 디코딩이 가능하며, 단순히 헤더 정보만 원하실때는, 헤더정보에서 필요하신 부분만 따로 빼내는 식으로 코딩하시는 것이 더 빠른 작업을 하실 수 있을 것 같네요.
: : : :
: : : :
: : : : 김동욱 님이 쓰신 글 :
: : : : : TJPEGImage에는 BITMAPINFO와 같은 헤더가 없나요?
: : : : :
: : : : : 엄청 궁금한데 설명된곳이 없네요.
: : : : :
: : : : : 아시는 분있으면 가르쳐 주세요.
: : : : :
: : : : : 즐거운 하루 되세요.