[Silverlight] Adaptive Streaming - 스트리밍 서비스의 확장

안녕하세요. 준서아빠 김대우 입니다.
이번 MIX08에서 발표된 내용으로 준서아빠가 두번째로 좋아하는 내용인
Silverlight의 미디어 서비스 향상에 대해서 이야기 드릴 시간이 되었네요. 그럼 시작해 보도록 할까요?

흠... 잠시 자신이 비디오 서비스를 제공하는 회사의 사장님이라고 생각해 보시죠. ^_^;;;

문제 - 사용자의 네트워크 환경과 시스템 사양은 모두 제각각 입니다.
네트워크를 살펴 보자면, 이사람이 게임방이나 회사의 빠른 고속 네트워크를 사용할지
최근 각광받고 있는 모바일이나 와이브로와 같은 방식의 저속 네트워크를 사용할지
심지어는 모뎀으로 접근할지 알수 없지요.
사용자의 네트워크 환경은 모두 다르다는 겁니다.

아마 웹에서 이런 선택 문구를 종종 보셨을 겁니다. "100K / 300K / 500K / 1M 중에서 선택하세요."
우리야 무슨말인지 잘 알고 있지만, 일반 사용자라면 어떻게 이해할까요? 난감할겁니다. 헐~

네트워크 대역폭은 그렇다 치고...
영상을 소비스하는 클라이언트의 CPU와 같은 시스템 성능적인 환경은 어떨까요?
준서아빠처럼 고물 노트북을 버벅대며 돌리는 사람부터 3D 게임을 돌리기 위한 최고사양의
CPU와 시스템 환경을 사용하는 분들도 계실겁니다.
그렇다면 문제로, 저사양의 PC환경에서 HD급 영상을 돌리면 어떻게 될까요?
아니, 영상을 보는 중에 CPU를 많이 사용하는 작업이 돌면 어떻게 될까요?

더 큰 문제로, 일반적인 사용자는 자신의 PC 사양에 대해 잘 알지도 못한다는 겁니다.
좋은 사양의 PC에서도 백신소프트웨어나 다운로드 작업등의 멀티태스킹 작업으로 CPU사용량 변화는
계속 발생하게 되지요.

- 버퍼링... 버퍼링... 버퍼링...스... ^_^;;;

당연히 영상이 잘 안보이니 우리회사의 영상 서비스에 대해 피드백이 좋을리 없을겁니다.
이를 모두 사용자의 문제로 돌려 버리기엔 너무 무책임하겠죠.(그전에 회사 망할지도...)

사용자마다 다 틀린 네트워크 대역폭과 CPU와 같은 환경 - 쉽지 않은 문제 입니다.해결 방안은 없을까요?
사용자의 네트워크의 상태와 클라이언트 시스템의 CPU를 자동으로 파악해 영상의 Bitrate를
자동으로 조절하는 스트리밍 기술이 마련된다면 어떨까요?

이런 기능과 환경이 마련된다면, 어떤 서비스가 가능할까요?
- 해결은, Adaptive Streaming 입니다. 직접 확인해 보시죠.

Windows 2008의 미디어 서비스(Windows Media Service)가
Silverlight과 연계되는 Adaptive Streaming 서비스를 제공합니다.

1. 개발자는 코드로 제어할 필요가 없습니다. - Adaptive하게 자동으로 Bitrate이 스위치 됩니다.
2. MIX08 발표로, Move Network과 Silverlight-Adaptive Streaming을 이용한 파트너쉽 체결
3. 성능과 총 소유 비용(TCO) 측면의 우수성 / Industry 리딩 솔루션 입니다.
4. Silverlight 스트리밍 미디어 서비스에 그대로 적용 가능합니다.

Windows Server 2008의 Windows Media Service와 Silverlight을 이용하시면
최상의 미디어 서비스를 사용자에게 제공 가능합니다.

아울러, 미디어 인코딩에서는 Expression Encoder를 이용해 범용적인 환경부터
엔터프라이즈 인코딩 환경 역시 손쉬운 구현이 가능합니다.

Adaptive Streaming, 단순히 네트워크 환경 뿐 아니라, 사용자의 CPU 사용량과도 연계되어
최상의 스트리밍 미디어 서비스를 구현 가능한 기술입니다.

스트리밍 미디어 외에 UCC서비스로 알려진 영상 서비스에 사용되는 Progressive Download 모드 역시 큰 발전이 있었는데요, 바로 다음 포스트에서 상세히 풀어 보도록 하겠습니다.

(아, 알고 계시는지요? Silverlight 2부터는 EMBED태그나 OBJECT 태그 사용에
아무 문제가 없습니다. ^_^// )

PS. MBR, 인텔리젼트 스트리밍, 타미디어 서비스와의 내용도 시간되면 천천히 풀어보도록 하지요.
아마도, Expression Encoder와 인코딩에 대한 속 깊은 이야기가 될 것 같네요. ^_^

감사합니다.