2015. 7. 9. 15:57
  • 출처 

http://aslike.egloos.com/3082696


  • 컨테이너(Container) : 파일 그 자체  /  ex) 유형(Type) : avi, Quicktime
  • 스트림(Stream) : 데이터 원소(element)의 연속
  • 프레임(Frame)  : 데이터 원소 하나
  • 패킷(Packet)    : 응용프로그램에서 사용 가능할만큼의 raw 프레임으로 디코딩 가능한 데이터의 비트를 포함하는 데이터의 조각
  • 먹싱(Muxing)   : 오디오와 비디오를 하나의 파일로 합침
  • 디먹싱(Demuxing) : 하나의 파일을 오디오와 비디오로 분리

   - 컨테이너라 부르는 이유 : 그 파일 안에 파일 정보, 코덱 정보, 시간, 비트레이트 등 모든 정보를 담고 있는 박스이기 때문
   - 한 패킷은 보통 한 프레임으로 묶임
   - 패킷 : 데이터 전송 상으로 주로 쓰이기 때문에 패킷이라는 용어를 사용

    

  • 스트리밍 기초 흐름도
  1. 동영상 파일로부터 비디오 스트림을 연다
  2. 비디오 스트림으로부터 패킷을 연다
  3. 패킷을 디코딩하여 프레임을 얻는다
  4. 만약 프레임이 완전하지 않으면 다음 프레임을 얻는다
  5. 프레임을 가지고 무엇을 한다
  6. 다음 패킷을 읽어들인다


2015. 7. 9. 13:22
avformat.h

1.

int 

avformat_open_input (AVFormatContext **ps, 

                              const char *filename, 
                              AVInputFormat *fmt

                              AVDictionary **options)



입력 스트림을 열고 헤더를 읽는다.

avformat_close_input( )를 사용하여 꼭 닫아야 한다


  • 파라미터

- ps : avformat_alloc_context( )으로 할당한 AVFormatContext의 포인터

- filename : 열기를 할 스트림의 파일 이름

- fmt : 구체적인 입력 포멧

- options :  AVFormatContext로 채워진 dictionary와 demuxer-private 옵션 


2. 

int 

avformat_find_stream_info (AVFormatContext *ic, 
                                      AVDictionary **options)


avformat_open_input( ) 보다 더 많은 정보를 얻는다
파일을 조금 더 읽어서 구체적인 정보를 AVFormatContext에 저장한다.


3. 

void av_dump_format (AVFormatContext *ic, int index, const char *url, int is_output)


입력, 출력 형식과 같은 상세한 정보를 출력한다. 
 비트레이트, 스트림, 컨테이너, 프로그램, 메타데이타 등등

4.
AVCodec avcodec_find_decoder (enum AVCodecID id)

AVFormatContext에 있는 codec_id를 이용하여 AVCodec을 얻는다.

codecContext를 복사한다


6. 
int avcodec_open2 (AVCodecContext *avctx, const AVCodec *codec, AVDictionary **options)

주어진 AVCodec코덱으로 AVCodecContext를 초기화한다

7. 




2015. 7. 8. 09:52

보기 메뉴 - 속성 관리자(property manager) - 새 프로젝트 속성 시트 추가 메뉴 - 속성 시트 이름 입력 - 추가


아래에서부터 위로 차례대로 적용되어 원하는 곳에 추가하면 된다

2015. 7. 8. 09:39

d3d9.lib

d3dx10d.lib

d3dx9d.lib

dxerr.lib

dxguid.lib

winmm.lib

comctl32.lib

2015. 7. 7. 14:41
1. 다음 사이트로 들어가서 MongoDB를 다운받아 설치한다


2. 커맨드 창을 띄우고 MongoDB가 설치된 폴더로 이동한다

  • 일반적으로 C:\Program Files\MongoDB\Server\3.0\bin 에 있다(mongo.exe가 있는 디렉토리)

3. 데이터를 저장할 폴더를 생성하고 경로를 설정한다

  • 여기서 테스트로 C:\data\book 폴더를 설정하고 경로를 다음과 같이 입력한다
  • mongod --dbpath c:/data/book




  • 경로를 설정하면 waiting for connections 라는 문구가 마지막에 나오고 대기 상태로 있다


  • 잘 생성이 되었으면 c:/data/book 경로에 다음과 같은 파일이 생성된다

4. 새로운 커맨드 창을 띄우고 mongo.exe 가 있는 디렉토리로 이동한 후 mongo 명령어를 입력하여 Mongo 쉘로 들어간다


  • connecting to: test 라고 뜨는데 디폴트로 test db가 생성되고 아무 명령어도 안 치면 여기에 데이터가 저장됨

5. book DB 를 사용하기 위해 use book 명령어 입력

  • db book 으로 변경되었다고 나온다

6. book DB 로 변경 후 member와 page에 데이터를 4개씩 8개 생성

> db.member.insert({name:"Kim hayoung", age:29, skill : ["Java", "Oracle"]});

> db.member.insert({name:"Park sumin", age:27, skill : ["Node.js", "Express"]});

> db.member.insert({name:"Lee naeun", age:31, skill : ["MongoDB", "Elastic"]});

> db.member.insert({name:"Hong jinho", age:33, skill : ["Linux", "Phthon"]});

> db.page.insert({number:"243", year:2011});

> db.page.insert({number:"216", year:2013});

> db.page.insert({number:"142", year:2015});

> db.page.insert({number:"72", year:2014});

  • 위의 그림은 page 입력 후 insert를 입력하지 않아 에러가 난 것이다

7. 잘 생성되었는지 확인해본다

> db.member.find()

> db.page.find()

> show collections

8. book 폴더에 local db와 book db가 생성된 것을 확인


위와 같은 결과가 나오면 일단 MongoDB 생성은 성공이다