검색결과 리스트
개발 이야기에 해당되는 글 14건
- 2015.12.24 MPEG DASH
- 2015.06.30 간단한 MP3 만들기
- 2015.06.18 [MFC] dialog 상단 메뉴 만들기 + 이벤트 연결
- 2015.06.17 [COM] Create GUID
글
MPEG DASH
개발 이야기/DASH
2015. 12. 24. 10:39
1. Dynamic Adaptive Streaming over
HTTP (DASH)
- ISO
표준(ISO/IEC 23009-1)으로
개발된 HTTP
Adaptive Streaming의
한 종류
- 비디오
stream및
파일을 작은 조각으로 분리되어 있고 클라이언트 요청에 따라 http로
전송됨.
2. 구성
요소
- Media
Presentation(MP)
미디어 콘텐츠. 오디오/비디오는 하나의 파일로 묶일 수도 있고 각각의 파일로 분리될 수도 있음.
- Media
Presentation Description (MPD)
Stream 정보를 나타내는 XML Manifest 파일
3. 특징
- MP4 Format(ISO Base Media File Format)과
MPEG-2
Transport Stream을 지원.
Codec 독립적
- 기존에
존재하는 CDNs,
proxies, caches, NATs and firewalls 사용이
용이함.
- Streaming session이 client 에
의하여 동작함
- track 전환을
지원
- DRM을
명시하지 않았으나,
ISO/IEC 23001-7 표준에 명시된 모든 DRM
기술을 지원. 여러
개의 DRM
적용 가능.
- 광고
삽입을 지원 : period or segment 형태로
- Trick mode : fast-forward ,fast-rewind 지원
- Content
Descriptors 지원:
Accessibility,
Rating and camera views
등
- Segments
는 다양한
duration
을 가질 수 있음
- Time-shift
services
- MPD
동적으로 변 할 수 있음. 주기적으로 업데이트
- Event
Messaging : MPD 유효성
만기 , 광고
삽입
- Template-based
generation of segment list (time or number )
-> Template
에 representation id, time, number 등의
정보를 이용하여 segment
list 생성
- SVC
( Scalable Video
Coding
) 지원
-> 비디오
영상을 여러 개의 화질로 전송.
받는 쪽에서 취사선택하여 재생
- MVC
( Multi view Video
Coding
) 지원
-> 다
시점 비디오 부호화 ( 다차원
뷰
)
- Clock
drift control for live sessions
- multiple
schemes 지원
- 같은
콘텐츠에 대한 여러 개의 base
URL
지원 가능
- Quality
metrics ( 품질
지표) 정보를
reporting sever 에
reporting
-> reporting
방법은 따로 정의 (
ISO/IEC 23009 스펙에 포함
되지 않음)
설정
트랙백
댓글
글
간단한 MP3 만들기
개발 이야기/DirectShow
2015. 6. 30. 18:12
=======================================================
준비물.LAV Filter -> https://code.google.com/p/lavfilters/downloads/list
=======================================================
1. 기본 메크로 등록.
사용 여부는 알아서...
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | #define CHECK_HR(hr, val) { hr = (val); if(FAILED(hr)) { goto done; } } HRESULT DShowPlayer::InitializeGraph() { HRESULT hRet = E_FAIL; . . . CHECK_HR(hRet, CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER, IID_IGraphBuilder, (void**)&m_pGB)); . . . return S_OK; done: return E_FAIL; } | cs |
필자는 이런식으로 사용...
2. 소스작성
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | HRESULT YourFunction() { HRESULT hRet = E_FAIL; CHECK_HR(hRet, CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER, IID_IGraphBuilder, (void**)&m_pGB)); CHECK_HR(hRet, m_pGB->QueryInterface(IID_IMediaControl, (void**)&m_pMC)); IBaseFilter *pSourceFilter = NULL; CHECK_HR(hRet, m_pGB->AddSourceFilter(m_strFilePath, NULL, &pSourceFilter)); if (pSourceFilter != NULL){ CHECK_HR(hRet, m_pGB->RenderFile(m_strFilePath, NULL)); } SAFE_RELEASE(pSourceFilter); if (m_pMC != NULL){ CHECK_HR(hRet, m_pMC->Run()); } return S_OK; done: return E_FAIL; } | cs |
끝!
무진장 간단하다!
'개발 이야기 > DirectShow' 카테고리의 다른 글
[COM] Create GUID (0) | 2015.06.17 |
---|
설정
트랙백
댓글
글
[MFC] dialog 상단 메뉴 만들기 + 이벤트 연결
개발 이야기/MFC
2015. 6. 18. 11:13
Step 1.
Resource View -> Add Resource 선택.
아래 그림에서 Menu 선택 후 New 선택.
IDR_MENU1 이 생성됨을 확인할 수 있다.
Step 2.
메뉴를 넣고 싶은 Dialog의 Properties 에서 Menu 에 방금 만들어진 IDR_MENU1 을 추가한다.
Step 3.
이벤트를 연결할 메뉴에서 오른쪽 버튼을 누른 후 Add Event Handler... 선택.
Step 4.
이벤트 네이밍 후 Add and Edit 버튼 선택하면 끝.
설정
트랙백
댓글
글
[COM] Create GUID
개발 이야기/DirectShow
2015. 6. 17. 20:03
마이크로소프트 컴포넌트 오브젝트 모델(COM)에서는 GUID를 구성 요소의 인터페이스들을 구별하기 위해 사용한다. 즉 서로 호환되지 않을 수 있는 두개의 컴포넌트가 동일한 인터페이스 이름을 사용하더라도, 각각의 인터페이스는 언제나 고유한 GUID를 갖기 때문에 구별할 수 있게 된다.
COM에서 사용하는 GUID는 다음과 같다:
- IID - 인터페이스 식별자
- CLSID - 클래스 식별자
- LIBID - 타입 라이브러리 식별자
- CATID - 카테고리 식별자 (이 식별자가 클래스에 있으면, 해당 클래스가 특정 클래스 카테고리에 속한다는 것을 표시한다)
CoCreateInstance 으로 객체 생성할 때, 첫번째 파라미터에 식별자가 들어간다.
사용자 정의 식별자를 만들 때에
visual studio 상단메뉴 Tools -> Create GUID 에서 생성하여 사용하면 된다.
'개발 이야기 > DirectShow' 카테고리의 다른 글
간단한 MP3 만들기 (0) | 2015.06.30 |
---|