[스트리밍] 4. 서비스 기본설정 – Darwin Streaming Server 2014-10-17

1. 최초 기본설정

>>> Setup Assistant MP3 Broadcast Password
darwin_step2
 * MP3 브로드캐스트 스트림을 받기 위해 비밀번호가 필요하다.
>>> Setup Assistant Secure Administration
darwin_step3
* 관리서버와 웹클라이언트간 통신시 암호화 사용여부이다. 스트리밍 서버에 SSL 인증서가 설치되어 있어야만 가능하다.
* SSL 보안을 사용하려면 체크한다.
>>> Setup Assistant Media Folder
darwin_step4
* 미디어 파일이 저장될 폴더를 지정한다.
>>> Setup Assistant Streaming on Port 80
darwin_step5
* 80포트로 스트리밍을 하게 되면 방화벽이 있더라도 영상을 재생할 수 있다.

2. 샘플영상 재생

playlist__
* 플레이어의 URL열기를 클릭하고 "http://{IP}/{파일명}"(80포트) 또는 "rtsp://{IP}/{파일명}"(기본포트)를 입력하고 확인을 누르면 세번째 그림과 같이 재생된다.

3. 기타설정

>>> 기타 기능에 관해서는 도움말을 제공하고 있다.
darwin_help
* 별도 문서
-- Darwin Streaming Server 메뉴얼 : [AboutDarwinStreamingServer.pdf]
-- 관리자 페이지 메뉴얼 : [QuickTimeStreamingSrvrAdminGuide.pdf]

[스트리밍] 3. 서비스 구축 – Darwin Streaming Server 2014-10-17

1. 스트리밍 서버의 종류

>>> 유료서비스
* Windows Media Server(Microsoft)
-- 지원포맷 : WMV, ASF 등
-- 지원코덱 : Windows Media
-- 지원OS : Windows
-- 프로토콜 : MMS, MSBD, RTSP, HTTP
* Flash Media Server(Adobe)
-- 지원코덱 : H.264, MPEG 등
-- 지원OS : Windows, Linux
-- 프로토콜 : HTTP, RTMP
* Wowza Streaming Server(Wowza) - http://www.wowza.com/
-- 지원코덱 : H.264
-- 지원OS : Windows, Linux, Mac
-- 프로토콜 : HTTP, RTMP/RTSP
* Silverlight Smooth Streaming(Microsoft)
-- 지원코덱 : H.264, VC-1
-- 지원OS : Windows
-- 프로토콜 : HTTP
-- adaptive Streaming 방식
>>> 무료서비스
* Darwin Streaming Server(Apple) - http://dss.macosforge.org/
-- 지원코덱 : H.264
-- 지원OS : Windows, Linux, Mac, Solaris 등
-- 프로토콜 : HTTP, RTSP
* red5(Open Source Project) - http://code.google.com/p/red5/
-- 지원코덱 : H.264
-- 지원OS : Windows, Linux
-- 프로토콜 : RTMP

2. 오픈소스를 활용한 스트리밍 서버 구축하기
> 검색결과 가장 인지도와 평가가 높은 Darwin Streaming Server를 활용하여 mp4동영상을 스트리밍하는 서버를 구축해보도록 하겠다.

>>> 시스템 구성
* OS : Linux CentOS 7.0
>>> 설치과정
# 사용자 및 그룹추가
groupadd qtss
adduser qtss -g qtss

# 폴더이동
cd /usr/local/src

# 설치파일 다운로드
wget http://server.opendocs.co.kr/DarwinStreamingSrvr6.0.3-Source.tar
wget http://server.opendocs.co.kr/dss-6.0.3.patch
wget http://server.opendocs.co.kr/dss-hh-20080728-1.patch

# 압축해제 & 패치실행
tar xvf DarwinStreamingSrvr6.0.3-Source.tar
patch -p0 < dss-6.0.3.patch
patch -p0 < dss-hh-20080728-1.patch

# 빌드
cd DarwinStreamingSrvr6.0.3-Source
./buildtarball

