TABS MediaServer 4 for HLS

> 탭스 미디어서버

주요 기능

최적의 CPU 사용 방식

인코딩 CPU 할당

관리자는 동영상 인코딩 시 작업을 할 CPU 코어 수를 지정 할 수 있습니다. 2(듀얼), 4(쿼드), 6(헥사), 8(옥타) 또는 그 이상의 물리적인 코어를 가진 CPU 가 1개 또는 여러 개 장착된 컴퓨터에서 동영상 처리 시 CPU 코어를 할당하여 다중 코어 (multi-core)를 효율적으로 사용할 수 있습니다.

해당 컴퓨터가 인코딩 전용이 아닌 다른 용도의 기능(예: DB 서버, 웹 서버 등)도 함께 사용할 경우에는 CPU 코어 할당을 통해서 해당 기능들도 원활하게 동작시킬 수 있습니다.

인코딩 작업 모니터링

인코딩 작업

통합 관리 도구 대시 보드 페이지 또는 인코딩 작업 큐 페이지를 통해 현재 인코딩되는 작업을 모니터링할 수 있습니다. CPU 사용량과 메모리 사용량을 알 수 있으며 인코딩 진행률, 인코딩되어 생성된 파일 크기 등의 정보를 실시간으로 확인할 수 있습니다.

현재 인코딩 중인 작업과 더불어 인코딩 작업을 기다리고 있는 큐 항목을 확인해 볼 수 있으며 진행/대기 중인 작업을 취소할 수 있습니다. 인코딩 작업 로그를 통해 인코딩이 성공했는지 실패했는지 알 수 있으며, 상세 로그 보기를 통해 정확한 문제를 쉽게 파악할 수 있습니다.

IIS 스트리밍

특별한 스트리밍 솔루션 필요 없이 미디어서버가 인코딩한 결과를 IIS/HTTP를 사용해 바로 스트리밍할 수 있습니다. IIS 관리 도구에서 MIME 형식에 .m3us과 .ts 파일에 대한 형식 값만 추가하면 최상의 스트리밍 서버로 동작합니다.

Adaptive Bitrate Streaming

ABS는 끊김 없이 가능한 한 많은 사용자에게 원활한 스트리밍을 제공하기 위해서 개발된 기술입니다. 하나의 원본 영상에 대해 다양한 비트레이트의 스트리밍 영상을 준비해 두고 재생기가 CPU 상황 및 네트워크 트래픽을 고려해 준비된 영상 중 적합한 것을 골라서 재생합니다.

특별한 소프트웨어 없이 IIS만으로 스트리밍 가능합니다.

ABS

AES-128 암호화

동영상 컨텐트 보호를 위해 AES-128 암호화를 지원합니다. 암호화된 영상은 탭스 미디어 플레이어와 HTML5 video 태그를 사용해 스트리밍할 수 있습니다. 영상 디코딩을 위한 키를 직접 처리할 수 있는 프로그래밍 모델을 지원합니다.

HLS 플레이어

인코딩이 된 MPEGTS 파일을 PC 웹 브라우저에서 재생을 할 수 있도록 Flash로 개발된 탭스 미디어 플레이어를 제공 합니다. 모바일 기기에서는 별도의 플레이어가 아닌 기본 웹 브라우저를 이용해서 재생을 할 수 있습니다.

플레이어 I

동영상에서 지정된 구간에서 이미지 파일을 추출해 건너 뛰기 용으로 사용을 하는 플레이어를 제공합니다. 국내 포털 사이트에서 볼 수 있는 기본적인 형태의 플레이어입니다. (모바일에서는 표준 플레이어가 실행됩니다)

탭스 미디어 플레이어 I

 

플레이어 II

시청자가 보고자 하는 정확한 위치로 건너 뛰기가 가능한 플레이어를 제공합니다. 재생 진행 바 위에 마우스 커서를 올려 놓으면 해당 영역의 장면이 표시가 되며 클릭을 하면 바로 그곳으로 이동을 합니다. 유튜브에서 볼 수 있는 형태로 정확하고 빠르게 원하는 장면을 볼 수 있습니다. (모바일에서는 표준 플레이어가 실행됩니다)

탭스 미디어 플레이어 II

다양한 동영상 포맷 지원

ASF, AVI, WMV, FLV, MOV, MP3, MP4, MPEG-1, MPEG-4, OGG, WebM 와 같은 동영상 파일을 읽어서 H264 MPEGTS 파일로 인코딩이 가능합니다. 따라서 여러 종류의 스마트폰과 스마트 패드 등에서 촬영한 동영상과 사운드를 처리하는 것은 물론 각종 캠코더, 디지털 카메라, 핸드폰 등으로 촬영한 동영상과 녹음된 사운드들도 처리가 가능합니다

빠르고 고품질의 H264 인코딩

FFmpeg에 포함된 x264 라이브러리를 사용해 H264로 인코딩합니다. x264 라이브러리는 x86 계열의 CPU에서 최고의 성능을 낼 수 있도록 최적화된 것으로 빠르게 동영상을 인코딩 할 수 있습니다.

H264 인코딩 방식 중 화질에 우선을 둔 VBR(Variable Bit Rate)을 기본으로 인코딩하므로 CBR에 비해 보다 나은 품질의 결과물을 제공합니다.

프리셋

