빠른메뉴

컨텍정보

로그인

제품소개 회사소개 고객사 제품문의 제품관리

나클립스 인코더 서버 - 제품 설명서
시스템 사양
솔루션 분류 멀티미디어 파일 인코딩 솔루션
솔루션 구성 인코더 서버 엔진 + 콘솔 커맨더
OS 환경 서버 리눅스(x86, x86-64, IA64, SPARC, PPC, Alpha). / 윈도우 시스템(x86, x86-64).
C/S 통신 프로토콜 TCP/IP :: NECP(Naclips Encoder Command Protocol)
서버 H/W 권장 사양 CPU, 2.0 Ghz Quad Core / Memory, 8.0GByte 이상
프로그램 실행 방식 서버 Server Daemon
인코딩 출력파일 파일 포맷 MP4 / AVI / MKV
오디오 압축 AAC / MP3 / AC3 / MP2
비디오 압축 h.264(x264) / h.264(rtp) / mp4v / xvid / dx50
시스템 특징
  • 동영상 파일 및 오디오 파일의 인코딩 및 포맷 변환 스케줄링 서버 엔진.
  • Multi Job-Scheduling 방식의 인코딩 작업. 다량의 인코딩 작업을 안정적으로 처리.
  • 터미널 콘솔에서의 작업 스케쥴링 방식과 웹 브라우져를 통한 원격 스케줄링 방식 지원.
  • 작업내역 및 처리결과의 DB입력을 위한 인터페이스 제공.
  • 웹브라우져를 통한 인코딩 예약 및 처리 상태 조회 가능.
  • 별도의 인코딩 장비 없이 자체 제공되는 인코딩 S/W 모듈을 통한 인코딩 서버 엔진.
  • 멀티코어 CPU를 위한 멀티 프로세스 처리 방식을 지원하여 다량의 작업시 부하 분산기능.
  • 시스템 구성 및 주요 기능
    구성 모듈 기능 분류 기능 상세 기능 설명
    인코더 서버 엔진

    Naclips Encoder
    Server Daemon

    미디어 파일 인코딩 파일 디렉토리 지정 원본 소스 영상 파일 디렉토리 및 출력 영상 파일 디렉토리 지정.
    썸네일 이미지 생성 동영상 인코딩 후 인코딩 된 동영상의 썸네일 이미지 생성.
    처리내역 인터페이스 인코딩 예약 및 작업 처리 내역을 DBMS에 저장하기 위한 인터페이스.
    인코딩 명령 인터페이스 나클립스 인코더 명령 프로토콜(NECP:Naclips Encoder Command Protocol)을 통해 인증된 사용자가
    웹서버를 경유하여 인코딩 서버에 인코딩 명령을 조회 및 예약.
    인코딩 설정 인코딩 출력 설정 출력 포맷, 압축 방식, FPS, 영상 비율, 비트레이트 등 인코딩 출력 옵션 설정.
    인코더 서버 보안 웹서버 IP 필터링 NECP Protocol을 통해 명령을 전송하기 위한 웹서버의 IP Allow/Deny 기능.
    시스템 로그 로그 인터페이스 인코딩 관련 로그를 텍스트 파일로 저장하거나 웹-인터페이스를 통하여 DB에 기록.
    콘솔 코맨더

    Naclips Encoder
    Console Commander

    인코딩 예약 파일 단위 예약/취소 단일 파일에 대한 인코딩 예약 및 취소.
    디렉토리 단위 예약 지정 디렉토리의 모든 파일의 인코딩 예약.
    인코딩 설정 지정 인코딩 예약시, 인코딩 서버 데몬 설정과 다른 인코딩 설정 지정.
    인코딩 조회 인코딩 상태 조회 단일 파일에 대한 인코딩 처리 상황 조회.
    인코딩 예약큐 조회 인코딩 예약 및 처리중인 파일들 조회.
    네트워크 구성도
    나클립스 인코더 서버를 통한 개발 적용 예
    아래 캡쳐 이미지는 실제 나클립스 인코더 서버를 웹서버와 연동하여 개발 적용한 예 입니다. 이 적용 사례는 사용자 PC에서 동영상 파일을 미디어 파일서버로 업로드 하고, 업로드된 동영상 파일은 사용자의 인코딩 옵션에 따라 나클립스 인코더 서버를 통하여 인코딩, 미디어 파일 서버의 출? 디렉토리로 저장됩니다.
    특히 이 예제는 업로드 하려는 원본 동영상 파일의 용량이 너무 클 경우, 넥스파이 업로더(미디어 파일 업로드 콤포넌트)를 통하여 클라이언트 PC에서 초벌 인코딩 후에 업로드 하도록 하였으며, 또한 인코딩시 PC용 스트리밍 파일(고화질 영상)과 모바일용 스트리밍 파일(저화질 영상)로 듀얼 인코딩 되도록 개발 적용하였습니다.

    - PC에 있는 원본 동영상 파일을 업로드 후 인코딩 과정 테스트

    - PC에서 동영상 파일을 선택 업로드. 용량이 큰 파일은 초벌 인코딩 변환후 업로딩.

    - 인코딩 할 원본영상을 선택후 인코딩 변환 페이지로 이동

    - 인코딩 설정후, 인코딩 시작버튼을 클릭하여 동영상 파일의 인코딩 변환을 시작.

    - 인코더 서버의 인코딩 상황을 사용자 PC에서 바로 모니터링 한다.

    - 이전단계 페이지로 이동하면 현재 인코딩 변환 상태를 볼 수 있다.

    - 인코딩 변환중인 항목을 클릭하면 인코딩 진행률을 확인 할 수 있다.

    - 인코딩 변환된 동영상은 나클립스 VOD 서버를 통해 스트리밍 재생 확인한다.

    - 스트리밍 재생 확인. 인코딩 변환시 자동 생성된 썸네일 이미지 로딩 확인.

    - 나클립스 VOD 서버를 통해 모바일 기기에서도 스트리밍 재생 확인 가능.

    - 모바일 기기의 QR코드 스캐너를 통하여 모바일 영상 페이지로 이동.

    - 모바일 기기에서 해당 영상을 스트리밍 재생 확인.
    서버 데몬 설정 및 구동
    나클립스 인코더 서버 설정
    [admin@media admin]# ls /usr/local/nencoder/conf/
    daemon.conf  hosts.allow  hosts.deny  log2db.conf  nexenc.conf
    
    [admin@media admin]# cat /usr/local/nencoder/conf/daemon.conf
    ; 1. 스트리밍 포트 ................................... def : 8087
      C2S_PORT = 8087
    ; 2.나클립스 인코더 서버 이름 지정
      server_name = Naclips Encoder Server, Naru.encoder
    ; 3.원본  미디어 파일  최상위 디렉토리 지정 .......... def : media
      MEDIA_ROOT = /media_files
    ; 4.출력 미디어 파일 최상위 디렉토리 지정 ............ def : export
      EXPORT_ROOT = /media_files/export
    ; 5.로그 파일 디렉토리 ............................... def : logs
      LOG_ROOT  = logs
    ; 6.원격접속 타임아웃 지정  .......................... def : 10 (unit : second)
      Time_Out  = 10
    ; 7.원격 접속 IP 필터링 기능 여부 .................... def : false (ref- hosts.allow/hosts.deny)
      ip_filter = true
    ; 8.출력 파일 생성시 동일 파일, Overwrite 여부 지정 .. def : true
      overite_same_file = false
    ; 9.출력 파일 생성시 서브 디렉토리 생성 여부 ......... def : true
      create_sub_directory = true
    ;10.파일 인코딩 여부 ................................. def : 1 (0:off(copy) 1:on(encoding))
      encoding_media = 1
    ;11.최대 인코딩 프로세스 갯수 ........................ def : 2
      enc_process_count  = 10
    ;12.최대 인코딩 예약 대기열 수 ....................... def : 1024
      enc_queue_size = 2048
    ;13.원격접속 최대 동시 접속수 ........................ def : 0 (maximum)
      max_connection = 0
    ;14.인코딩 정보 DB 인터페이스 URL  
      web_interface_url = http://192.168.1.101/nencoder_ifce/webface.php
    ;15.인코딩 완료후 동영상 썸네일 이미지 생성 여부 ..... def : 1
      snap_thumbnail_enable = 1
    ;16.동영상 썸네일 이미지 생성될 최상위 디렉토리 ...... def : expoprt/thumb
      snap_thumbnail_root = /media_files/nextube_data/thumb
    ;17.생성될 동영상 썸네일 이미지 갯수 ................. def : 6
      snap_thumbnail_count = 6
    ;18.대표 썸네일 이미지 프리픽스(prefix) .............. def : 
      title_thumbnail_prefix = export^
    
    [admin@media admin]$ cat /usr/local/nencoder/conf/nexenc.conf
    ;0.Media Format .................. def : mp4 / avi
      media_format = mp4
    ;1.Video Compression ............. def : x264(H.264) / h264(mobile) / mp4v / xvid / dx50
      video_cdc = h264
    ;2.audio compression ............. def : aac(faac) / mp3(lame) / ac3(lavc) / mp2(lavc)
      audio_cdc = aac
    ;3.video compress bitrate ........ def : 852(kbps)
      video_bitrate = 1024
    ;4.frame per second .............. def : 0 .. 0:original 1:15 2:23.976 3:24 4:25 5:29.97 6:30
      video_fps = 0
    ;5.visual aspect ratio ........... def : 0 .. 0:keep original aspect ratio / 1: 4:3 / 2: 16:9 / 3: custom / 4: original size
      video_aspect_ratio = 2
    ;6.base direction for resizing ... def : 0 .. 0:width 1:height 2:auto (for video_aspect_ratio=0,1,2) / 가로/세로 사이즈 변경시 기준이 되는 위치.
      base_direction = 0
    ;7.maximum video width ........... def : 640   / 변환 출력될 비디오의 넓이값
      video_width = 640
    ;8.maximum video height .......... def : 480   / 변환 출력될 비디오의 넓이값
      video_height = 390
    ;9.video resize style ............ def : 0 .. 0:crop 1:stretch 2:black edge 3:auto   /  비디오 사이즈 변경시 여백처리 방식
    ;  0:초과한 부분을 잘라냄, 1:남는 부분을 늘려서 채움, 2: 남는 부분을 검은색 배경으로 채움. 3:자동 (0번과 2번중, 여백낭비가 작은 방식으로 계산후 선택)
      video_resize_style = 2
    ;0.audio compress bitrate ........ def : 2 .. 0:48 1:64 2:128 3:192 4:256
      audio_bitrate = 2
    ;1.audio sample rate ............. def : 0 .. 0:original 1:22050 2:24000 3:32000 4:44100 5:48000 6:64000
      audio_sample_rate = 0
    ;2.audio bitrate style ........... def : 1 .. 0:cbr / 1:abr(Average Bit Rate)
      audio_bitrate_style = 1
    ;3.audio mode .................... def : 0 .. 0:stereo 1:joint-stereo 2:dual-channel 3:mono
      audio_mode = 0
    ;4.increase volume ............... def : 0 .. (0 ~ 20)
      audio_volume = 0
    ;5.mp3 audio quality ............. def : 5 .. (mp3 algorithmic quality (0 - best, 9 - worst))
      mp3_aq = 5
    ;6.additional encoding options ... def :
      additional_options =
    	
    
    나클립스 인코더 서버 데몬 실행.
    [admin@media admin]$ /usr/local/nencoder/daemonctrl start
    NACLIPS.encoder Daemon Controler for Linux Intel 32-Bit Machine. Ver:1.1.200.
    Copyright(C) 2010-2012 NEXPOLY Technology Inc, All Rights Reserved.
    
    NACLIPS.encoder Daemon for Linux Intel 32-Bit Machine. Ver:1.1.0.00.
    Copyright(C) 2010-2012 NEXPOLY Technology Inc, All Rights Reserved.
    
               Host Server Name : cent58
              Server IP Address : 192.168.1.100
    .. Reading Main Configuration .... 22 Configuration(s) fixed up.
    
           User Connection Port : 8087
            Encoder Server Name : Naclips Encoder Server, Naru.encoder
                   Product Code : 1156
             Maximum Connection : 100
         Source Media Directory : /media_files
         Media Export Directory : /media_files/export
    
            User Connection Log : /usr/local/nencoder/logs/con.log
             Daemon Process Log : /usr/local/nencoder/logs/pro.log
      Encodin g Job EnQueue Log : /usr/local/nencoder/logs/ncu.log
             Media Encoding Log : /usr/local/nencoder/logs/enc.log
    Job EnQue Web-Interface Log : /usr/local/nencoder/logs/web.log
           Connection Error Log : /usr/local/nencoder/logs/err_cn.log
             Encoding Error Log : /usr/local/nencoder/logs/err_en.log
       Generating Thumbnail Log : /usr/local/nencoder/logs/tmb.log
    
             Connection Timeout : 10 second(s)
          Remoted-IP Filtering? : Yes
                2 allowd host(s) registered.
                0 denied host(s) registered.
    
         Overwrite Same Output? : No
          Create sub-directory? : Yes
                Encoding Media? : Yes(encoding)
           Encoder Thread Count : 10
         Encoding List-Que Size : 2048
     Interface URL for Encoding : http://192.168.1.101/nencoder_ifce/webface.php
    Enable Snapshot-Thumbnails? : Yes
     Thumbnail's Root Directory : /media_files/nextube_data/thumb
               Thumbnails Count : 6
       Title Thumbnail's Prefix : export^
    
    .. Reading Encoding Options ....   16 Encoding Option(s) fixed up.
    
       output media file format : mp4
              video compression : h264
              audio compression : aac
         video compress bitrate : 1024 kbps
    
               frame per second : 0(original)
            visual aspect ratio : 1(4:3)
          base resize direction : 0(width base)
             output video width : 640
            output video height : 3/4 pixels of output video width
             video resize style : 2(black edge)
         audio compress bitrate : 2(128 kbps)
              audio sample rate : 0(original)
            audio bitrate style : 1(abr)
             audio channel mode : 0(stereo)
           enlarge audio volume : 0(original)
    
    ## Starting up NACLIPS.encoder Daemon   .....
    ## Starting up EncoderEngine            ..... OK(pid:18998).
    ## Starting up ServerEngine             ..... OK(pid:18997).
    
    
    NACLIPS Encoder Console Commander.
    나클립스 인코더 콘솔 커맨더(nencodcmd)는 나클립스 인코더 서버에 Telnet이나 SSH로 원격 터미널 접속, 콘솔 명령을 통해 나클립스 인코더 서버로 인코딩 예약을 하거나 인코딩 조회를 하는 커맨드 라인 프로그램(Command Line Program)입니다.
    명령 형식.
    nencodcmd command  접속포트  source_media="원본 미디어 파일 Path"  export_path="인코딩 출력 디렉토리"  [overwrite=1/0]  [encoding opstions=]
    나클립스 인코더 콘솔 커맨더(nencodcmd) 사용예.
    #/usr/local/nencoder/nencodcmd enqueue 8087 source_media=/avi/orig.avi export_path=/mp4/
    1 encoding job was enqueued.
    ; /mkv/orig.avi 단일파일을 /mp4/orig.mp4 파일로 인코딩 출력되도록 인코딩 예약한다.
    ; 이때, 인코딩 출력 포맷등 인코딩 형식은 인코더 서버에 설정된 인코딩 설정을 따른다.
    
    #nencodcmd enqueue 8087 source_media=/mkv/ export_path=/mp4/ overwrite=0
    28 encoding jobs were enqueued.
    ; /mkv/ 디렉토리의 모든 파일을 /mp4/ 디렉토리에 인코딩 출력되도록 인코딩 예약한다.
    ; 이때, 인코딩 출력되는 파일이 이미 존재할 경우, 해당 파일은 인코딩 출력하지 않는다.
    
    #nencodcmd enqueue 8087 source_media=/avi/ export_path=/mp4/ enc_video_fps=2
    24 encoding jobs were enqueued.
    ; /mkv/ 디렉토리의 모든 파일을 /mp4/ 디렉토리에 인코딩 출력되도록 인코딩 예약한다.
    ; 이때, "인코딩 비디오 fps"는 23.976으로 하며, 나머지 설정은 인코더 서버의 인코딩 설정을 따른다.
    
    #nencodcmd dequeue 8087 encoding_sequence=3245 encoding_passkey=32034034
    5th encoding job was dequeued.
    ; 예약번호 3245번의 인코딩 작업을 취소한다.
    
    * 나클립스 인코더 콘솔 커맨더 명령시 아래와 같은 인코딩 옵션을 추가할 수 있다.
     enc_media_format = "인코딩 출력 미디어 파일 포맷" 지정.
     enc_video_cdc = "비디오 압축 방식" 지정.
     enc_audio_cdc = "오디오 압축 방식" 지정.
     enc_video_bitrate = "비디오 압축 비트레이트" 지정.
     ......
     기타 추가옵션은 나클립스 인코더 서버 인코딩 설정파일 (nexenc.conf) 파일을 참조. (인코딩 설정명 앞에 "enc_"를 추가한 형태로 지정)
    
    NACLIPS Encoder Command Protocol (NECP : Rovecat)
    나클립스 인코더 명령 프로토콜(NACLIPS Encoder Command Protocol. 이하, NECP)은 변형된 HTTP 프로토콜 형태로서, 웹브라우져나 기타 네트워크 프로그램을 통하여 원격지에서 미디어 서버의 동영상 파일을 인코딩 예약 및 조회를 할 수 있는 명령어 프로토콜 입니다. NECP 프로토콜은 아래와 같은 형식을 따릅니다.
    프로토콜 형식.
    1. Post 형식 (Client to Server)
    Command/Server_Code  Server_IP_Addr:Server_Port/Client_IP_Addr  Protocol_Name/Version
    Content-Length: Content_Length

    Content_Body (Options)
    2. Return 형식 (Server to Client)
    Protocol_Name/Version  Return_Code
    Date: Date_Time_String
    Server: Server_Engine_Description
    Content-Length: Content_Length

    Content_Body (Result)

    NACLIPS Encoder Command Protocol 사용예.
    1. 인코딩 예약 명령 예
    > Clent to Server Post
    ENQUE/NENCODER 192.168.1.100:8087/192.168.1.201 ROVECAT/1.0
    Content-Length: 108
    
    source_media: /avi/25m_01.avi
    export_path: /export/mp4
    overwrite: 1
    enc_video_cdc: mp4v
    enc_video_bitrate: 1024
    
    mkv/25m_01.avi 파일을 export/mp4/ 디렉토리에 인코딩 하도록 인코딩 예약 등록. 이때, export/mp4/ 디렉토리에 같은 이름의 파일이 있을 경우 Overwrite 하도록 하고, 인코딩 방식은 인코더 서버에서 설정된 방식을 따르지만 비디오 압축방식 및 비디오 비트레이트는 새로 지정된 인코딩 옵션으로 변경하여 인코딩 하도록 한다.
    > Server to Client Return
    ROVECAT/1.0 200 OK
    Date: Thu, 27 Sep 2012 08:31:51 GMT
    Server: NACLIPS.encoder/1.1.0.00 (NEXPOLY Technology Inc.)
    Content-Length: 82
    
    Result: 1000 OK_ENC_ACCEPTED
    Connection-Sequence: 6554
    Encoding-Sequence: 4879
    Encoding-Passkey: 392030
    
    인코딩 예약이 성공적으로 등록되었음. 이때, 접속 순번은 6554번이며, 인코딩 예약 번호는 4879번이다.
    2. 인코딩 작업 상태 조회 명령 예
    > Clent to Server Post
    GETSTATUS/NENCODER 192.168.1.100:8087/192.168.1.201 ROVECAT/1.0
    Content-Length: 25
    
    encoding_sequence: 4879
    
    인코딩 예약번호 4879번 인코딩 작업의 상황 조회.
    > Server to Client Return
    ROVECAT/1.0 200 OK
    Date: Thu, 27 Sep 2012 09:35:36 GMT
    Server: NACLIPS.encoder/1.1.0.00 (NEXPOLY Technology Inc.)
    Content-Length: 223
    
    Result: 1002 OK_RETURN_STATUS
    Connection-Sequence: 6554
    Encoding-Sequence: 4879
    Encoding-Source: avi/40sec.avi
    Encoding-Target: export/mp4/40sec.mp4
    Encoding-Status: 1
    Encoding-Percent: 82
    Elapsed-Seconds: 25
    Remainging-Seconds: 10
    
    조회한 예약번호의 현재 인코딩 작업 상황을 성공적으로 리턴함.
    3. 인코딩 작업 취소 명령 예
    > Clent to Server Post
    DEQUE/NENCODER 192.168.1.100:8087/192.168.1.201 ROVECAT/1.0
    Content-Length: 32
    
    encoding_sequence: 4880
    encoding_passkey: 3134330
    
    인코딩 예약번호 4880번의 인코딩 작업을 취소합니다.
    > Server to Client Return
    ROVECAT/1.0 200 OK
    Date: Thu, 27 Sep 2012 09:35:36 GMT
    Server: NACLIPS.encoder/1.1.0.00 (NEXPOLY Technology Inc.)
    Content-Length: 71
    
    Result: 1004 OK_ENC_DEQUE
    Encoding-Sequence: 4880
    Dequeuing-Return: 1
    
    대기중이던 4880번 인코딩 작업 성공적으로 취소함.
    4. 동영상 정보 조회 명령 예
    > Clent to Server Post
    GETMHEADER/NENCODER 192.168.1.100:8087/192.168.1.201 ROVECAT/1.0
    Content-Length: 28
    
    file_name: export/avi/00000.avi
    
    서버에 저장되어 있는 export/avi/00000.avi 파일의 동영상 헤더 정보를 조회한다.
    > Server to Client Return
    ROVECAT/1.0 200 OK
    Date: Thu, 27 Sep 2012 09:35:02 GMT
    Server: NACLIPS.encoder/1.1.0.00 (NEXPOLY Technology Inc.)
    Content-Length: 357
    
    Result: 1003 OK_RETURN_MHEADER
    File: export/mp4/00000.avi
    Type: 3
    ACDC: MP3
    VCDC: xvid
    ASampRate: 48000
    ABitsRate: 128
    ACH: 2
    ABrMode: 0
    VWidth: 640
    VHeight: 480
    VBitsRate: 1102
    VBrMode: 0
    FBitsRate: 1230
    AvBegin: 9988
    AvEnd: 9002542
    FSize: 9071878
    Mtime: Fri, 14 Sep 2012 10:01:42 GMT
    Ctime: Fri, 14 Sep 2012 10:01:42 GMT
    Fps: 29.97
    
    조회한 동영상 파일의 헤더정보를 성공적으로 리턴함.

    경기도 성남시 분당구 성남대로 51 분당포스빌 147호 넥스폴리테크놀러지. | TEL: 031) 782-9035. FAX: 031) 601-8094.
    Copyright (C) 2017 Nexpoly Technology Inc. All rights reserved.