3. Contents part2
1.분석
1.폴더 구조
2.App 만들기
3.Conf Directory
4.[wowza ip]:8086
5.*.stream
6.JMX
2.Getting Started
2.단일 서버 세팅
3.분산 서버 세팅
3.테스트
Thursday, May 30, 13
4. 발표자 소개
이름 : 한진수
나이 : 23 (1991)
주말에 하는 일 : 카페가기, 자전거타기
특징 : 안산 토박이, 회사 막내
Thursday, May 30, 13
6. 소개 - 이름
Wowza Media System으로 개발 된 통합된 Server Software이다.
Live Streaming이나 On-Demand Video, Audio를 이용하여,
공인 & 내부 IP를 통하여 Laptop, Desktop, Mobile devices 등에서 볼 수 있다.
Java로 개발하였기에 Linux, Mac OS X, Unix, Windows에서 이용 가능하다.
다양한 프로토콜을 지원하여서 여러 기종에서 시청이 가능하다.
Thursday, May 30, 13
7. 소개 - 장점
타 제품에 비해 노력이 들어갈 부분이 적다
JMX(Java Management eXtension)을 통한 시각적인 PC상태 관리가 가능하다.
Web상으로도 간략한 정보가 제공되어 현재 커넥션 수 등을 체크 가능하다
다양한 AddOn(부가기능)이 제공된다
타 제품에 비해 지원되는 기종 & 프로토콜이 많고, 성능이 우수하다
쉬운 확장(Scale Up)이 가능하다
Thursday, May 30, 13
8. 소개 - 단점
가격이 비싸다
다양한 AddOn(부가기능)도 유료다.
Thursday, May 30, 13
9. 소개 - 비용
영구 라이센스
995달러 한국 돈 약 110만원
AddOn구매시 추가 금액
한 달 라이센스
55달러 한국 돈 약 6.5만원
AddOn도 한 달 단위로 요금 지불.
Thursday, May 30, 13
43. 비교
Wowza Red5
가격 $995 Free ( Open Source )
지원 OS Windows, OS X, Linux Windows, Ubuntu(Linux), OS X
플랫폼
Flash (RTMP), iPhone ( HTTP Streaming),
Silvelight, QuickTime (RTSP), IPTV(MPEG-TS) Flash (RTMP)
언어 Java Java
Thursday, May 30, 13
55. 분석 - 폴더구조
documentation
문서들이 저장되어있다.
이 문서는 온라인에서도 다운로드 가능하다.
examples
다양한 예제들이 있다.
예제 플레이어로 자주 쓰곤한다.
Thursday, May 30, 13
56. 분석 - 폴더구조
documentation
문서들이 저장되어있다.
이 문서는 온라인에서도 다운로드 가능하다.
examples
다양한 예제들이 있다.
예제 플레이어로 자주 쓰곤한다.
logs
Access로그와 Error로그가 기록된다.
어떤 문제가 발생했을 때에는 여기부터 확인
한다.
Thursday, May 30, 13
57. 분석 - App 만들기
[install-directory]/application/
만들고 싶은 App이름으로 디렉토리를 하나 만든다. 이름을 AppName이라고 생각합니다.
[install-directory]/conf/Application.xml
application.xml은 template이라고 봐도 좋다. 위치를 눈에 익힐 것.
[install-directory]/conf/AppName/Application.xml
conf 안에 AppName이라는 디렉토리를 만들고,
위에 쓴 Application.xml을 복사하여 디렉토리 안에 붙여넣는다.
Thursday, May 30, 13
58. 분석 - App 만들기
[install-directory]/application/
만들고 싶은 App이름으로 디렉토리를 하나 만든다. 이름을 AppName이라고 생각합니다.
[install-directory]/conf/Application.xml
application.xml은 template이라고 봐도 좋다. 위치를 눈에 익힐 것.
[install-directory]/conf/AppName/Application.xml
conf 안에 AppName이라는 디렉토리를 만들고,
위에 쓴 Application.xml을 복사하여 디렉토리 안에 붙여넣는다.
끝
Thursday, May 30, 13
60. 분석 - Conf Directory
Directories
App 만들 때, 만든 디렉토리들이다.
각각의 Application.xml을 갖고 있다.
Thursday, May 30, 13
61. 분석 - Conf Directory
Directories
App 만들 때, 만든 디렉토리들이다.
각각의 Application.xml을 갖고 있다.
Application.xml
App을 만들 때, 참고가 되는 xml 파일
Thursday, May 30, 13
62. 분석 - Conf Directory
Directories
App 만들 때, 만든 디렉토리들이다.
각각의 Application.xml을 갖고 있다.
Application.xml
App을 만들 때, 참고가 되는 xml 파일
admin.password
admin과 password를 입력하는 곳이다. 딱
히 권한이 없어서 자유롭게 지우고 삭제 가능
Thursday, May 30, 13
63. 분석 - Conf Directory
Directories
App 만들 때, 만든 디렉토리들이다.
각각의 Application.xml을 갖고 있다.
Application.xml
App을 만들 때, 참고가 되는 xml 파일
admin.password
admin과 password를 입력하는 곳이다. 딱
히 권한이 없어서 자유롭게 지우고 삭제 가능
그 외 등등..
라이센스를 설정, 서버 설정, HTTPStreamer
설정 등등.. 각종 설정이 있다.
Thursday, May 30, 13
64. 분석 - Conf Directory - Application.xml
Stream Types
Stream>StreamType 에 존재
- default : H.264 / AAC
- record : 비디오 레코딩
- live : 비디오 컨텐츠 재생
- live-lowlatency
- live-record : live + record
- shoutcast : MP3 or AAC
- shoutcast-record : shout + record
- liverepeater-origin : 스트림 전달
- liverepeater-edge
- rtp-live : RTSP/RTP, TS restream
- rtp-live-record : rtp-live + record
Thursday, May 30, 13
65. 분석 - *.stream file
- JSON 사용
{
uri : String
streamTimeout : Integer
reconnectionWaitTime : Integer
}
- uri
특정한 uri 를 지정합니다 ex) “udp://192.168.1.85”
- streamTimeout
스트림이 연결되기 까지 기다립니다. 단위 ms ex) 5000
- reconnectionWaitTime
재연결을 시도하는 사이에 기다리는 초입니다. 단위 ms ex) 5000
Thursday, May 30, 13
66. 분석 - *.stream file
[install-directory]/content/
이 곳에 위치해야 합니다.
Thursday, May 30, 13
67. 분석 - PORT 8086
[wowza ip]:8086
Thursday, May 30, 13
68. 분석 - PORT 8086
[wowza ip]:8086
- /streammanager
- /connectioninfo
- /connectioncounts
- /serverinfo
server stream 구동
Server에 접속한 Client의 수
Connection 상태나 스트림 상세정보 등을 XML로 제공
서버 실행시간, 전체 커넥션 상태 등을 XML로 제공
Thursday, May 30, 13
69. 분석 - PORT 8086
[wowza ip]:8086
- /streammanager
- /connectioninfo
- /connectioncounts
- /serverinfo
server stream 구동
Server에 접속한 Client의 수
Connection 상태나 스트림 상세정보 등을 XML로 제공
서버 실행시간, 전체 커넥션 상태 등을 XML로 제공
Thursday, May 30, 13
70. 분석 - PORT 8086
[wowza ip]:8086
- /streammanager
- /connectioninfo
- /connectioncounts
- /serverinfo
server stream 구동
Server에 접속한 Client의 수
Connection 상태나 스트림 상세정보 등을 XML로 제공
서버 실행시간, 전체 커넥션 상태 등을 XML로 제공
Thursday, May 30, 13
71. 분석 - PORT 8086
[wowza ip]:8086
- /streammanager
- /connectioninfo
- /connectioncounts
- /serverinfo
server stream 구동
Server에 접속한 Client의 수
Connection 상태나 스트림 상세정보 등을 XML로 제공
서버 실행시간, 전체 커넥션 상태 등을 XML로 제공
Thursday, May 30, 13
77. Getting Started - 단일 서버 세팅 - Live 기준
conf/[App-Directory]/Application.xml
StreamType>live
LiveStreamPacketizers>위에거 다 입력;
HTTPStreamers>cupertinostreaming,smoothstreaming,sanjosestreaming
RTP>Authentication>PlayMethod> none
Thursday, May 30, 13
78. Getting Started - 단일 서버 세팅 - Live 기준
****.stream 설정
[IP-Address]:8086/streammanager
- MediaCaster Type > RTP
Stream Name > ****.stream
Thursday, May 30, 13
79. Getting Started - 단일 서버 세팅 - Live 기준
Flash / Android / iOS
rtmp://[IP-Address]:1935/live/mpegts.stream
rtsp://[IP-Address]:1935/live/mpegts.stream
http://[IP-Address]:1935/live/mpegts.stream/playlist.m3u8
Thursday, May 30, 13
80. Getting Started - 분산 서버 세팅 - Live 기준 - Origin
conf/[App-Directory]/Application.xml
StreamType>liverepeater-origin
LiveStreamPacketizers> 아까 것 입력;
Thursday, May 30, 13
81. Getting Started - 분산 서버 세팅 - Live 기준 - Origin
****.stream 설정
[IP-Address]:8086/streammanager
- MediaCaster Type > RTP
Stream Name > ****.stream
Thursday, May 30, 13
82. Getting Started - 분산 서버 세팅 - Live 기준 - Edge
conf/[App-Directory]/Application.xml
StreamType>liverepeater-edge
LiveStreamPacketizers> 아까 것 입력;
Repeater>OriginURL>wowz://[origin-ip-address]:1935/[appname]
Thursday, May 30, 13
83. Getting Started - 분산 서버 세팅 - Live 기준 - Origin
****.stream 설정
[IP-Address]:8086/streammanager
- MediaCaster Type > liverepeater
Stream Name > ****.stream
Thursday, May 30, 13
84. Getting Started - 분산 서버 세팅 - Live 기준 - Edge
conf/[App-Directory]/Application.xml
StreamType>liverepeater-edge
LiveStreamPacketizers> 아까 것 입력;
Repeater>OriginURL>wowz://[origin-ip-address]:1935/[appname]
Thursday, May 30, 13
91. 테스팅 분산 서버 테스트
동영상이 안 끊긴다.
Thursday, May 30, 13
92. 테스트 - 공식 테스트 지표
Hardware:
- CPU: Single Dual Core Xeon 5160, 4MB Cache, 3.00 GHz, 1333MHz FSB
- Memory: 2GB
- Disk IO (streaming disks): 2X 36GB, SAS, 15K RPM Hard Drives, RAID 0 (striping)
- Disk IO (OS disk): 1X 250GB, SATA, 7K RPM Hard Drive
- Network: Dual 1Gb controller
Software:
- OS: Fedora Core 6
- JRE: Sun Java6-Update1
Thursday, May 30, 13
93. 테스트 - 공식 테스트 지표
Video On Demand Test 1 (600 connections, 400 files):
- Connections: 700
- Files: 400 (random selection of files)
- Video bitrate: 400kbs
- Audio bitrate: 96kbs
- Overall bitrate per file: ~512kbs (with overhead)
- Results: 368Mbs (no connections starved for data)
- Memory Usage: 361MB
- RTMP: CPU: 14.5%
- RTMPE: CPU: 22.6%
Video On Demand Test 2 (1800 connections, 1 file):
- Connections: 1800
- Files: 1
- Video bitrate: 400kbs
- Audio bitrate: 96kbs
- Overall bitrate per file: ~512kbs (with overhead)
- Results: 900Mbs (no connections starved for data)
- Memory Usage: 543MB
- RTMP: CPU: 35%
Thursday, May 30, 13
94. 테스트 - 공식 테스트 지표
Live Streaming Test 1 (2000 connections, 512kbps On2 Flix Live stream):
- Connections: 2000
- Live Video: ~512kbps On2 Flix Live stream
- Results: 840Mbs (no connections starved for data)
- Memory Usage: 267MB
- RTMP: CPU: 21%
Thursday, May 30, 13