Wowza Streaming Engine 을 이용 LIVE 영상을 송출할 때
RTMP방식으로 보는 것은 원본과 중계 영상간 큰 지연시간이 발생하지 않습니다.
모바일에서는 여러 장점으로 HLS 방식으로 송출된 영상을 보게되는데, 구조상 파일을 먼저 만들고 스트리밍하는 방식을 취하므로 RTMP/RTSP 방식에 비해
지연시간 문제가 발생합니다. (환경에 따라 지연시간을 다를 수 있으나 안드로이드 기기에서 대략적으로 35초 전후 발생)
* HLS, HLS 장점은 하단부 참조
Wowza 이런 지연시간을 Cupertino Streaming Packetizer 설정으로 조정해줄 수 있습니다.
*** Wowza Streaming Engine 4.x 이후 버전에서만 지원 ***
각 LIVE 어플리케이션의 Application.xml 파일을 열고 아래 위치에 관련 설정이 있는지 확인 합니다.
설정값 위치
<LiveStreamPacketizer>
<Properties>
이하…
<Property> <Name>cupertinoChunkDurationTarget</Name> <Value>10000</Value> <Type>Integer</Type> </Property> <Property> <Name>cupertinoMaxChunkCount</Name> <Value>10</Value> <Type>Integer</Type> </Property> <Property> <Name>cupertinoPlaylistChunkCount</Name> <Value>3</Value> <Type>Integer</Type> </Property> <Property> <Name>cupertinoRepeaterChunkCount</Name> <Value>3</Value> <Type>Integer</Type> </Property>
위와 같이 환경 설정값이 존재해야 하고 그 중에 cupertinoChunkDurationTarget 의 Value 값을 조절하면 됩니다.
기본은 10000 값이며, 500 이하의 값을 주면 지연시간을 많이 줄일 수 있습니다. 본 테스트에서는 10 값을 주고 확인함.
<Property> <Name>cupertinoChunkDurationTarget</Name> <Value>10</Value> <Type>Integer</Type> </Property>
cupertinoChunkDurationTarget 기본 값, LIVE 영상
http://neosky.icamv.com/player.php?vod=20151230_130248&storage=_tmp&key=s1451449598
18초 정도 지연시간 발생.
cupertinoChunkDurationTarget 10으로 조정 후, LIVE 영상
http://neosky.icamv.com/player.php?vod=20151230_130449&storage=_tmp&key=s1451449598
5~6초 정도 지연시간이 줄어듬.
* HLS
HTTP 라이브 스트리밍 (HLS) 은 Apple 에서 iOS 운영 체제의 일부로 구현한 비디오 전송 프로토콜입니다.
프로토콜에서 스트리밍 데이터를 m3u8 의 확장자를 가진 재생목록 파일과 잘게 쪼개놓은 다수의 ts 파일들(동영상)을 HTTP 를 통해 전송하는 방식을 사용합니다.
HLS 에서는 ABS(Adaptive Bitrate Streaming) 를 위해 동시에 여러 비트율의 ts 파일에 대한 정보를 제공합니다.
ABS 을 지원하기 위한 m3u8 파일과 ts 파일 구조가 존재하는데, 전체를 대표하는 m3u8 파일이 있고, 대표 파일 내 각각의 비트율별 플레이 리스트 파일을 가리키게 합니다.
각 비트율별 플레이 리스트 파일은 다시 각 비트율에 해당하는 ts 파일을 가리킵니다.
HLS는 확장성이 높고 안정적이기는 하나, 이러한 구조상 파일을 먼저 만들고 스트리밍하는 방식이기 때문에 RTMP/RTSP 방식에 비해 딜레이 문제가 발생할 수 있다.
* HLS 장점
– 인프라 비용 절감
– CDN과 기타 HTTP 캐싱 인프라에서의 캐시 기능
– 프록시와 방화벽에서 차단당할 위험이 줄어듦
– 클라이언트에 대한 추정을 통한 실시간 최적화 (Adaptive Bitrate)
– 포맷으로 인한 안정성 향상
– HTML5 플레이어 구현의 용이성