동영상을 인코딩 하기 위해서는 많은 파라미터를 정의해야 합니다. 영상의 가로 세로 길이, 코덱, 품질, 압축률, 오디오 코덱, 비트레이트 등의 많은 정보를 지정해야 합니다. 인코딩 작업 마다 이러한 파라미터를 모두 지정하는 것은 쉽지 않은 작업이므로 자주 사용되는 형식을 미리 정의해서 사용하면 인코딩이 편리합니다. 탭스 미디어서버에서는 XML 을 사용해 인코딩 파라미터를 미리 정의해 놓을 수 있습니다. 이것을 '프리셋' 이라고 합니다.

프리셋에서는 동영상의 경우 품질, 비트레이트, 인코딩 후 동영상의 가로와 세로 길이, 압축 속도, 영상의 비율 유지를 선택할 수 있습니다. 오디오의 경우 비트레이트, 채널 수, 샘플 레이트를 지정해서 인코딩이 가능합니다.

자막 인코딩

지정된 자막을 동영상과 합쳐 하나로 인코딩이 가능합니다. 일반적으로 재생 중 영상 위에 자막을 추가(오버레이) 시켜 재생을 하기도 하며 원본 동영상에 자막을 함께 넣어 하나의 영상으로도 만들 수 있습니다. 프리셋에서 옵션을 추가하면 영상과 자막이 합성되어 인코딩이 됩니다.

이미지 추출

인코딩 도중에 지정된 위치에서 화면을 이미지 파일로 추출해 저장을 할 수 있습니다. 동영상을 재생하는 도중에 지정된 시간(초단위) 마다 이미지로 추출을 한 후 해당 이미지를 지정된 크기로 쎔네일하여 jpg 또는 png 파일로 저장을 합니다. 추출된 이미지 파일은 사이트의 특성에 따라서 동영상을 구분할 수 있는 대표 이미지와 같이 사용이 가능합니다.

프리셋에서는 저장 시 파일 형식(jpg or png), 이미지 파일의 가로 세로 길이, 이미지 추출 시간, 쎔네일 시 원본 비율 유지 또는 강제 조정, 여백 추가 여부, 여백에 칠할 색상 지정이 가능합니다.

미디어 정보 추출

서버에 저장되어 있는 미디어 파일의 정보 추출이 가능합니다. 동영상 파일 형식, 재생 시간, 평균 비트레이트와 비디오 코덱, 크기, 평균 FPS 그리고 오디오 코덱, 샘플 레이트, 채널 수, 비트레이트 정보를 얻을 수 있습니다.

인코딩 이후 처리

인코딩 작업이 정상적으로 끝난 경우 포스트 액션 이벤트가 발생합니다. 이 이벤트를 이용해서 완성된 미디어 파일을 원하는 곳으로 이동(copy) 시킬 수 있습니다. 이러한 작업을 '포스트 액션' 이라고 합니다. 인코딩 서버에 장착되어 있는 특정 하드디스크의 폴더 또는 네트워크 내에 지정되어 있는 다른 하드디스크의 폴더로 미디어를 이동시킬 수 있습니다. FTP 명령과 HTTP Upload 명령을 이용해서 다른 웹 서버로도 미디어 파일을 보낼 수 있습니다.

인코딩 프로그래밍

ASP 환경에서 원본 동영상과 인코딩을 위한 프리셋, 인코딩 결과를 처리하는 포스트 액션을 지정해 미디어서버로 하여금 인코딩 작업을 시작시킬 수 있습니다.

ASP/VBScript

Set encoder = Server.CreateObject("MediaServer4.Encoder")

encoder.Connect "127.0.0.1", 29008, 5
mediaID = encoder.AddMediaFile("C:\UploadTemp\video.avi")
encodingID = encoder.StartEncoding(mediaID, "h264-852x480", "no-progress", "simple-copy")
encoder.Close

다양한 웹 개발 환경 지원

위 예제와 동일한 기능을 하는 ASP.NET, JSP 예제입니다.

ASP.NET/C#

using ms4comapiLib;

MediaServerEncoder encoder = new MediaServerEncoder();
try
{
    encoder.Connect("127.0.0.1", 29008, 5);
    string mediaID = (string)encoder.AddMediaFile(@"C:\UploadTemp\video.avi");
    string encodingID = (string)encoder.StartEncoding(mediaId, "h264-852x480", "no-progress", "simple-copy"); 
}
catch (Exception ex)
{
}
finally
{
    encoder.Close();
}

JSP/Java

import tabs.mediaserver4.*;

MediaServerEncoder encoder = new MediaServerEncoder();
try 
{
    encoder.Connect("127.0.0.1", 29008, 3);
    String mediaID = encoder.AddMediaFile("C:/UploadTemp/video.avi");
    String encodingID = encoder.StartEncoding(mediaID, "h264-852x480", "no-progress", "simple-copy");
}
catch (MediaServerException e) 
{
}
finally
{
    encoder.Close();
}

폴더 모니터링을 통한 인코딩

미디어서버가 설치되어 있은 윈도우 서버에서 임의의 폴더를 선택한 후 해당 폴더에 인코딩 규칙을 부여할 수 있습니다. 규칙이 부여된 폴더에 동영상 파일을 저장하면 미디어서버는 자동으로 지정된 규칙을 사용해 동영상을 인코딩하게 됩니다.