인터넷방송

스트리밍


상 식&지식편에서는 우선 인터넷상의 방송과 동의어로도 곧잘 사용되는 “스트리밍”에 대해 알아본다 인터넷에서 파일이 작은 조각으로 나뉘어져 연속적으로 전송되는 것을 의미하는 스트리밍이 어떻게 탄생했고 종류로는 무엇이 있는지 살펴보자.

인터넷방송을 즐긴다는 것은 곧 스트리밍을 즐긴다는 의미와 상통하는데 이 스트리밍이라는 용어가 최근 부쩍 많이 사용되고 있다.
실제로는 자사 웹사이트에 스트리밍을 채용한 기업은 미국의 경우 지난 해에 비해 올해 17%증가했고 내년에는 47%증가할 것이라고 한다.
또한 스트리밍을 지원하는 프로그램인 리얼플레이어는 매일 10만회에 이르는 다운로드 횟수를 자랑하고 있다고 한다.
그렇다면 과연 스트리밍이란 무엇인가?여기서는 인터넷방송에 있어서 반드시 알아야 할 상식 또는 지식 중하나로 스트리밍에 대해 살펴보기로 한다.
스트리밍이란? 인터넷 방송에 있어서 스트리밍이라는 개념은 리얼네트웍사가 개발한 스트리밍 멀티미디어라는 기술에서 유래하는데, 이 기술의 원리는 아무리 큰 대용량의 멀티미디어 자료라도 이를 개별적으로 실행할 수 있는 1~2초분량의 작은 조각으로 나눠 시냇물이 흐르듯이 연속적으로 전송함으로써 이를 수신하는 사람은 전체자료가 모두 수신될때까지 기다릴 필요없이 즉석해서 각 조각의 파일들을 재생할 수 있도록 하는 것이다.
이는 마치 TV를 켜자마자 다양한 방송을 시청할 수 있는 것과 같은 효과를 제공한다고 해서 “인터넷방송”이라는 이름을 얻게되었다 그래서 현재 스트리밍이라는 용어는 인터넷상에서의 방송을 의미하며, 웹상에서 미이어 파일을 보는 것을 뜻하게 된다.
스트리밍의 기원과 표준 프로토콜 사실 스트리밍의 원조라고 할 수 있는 것은 뜻밖에도 이메일이다.
이메일 뉴스레터를 생각해보자 이것은 전송해달라고 요구한 것도 아니고 이시간에 도착하도록 예약해놓은 것도 아님에도 불구하고 전송되어 있다.
바로 푸시기술을 이용한것이데 그렇다면 푸시기술이 스트리밍과 무슨 관계가 이있는가?
왜냐하면 푸시기술은 동시다발적으로 미디어나 컨텐츠를 인터넷으로 방송한다는 뜻의 “브로드캐스팅”(Broadcasting)을 의 미하기 때문이다.
따 라서 스트리밍은 브로드캐스팅의 한종류라고 할 수 있다. 한편 스트리밍은 기술적으로 유니캐스트(Unicast)와 멀티캐스트(Multicast)로 방식으로는 주문형(On Demand)과 라이브(Live)로 나뉘게 된다. 그렇다면 스트리밍은 어떤 프로토콜(일종의 계약)을 사용해 유니캐스트와 멀티캐스트를 행할까?
스트리밍 기술이 사용하는 표준 프로토콜은 RTSP(Real Time Streaming Protocol)이며, 이 규격은 지난 “98년, 넷스케이프사와 리얼네트웍사, 컬럼비아대학교가 공동 개발해 IETF(Internet Engineering)에 표준으로 등록한 것이다 참고로 RTSP프로토콜에 대해 좀더 자세하게 알고 싶다면 리얼네트웍사의 http://www.realnetworks.com/devzone/library/rtsp/index.html 를 참고하도록 한다.
한 편 애플은 지난”97년 퀵타임 TV라는 프로젝트명으로 스트리밍에 대한 연구를 진행하였으나 얼마 지나지 않아 프로젝트명으로 스트리밍에 대한 연구를 진행했었으나 얼마 지나지 않아 프로젝트를 중지해버렸고, 리얼네트웍사는 RTPS를 개발하기전까지는 PNM이라는 프로토콜을 사용하였다.
RTSP가 표준이라면 퀵타임이나 윈도우즈 미디어 플레이어도 이규격을 사용할까? 물론 그렇다 퀵타임이나 윈도우즈미디어 플레이어의 액티브 스트리밍 포맷(.asf)은 클라이언트와 서버간의 상호작용을 RTPS에 의존해서 구현하고 있다.