# 설치
cd DarwinStreamingSrvr-Linux
./Install

# 관리자 아이디 비밀번호입력
Please enter a new administrator user name: {아이디 입력}
Please enter a new administrator Password: {비밀번호 입력}
Re-enter the new administrator password: {비밀번호 확인}

# 외부접속시 포트허용
firewall-cmd --zone=public --permanent --add-port=554/tcp
firewall-cmd --zone=public --permanent --add-port=1220/tcp
firewall-cmd --reload

# 서버 시작시 자동실행
cd /etc/init.d
wget http://server.opendocs.co.kr/dssd
chmod 755 dssd
chkconfig dssd on
service dssd restart
>>> 접속확인
darwin_step1
* 설치시 입력하였던 아이디와 비번을 입력하면 로그인 가능하다.
* 설정값에 대해서는 다음번에 포스팅하도록 하자.

[스트리밍] 2. 관련기술 2014-10-16

스트리밍을 구현하는 3가지 기술

> 스트리밍은 크게 네트워크 기술, 압축 기술, QoS(Quality of Service)기술로 이루어지는데 이중 QoS기술은 무선 네트워크 서비스에서의 질적 향상을 위해 추가된 기술들을 말한다.

>>> 네트워크 기술 (데이터 전송 및 제어를 위한 프로토콜)
* RTP(Real-time Transport Protocol)
-- 음성이나 동영상 등의 데이터 스트림을 실시간으로 전달하기 위한 기본단위 전송 프로토콜
* RTCP(Real-time Transport Control Protocol)
-- RTP의 흐름 제어용 프로토콜
-- 세션 참여자들의 RTP 송수신시 QoS관련 정보(패킷지연, 패킷손실, 지터 등)을 주기적으로 교환하는 역할을 한다.
* RTSP(Real-time Streaming Protocol)
-- IETF(Internet Engineering Task Force)에서 만든 국제표준 멀티미디어 전송 프로토콜
* RTMP(Real-time Messaging Protocol)
-- Adobe에서 만든 멀티미디어 전송 프로토콜
* MMS(Microsoft Media Server)
-- Microsoft에서 만든 멀티미디어 전송 프로토콜
>>> 압축기술 (codec 기술) : 멀티미디어 데이터를 효과적으로 압축(Encode)하고 재생을 위해 해독(Decode)하기 위한 기술
* WMV(Windows Media Video) / WMA(Windows Media Audio)
-- Microsoft에서 인터넷 전송에 적합하게 개발된 비디오 / 오디오 코덱
-- 낮은 bitrate에서도 영상손실이 적고 스트리밍이 가능하다.
* H.264/MPEG-4 AVC(Advanced Video Coding)
-- ITU-T의 비디오 코딩 전문가 그룹(Video Coding Experts Group, VCEG)과 ISO/IEC의 동화상 전문가 그룹(Moving Picture Experts Group, MPEG)이 공동으로 조인트 비디오 팀(Joint Video Team, JVT)을 구성하고 표준화를 진행한 결과물로 나왔다.
-- 고선명 비디오의 녹화, 압축, 배포를 위한 가장 일반적인 포맷 중 하나로 매운 높은 압축률을 자랑한다.
* MPEG-2-TS(Transport Stream)
-- 디지털 영상과 소리를 다중화하고 출력을 동기화하기 위해 만들어진 시스템으로 신뢰할 수 없는 매체의 오류 정정기능을 제공한다.
* 기타 무수히 많은 압축기술이 새로이 개발되고 진보하고 있다.
>>> 압축기술의 구분
* 손실 코덱
-- 영상이나 음향정보의 시공간적 연관성을 이용해 사용자들이 지각하지 못하는 수준에서 데이터를 손실시키고 압축한다.
ex) 영상에서 인접한 두 프레임은 거의 유사하므로 다음 프레임의 움직임을 예측하여 시간의 중복성을 제거한다.
* 비손실 코덱
-- 압축된 데이터가 원본 스트림의 모든 정보를 보유하고 있다.