H.323
RTPS와 H.323dms ahen RTP(Real Time Transport Protocol)프로토콜을 사용하므로 둘다 RTP의 하위개념이라고 볼수 있다.
이 중 H.323은 특히 소규모 그룹의 화상회의 에서 주로 사용되는데 RTPS에서처럼‘정지’와 ‘녹화, 재생’같은 비디오 명령은 지원하지 않는다.
참고로 H.323은 ITU(International Telecommuncations Union)에서 인정한 표준이다.

스트리밍의 종류 앞서 스트리밍 방송은 방식으로는 주문형과 라이브로 나뉘고, 기술적으로는 유니캐스터와 멀티캐스터로 구분된다고 했다.
주문형 스트리밍과 라이브 스트리밍 흔히 접할 수 있는 인터넷방송은 두가지다.
첫 번째 주문형 스트리밍, 즉 미리 준비되어있는 미디어 파일을 스트리밍해 보는 방식으로 애플의 아이맥 광고 사이트(http://apple.com/imac/theater.html)에 가보면 주문형 스트리밍 방식의 광고 무비들을 볼수 있다.
이 무비들을 보기 위해서는 우선 해당파일을 클릭한 후 그 파일의 구동신호를 받을때까지 기다려야 한다.
물론 모두 받기전에 무비가 실행되기도 하는데 그것은 무비가 끝나는 시간에 맞춰서 실행시간을 조정해
놓았기 때문이다.
이 방식은 전화모뎀을 사용하건 ADSL을 사용하건 상관없이 미리 준비되어있는 파일을 보는 것이기 때문에 영상의 질에는 변함이 없다.
단 회선 속도의 차이로 인해 다운로드 시간이 달라질 수는 있다.
두번째 방식은 바로 라이브 스트리밍이다.
이방식은 해당하는 곳을 클릭하면 곧바로 스트리밍을 지원하는 플레이어(퀵타임 플레이어, 리얼 플레이어, 윈도우즈 미디어 플레이어 등) 가 나타나면 영상 또는 음향을 보내주게 된다.
이 방식에서는 되도록 빠른 통신선을 갖고 있는 것이 중요한데 전송속도가 음질이나 화질에 큰 영향을 주기 때문이다.
만약 데이터가 필요 이상으로 많이 들어오게 되면 일시적으로 버퍼에 저장되며 데이터가 필요 한것보다 적게 들어오게 되면 음질이나 화질이 떨어진다.
유니캐스트와 멀티캐스트 스트리밍은 기술적으로 유니캐스트와 멀티캐스트로 나뉜다.
우 선 유니캐스트와 멀티캐스트의 정의에 대해 알아보자. 유니캐스트는 정보를 하나의 IP에 보내는 방식이다 (참고로 브로드캐스팅은 불특정 다수에게 동시에 컨텐츠를 보내는 것이고, 멀티캐스트는 정해진 그룹에게 동시에 컨텐츠를 보내는 것이다) 얼핏 들어보면 현재의 스트리밍 방식은 모두 멀티캐스트가 아닌가 하는 생각이 들겠지만 아직까지 주류를 이루고 있는 스트리밍들은 모두 유니캐스트방식을 취하고 있다.
구체적으로 유니캐스트의 방식은 이러하다 어떤 사람이 ‘A’라고 하는 방송을 보고 싶어한다고 가정했을때, 웹페이지에서 ‘A’방송에 대한 링크를 클릭하면 클릭한 그 사람에레 해당 방송 컨텐츠가 전송된다.
또 다른 사람이 같은 시간에 같은 ‘A’방송을 보려고 한다면 또다시 ‘A’방송은 그 사람에게 1대1로 전송된다. 그렇다면 그 좋다는 멀티캐스트가 왜 아직 실행이 안되는 것일까? 멀티캐스트 자체는 퀵타임과 리얼 윈도우즈 미디어 플레이어가 모두 지원하고 있지만 소프트웨어의 지원만으로는 이용하기가 힘들다.
현재의 인터넷 하부구조와 하드웨어들이 대다수 유니캐스트쪽에 맞춰져 있기 때문에 라우터와 허브, 게이트웨이 등의 네트웍 하드웨어들도 멀티캐스트를 지원해야 비로소 진정한 멀티캐스트 스트리밍을 할 수 있는 것이다.

인터넷방송

코 덱

오디오든 비디오든 간에 인터넷 방송용 컨텐츠는 방송으로 내보낼수 있는 적합한 형태로 가공해야 하는데, 그 과정에서 특히 중요한것이 코덱이다 스트리밍을 보는 사람 입장에서는 같은 미디어 파일이라도 코덱에 따라 그방송을 볼수 있기도 하고 볼수 없게 되기도 하기 때문이다.
그럼 여기서는 코덱에 대해 살펴보자.

인터넷방송국 구축을 위한 기본적인 준비물, 즉 하드웨어와 소프트웨어를 갖췄다면 이제 방송국의 컨셉에 맞는 컨텐츠를 준비해야 한다.
방송용 컨텐츠는 크게 음성(Voice)와 음악(Music), 무비 또는 오디오와 비디오로 나뉜다.
이러한 컨텐츠자체의 제작과정은 기존 미디어의 그것과 다름없겠지만 이 파일들을 어떤 형태로 준비해둬야 방송에 적합할지에 대해서는 좀더 살펴 봐야할 것이다.
먼저 방송에서 사용되는 컨텐츠의 분류에 따라 어떠한 파일형식과 기술적인 내용들을 갖춰야 하는지를 살펴보자.
인터넷방송국에서 사용되는 컨텐츠는 앞서 말했듯이 크게 3가지 (음성/음악/무비)로 구분해서 생각할 수 있다. 우선 음성/음악과 같은 오디오 부분에서의 파일형식은 큰 문제가 없을 것이다.
파일형식및 규격이 거의 몇가지 형태로 통일되는 추세를 보이고 있는데다가 실제 압축코덱이나 규격등에 있어서 맥이나 PC간 의 플랫폼 문제가 거의 없기 때문이다.
하지만 무비의 경우에는 비디오 코덱과 압축 하드웨어 압축방식 등 다양한 형태가 난립하고 있어 여러가지 면에서 고려해야 할 부분이 많다물론 사운드의 경우도 파일을 만든 후 사용 대역폭을 고려해줘야 하는것은 비디오와 동일하다.
참고로 퀵타임에서 지원하는 파일포맷을 확인하려면 퀵타임의 Export메뉴의 대화상자에서 파일지원부분을 보면 된다.
그럼 여기에서는 코덱이 무엇인지 알아본후 오디오와 비디오에서의 구체적인 코덱에 대해 살펴보자.

코덱이란? 코덱(Codec)은 비디오나 오디오 파일을 압축하고 해제하는 방식을 이컫는 용어다.
코더와 디코더의 합성어로 코더는 정보를 부호화하고 디코더는 부호화된 정보를 원래의형태로 복원해주는 역할을 담당한다.
압 축유틸리티와 같이 파일을 압축하고 해제하는 역할을 하는 것이 코덱이라고 생각하면 이해하기 쉬울것이다. 특히 비디오의 경우 매우 다양한 형태의 코덱이 사용되고 있는데 인텔의 Indeo와 MS의 RLE, 레디우스에서 개발한 CinePak그리고 최근 무비와 사운드에 가장 많이 사용되고 있는 MPEG파일 형식을 사용하는 규격등이 있다.
그런데 이러한 코덱의 차이로 인해 사용자가 자신의 시스템에 서비스를 볼 수 없는 경우도 생긴다.
따라서 가자 범용적으로 사용되는 코덱을 사용하는 것이 좋다 맥사용자의 경우 대부분 퀵타임을 기본으로 설치하고 있으므로 퀵타임에서 제공하는 코덱을 사용할 경우 큰 무리가 없다.
그러나 맥 뿐만 아니라 다른 플랫폼도 대상으로 한다면 보다 범용적인 코덱을 사용하는 것이 좋다.
오디오 파일 방송을 위한 오디오 파일은 크게 음성과 음악으로 구분할 수 있는데 각 내용에 적합한 파일 포맷 또는 파일의 질을 고려해서 작업해야 한다.
물론 사용자의 대역폭을 고려해야 한다는 점도 잊어서는 안된다.
컨 텐츠 준비를 위한 오디오 파일 제작시 기본적으로 aiff나 퀵타임의 mov또는 wav파일을 사용할 수 있으나 맥에서 운영되는 파일은 퀵타임 포맷을 사용하는 것이 좋다사실 오디오 파일을 준비하는데 있어서는 파일의 형태보다 어떠한 코덱을 사용하는가가 더 중요한 요소이다.
코덱은 컨텐츠의 내용뿐만 아니라 사용자의 인터넷 회선 속도에도 큰영향을 주게 되므로 정확한 코덱의 용도와 사용자의 컴퓨터 사용환경에 대한 충분한 이해가 있어야 한다.
예 를들어 28.8Kbps의 모뎀 사용자를 대상으로 고음질을 송출하는 것은 그 사용자가 들을수 없는 사운드를 내보내는 것이나 마찬가지 이다. 그래서 대부분 인터넷방송국의 경우 사용자의 대역폭에 맞는 여러개의 컨텐츠를 제공해 이러한 문제를 해결하고 있다.
즉 저속의 사용자부터 고속 케이블모뎀 ADSL,LAN 사용자에 이르기까지 다양한 사용자층을 고려한 컨텐츠를 제공하는 것이다.
방 송용 오디오 파일을 준비하는 전체과정을 정리하면 일단 오디오 파일을 사운드 에딧이나 레코더등을 이용해 퀵타임으로 제작해 어떤 코덱을 사용할 것인지를 결정한 후 사용자의 회선 속도에 맞춘 몇 가지 데이터를 준비한다퀵타임의 프로버전에서 사운드 세팅 부분을 통해 퀵타임에서 제공하는 코덱과 각 코덱의 다양한 옵션을 선택할 수 있다.
추천 오디어 코덱 퀵타임에서 제공하는 오디어 코덱으로 24-bit Integer와32-bit Floating Point, 64-bit Floating Point, Alaw 2:1 , IMA 4:1, MACE 3:1, MACE 6:1, QDesign Music 2, Qualcomm Purevoice, μLaw2:1등이 있다.
이 가운데 맥에서 실시간 오디오 스트리밍을 위한 파일 포맷에 사용되는 코덱은 크게 3가지가 있다.
바 로 Qualcomm Purevoice와 QDesign Music, IMA 가 그것이다 앞서도 말했듯이 컨텐츠의 용도가에 맞춰 적절하게 코덱을 선택해야 하므로, 여기서는 이 3가지 코덱들이 어떤 개별적인 특징과 압축률 등을 갖고 있는지 살펴보기로 한다.
- Qualcomm Purevoice: 이것은 음성 전용 코덱으로 낮은 주파수 대역의 음성에 적합하다 즉 초당 6.7Kbits/8Khz의 저음질/고압축을 지원하는데 전화회선의 음질이 6Khz정도임을 감안하면 이 코덱은 음성만을 이용한 서비스에 알맞다고 볼수 있다.
CPU에 부담이 적어 저 사양의 시스템에서도 부담없이 사용할 수 있으며 데이터의 전송률을 특별히 설정할 필요 없이 데이터의 압축률만 설정하면 된다.
전반적으로 뛰어난 음질은 안니지만 들어줄만 하다
- QDesign Music: 이것은 이름처럼 음악을 위한 코덱으로 Qualcomm Purevoice에 비래 좀더 고사양의 컴퓨터를 요구하며 비교적 우수한 음질을 제공한다 비디오와 함께 스트리밍할 경우에는 CPU에 부하가 많이 걸리므로 주의 를 요하고, 가능한 한 오디오 스트리밍만 사용하도록 한다.
- IMA이것은 위의 두 코덱에 비하면 한 단계아래에 있는 오래된 기술을 바탕으로 한 코덱이다.
예전에 시디롬용 사운드 제작에 많이 사용되었고, 그다지 고사양의 컴퓨터를 요구하지 않으며 안정성도 높다 4:1의 단일 비율로만 (압축 효율이 그다지 높지 않다) 압축할 수 있는 등 간단한 것이 특징이다.

비디오 파일 비디오 방송용 파일을 준비할 때는 오디오에 비해 몇가지 더 주의해야 할 점이 있다.
퀵타임에서 제공되는 코덱을 사용하면 압축문제는 크게 신경쓸 것이 없지만 무비를 보여주기위해서는 오디오와 달리 초당 프레임수나 프레임의 크기 코덱을 사용자의 회선 속도에 맞게 설정해 줘야 한다.
스트리밍을 위한 무비 포맷은 퀵타임을 이용할 경우 mov파일 형식을 사용하면 된다.
그러나 PC의 경우 MS의asf포맷이 스트리밍을 위한 파일 포맷의 표준으로 자리잡고 있는데 이 파일 형식은 압축률이 높고 스트리밍도 비교적 안정적이어서 오디오와 비디오를 도시에 서비스하는 경우에 매우 유용하다.
개 인적인 생각이지만 퀵타임 스트리밍을 이용한 방송과 윈도우즈 미디어 플레이어 스트리밍 기술을 이용한 방송과의 단적인 차이를 들라면 오디오 부분과 전체적인 화면의 스트리밍은 퀵타임이 다소 뒤지고 화질면에서 퀵타임이 월등히 뛰어나다고 본다.
물론 어떤 형태의 방송 포맷을 선택하든지 가장 중요한 요소는 사용자의 쇠선 속도로, 이것이 전체 방송의 질을 좌우하게 되므로 서비스를 제공하는 측에서는 사용자의 회선 속도를 충분히 고려해야 한다.
또한 라이브 방송이 아닌 경우라면 영상파일을 압축하여 퀵타임(mov)형태로 서비스를 제공할 수 있지만, 라이브 방송이라면 실시간 코덱을 사용해야 한다.
실시간 코덱으로는 표준 포맷으로 H.263이, 최근 인기를 얻고 있는 포맷으로 소렌슨 비디오 코덱이 주로 이용된다. 두 가지 코덱 모두 실시간에 높은 압축률을 제공하고 프레임률을 자유롭게 조정할 수 있다.
추천비디오 코덱 비디오 코덱으로는 Animation과 BMP, Cinepak, Component Video, DV-NTSC, DV-PAL, Graphics, H.261, H263, Intel Indeo?Video R3.2, Intel Raw, Motion JPEG A, Motion JPEG B, None, Photo - JPEG, Planar RGB, PNG, Sorenson Video, TGA, TIFF, Video가 있는데, 이 가운데 가장 많이 사용되고 있는 실시간 비디오 코덱은 소렌슨 비디오와 H.263이다.
2가지 코덱에 대해 자세하게 살펴본다.
소렌슨 비디오 : 여러 대역폭에서 안정적으로 스트리밍을 지원하지만, 낮은 회선 속도에서 동작이 많은 무비의 경우 화질이 떨어지는 단점이 있고 고성능의 CPU를 필요로 하는 점이 아쉽다.
- H.263 : 가장 보편적인 비디오 코덱 형식으로 엔코딩이 쉽고 소렌슨 비디오에 비해서 다소 저사양의 CPU를 필요로 한다. 그러나 전체적인 화질면에서는 소렌슨 비디오 코덱보다 떨어진다.
하지만 퀵타임에서 기본으로 제공하는 실시간 스트리밍 코덱으로, 안정성과 화질 등 모든 면을 고려할 때 가장 무난한 비디오 코덱이라고 할 수 있다.
무비의 화질 지정하기 퀵타임 무비의 화질은 Quality 항목의 슬라이드 바를 움직여 조절한다.
Best로 지정하면 최고의 화질을 보이지만 압축률이 낮으며, Least로 지정하면 화질은 좋지 않지만 압축률은 최고가 된다.
화질 지정 방식으로는 Spatial과 Temporal 방식이 있다.
Spatial 방식은 모든 프레임을 일일이 압축하는 것으로 Quality 항목의 슬라이드 바로 화질을 조절하는데, 모든 코덱은 Spatial 화질성을 기본으로 지원한다.
Temporal 은 키프레임과 키프레임 사이의 모든 프레임에 적용되는 화질을 설정하는 것으로, 키프레임을 설정하고 마우스 포인터를 Quality 항목안에 위치시킨 후 option을 누르면 항목의 이름이 Temporal로 바뀌면서 화질을 지정할 수 있는 상태가 된다.
프레임률 지정하기 프레임률은 Motion 항목에서 설정하는데, 이 곳의 프레임 팝업 메뉴에는 Best로 지정하면 컴퓨터가 그무비에 맞는 최적의 프레임률을 지정한다예를 들어 방송용 무비를 만들 경우 NTSC는 30프레임, PAL은 25프레임으로 지정한다.
무비를 부드럽게 재생하려면 적당한 프레임수와 프레임크기를 설정해야 한다.
작 은크기의 프레임을 갖고 있는 무비는 프레임수가 적어도 부드러운 이미지를 보여줄 수 있다예를 들어 프레임수가 160×120픽셀과같이 작은 프레임의 무비라면 프레임수가 8~10정도라도 부드럽게 재생되지만 320×240크기의 무비는 15프레임 이상, 640×480크기의 무비는 24프레임 이상이 되어야 부드러운 움직임을 보여줄 수 있다.
데이터전송률지정하기 데이터전송률은 Motion항목의 Limit data rate to입력란에 원하는 값을 입력함으로써 지정할 수 있다.
데이터 전송률을 지정할 수 있는 코텍은 배포용 코덱인 H,263과 Cinepak, Soremson Video 등이다.
무비를 재생할 때는 하드디스크로부터 메모리로 데이터를 로드하는 시간과 압축을 해제하는 비디오 메모리로 전송하는 처리시간을 감안해 데이터전송률을 저장장치의 전송률보다 약간 여유있게 준다.
때 로 데이터의 전송률이 낮고 프레임 크기도 작더라도 무비의 재생이 부드럽게 이뤄지지 않는 경우가 있는데, 이런 현상은 압축해제 시간이 빠른 코덱을 사용하면 풀사이즈의 무비라도 데이터전송률을 낮게 해 맥에서 부드럽게 재생할 수 있다.
현재 맥에서 퀵타임 스트리밍을 이용한 인터넷방송서비스는 국내에서는 많이 볼 수 없지만 외국의 경우 유수의 연애/오락/영화사이트등에서 퀵타임을 통한 인터넷방송을 제공하고 있다.
특 히 영화 관련 사이트의 경우 예전에 리얼 플레이어나 윈도우즈 미디어 플레이어를 통해 볼 수 있었던 화질과는 비교할 수 없을 정도로 좋은 화질의 퀵타임방송을 볼수 있는데 퀵타임의 우수한 화질은 전문가의 시각이 아니더라도 충분히 알 수 있을 정도이다.
아무튼 지금까지 소개한 코덱에 대한 지식을 기반으로 자신의 컨텐츠를 가능한 한 많은 사람들이 원할하게 이용할 수 있도록 만들어 보도록 한다


출처 - http://daummatrix.tistory.com/71

'Project > Streaming Server' 카테고리의 다른 글

H.264 자료 1  (0) 2012.06.16
멀티미디어 압축 형식  (0) 2012.06.13
Streaming - iptv  (0) 2012.06.11
컨테이너 포맷  (0) 2012.06.11
Codec 개요  (0) 2012.06.11
Posted by linuxism
,