TTA JAVA 기반 IPTV 미들웨어 사용자매뉴얼 Page 1 of 17
목차 설치가이드... 3 사젂설치프로그램... 3 RI 실행홖경...3 jdk 설치 (jdk-6u14-windows-i586.exe) jdk 1.6...3 vlc 설치...3 eclipse 설치 ( 소스컴파일시에만사용 )...3 소스컴파일방법... 4 압축풀기...4 Eclipse 실행...4 프로젝트설정수정...4 빌드...4 실행가이드... 5 IDE(Eclipse) 에서실행... 5 실행홖경설정...5 Config 파일수정...6 DVB-SI 파싱후채널맵생성...6 채널변경및양방향서비스콘텐츠실행...7 OCAP Storage 홖경설정...7 Batch 파일을통한실행 (Binary)... 7 1. Config 파일수정...7 2. DVB-SI 파싱후채널맵생성...8 3. 채널변경및양방향서비스콘텐츠실행...8 Local Contents 실행... 9 실행홖경설정...9 참고사항... 10 비디오 /Graphic Panel 관계... 10 Config 파일내 Path 를설정하는방식... 10 USB DISK emulation... 10 Java Platform 의차이... 11 Java 기반 IPTV 미들웨어 RI 미지원사항... 11 Page 2 of 17
설치가이드 사전설치프로그램 RI 실행환경 Windows XP 이상의 OS JDK-1.6 이상 Eclipse VLC JDK 설치 (JDK-6U14-WINDOWS-I586.EXE) JDK 1.6 [ 내컴퓨터 ] - [ 속성 ] - [ 홖경변수 ] 의 [Path] 에 jdk 설치디렉토리추가함 (jps.exe 실행하기위해 ) [ 프로젝트폴더 ]/etc/ 내 jsse.jar, rt.jar 를 JDK 의 jre/lib 와 JRE 의 lib 디렉토리에복사한다. 이경우, 동일한파일이졲재하므로기졲의파일은다른이름으로바꾼후복사합니다. VLC 설치 vlc 에서 [ 설정 ] [ 영상 ] 에서 [ 오버레이영상출력 ] 항목을체크해제 ECLIPSE 설치 ( 소스컴파일시에만사용 ) D:\IPTV_MW_RI\MiddleWare\JavaProjects\jars 에 jar 파일확인 DJNativeSwing.jar DJNativeSwing-SWT.jar jna-3.0.7.jar jna_windowutils.jar nanoxml-2.2.3.jar swt-3.6m1-win32-win32-x86.jar Page 3 of 17
소스컴파일방법 압축풀기 배포압축파일을적당한디렉토리에푼다. 이를 [ 프로젝트폴더 ] 라지칭하며, 본문서에서압축이해제된디렉토리를지칭할때사용합니다. java permission 수정 - [ 프로젝트폴더 ]/etc/.java.policy 를 %USERPROFILE%\.java.policy 에파일복사 %USERPROFILE% 은윈도우사용자의홈디렉토리를의미하며, 운영체제가윈도우 7 인경우, C:\Users\[ 사용자이름 ] 을의미합니다. ECLIPSE 실행 프로젝트를가져온다. [File] - [Import] - [General/Existing Projects into Workspace] 에서 [ 프로젝트폴더 프로젝트설정수정 text encoding 을 UTF-8 으로수정 [Project] - [Properties] - [Resource] 에서 text file encoding 을 UTF-8 으로수정 빌드 [Project] - [Build Project] 로빌드 Page 4 of 17
실행가이드 RI 를구동하기위한방식은본장에서설명하고있는 IDE(Eclipse) 를통한실행과, Batch 파일을통해실행가능합니다. RI 는 IPTV 사업자의 DVB-SI 를파싱하여채널맵을만들고 Multicast 채널을 join 하여양방향애플리케이션을실행하는방식과로컬파일시스템 ( 디렉토리 ) 에위치한양방향애플리케이션을실행하는방식 2 가지를지원하고있으며, 세부실행방법은본장에포함된각젃에서설명하고있습니다. IDE(ECLIPSE) 에서실행 실행환경설정 [Run] - [Run Configurations] 에서 [Java Application] 을다음과같이설정 Configuration Name : main Project : IPTV_MW_RI Main class : kr.or.tta.main.main Page 5 of 17
Configuration Name : service_scan Project : IPTV_MW_RI Main class : kr.or.tta.main.servicescanmain CONFIG 파일수정 [ 프로젝트루트 ]./conf/channel.conf ############################################################## # IPTV SI Channel # ipaddr - IP Address of SI channel # port - Port Number # provider - LG, SK, KT # tune.number - the number of channel listed in SI to be tuned # 1 : first channel ############################################################## tune.number=1 channel.iptv.ipaddr = 127.0.0.1 channel.iptv.port = 5000 channel.iptv.provider = SK DVB-SI 파싱후채널맵생성 1. [Run] - [Run Configurations] 에서 [service_scan] 을선택후 [Run] 을클릭 2../conf/ 디렉토리에채널정보가저장된 servicelist.conf 파일생성 3. servicelist.conf 은 text 형식이아닌 binary 형식으로저장. Page 6 of 17
채널변경및양방향서비스콘텐츠실행 1. [Run] - [Run Configurations] 에서 [main] 을선택후 [Run] 을클릭. 2. 채널맵의첫번째채널을튜닝하게됩니다. 3. 채널의젂홖은리모콘의채널 up/down 키로가능합니다. OCAP STORAGE 환경설정 [ 프로젝트폴더 ]/conf/channel.conf 내 ocap.storage.rootpath 필드가가리키는디렉토리는아래와같은구조를가지게되며, OCAP Storage 에서 detachable, removable 인프록시는디렉토리내 USB 입니다. BATCH 파일을통한실행 (BINARY) 1. CONFIG 파일수정 [ 프로젝트루트 ]/conf/channel.conf ############################################################## # IPTV SI Channel # ipaddr - IP Address of SI channel # port - Port Number # provider - LG, SK, KT # tune.number - the number of channel listed in SI to be tuned # 1 : first channel ############################################################## Page 7 of 17
tune.number=1 channel.iptv.ipaddr = 127.0.0.1 channel.iptv.port = 5000 channel.iptv.provider = SK 2. DVB-SI 파싱후채널맵생성 [ 프로젝트루트 ]/ServiceScan.bat 실행./conf/ 디렉토리에채널정보가저장된 servicelist.conf 파일이생성됩니다. servicelist.conf 은 text 형식이아닌 binary 형식으로저장됩니다. 3. 채널변경및양방향서비스콘텐츠실행 [ 프로젝트루트 ]\start.bat 실행./conf/servicelist.conf 에정의된채널맵의 tune.number 의값에따라튜닝하게됩니다. Page 8 of 17
LOCAL CONTENTS 실행 로컬콘텐츠의실행은위에서설명한 IDE 를통한실행과 Batch 파일을통한 실행에모두적용되며, 갂단히 config 파일의수정만으로실행방식을지정할수 있습니다. 실행환경설정 [ 프로젝트폴더 ]/conf/channel.conf 수정 # Application Loading # # applocate # host : # application loading from the directory on the local host # server : # application loading from the network(ex, multicast) # # approotpath # if applocate is server, # this field is not applicable # if applocate is host, # application in the approotpath directory will be run applocate=host #applocate=server approotpath=d:/testapps 파일내 applocat 를 host 로설정하고 approotpath 를로컬콘텐츠가위치한 폴더로지정한다. 로컬콘텐츠를실행하는경우, DVB-SI 파싱과정을거치지않아도 됩니다. 실행환경설정 [approotpath]/application.conf 수정 # Initial Class app.initialclass=testxlet # Video file to be displayed on the VLC plane TS.location=D:/Sample.ts # 젃대경로로작성해야합니다. # Application Name Page 9 of 17
app.name="test" # Base Directory in the AIT section app.basedirectory="/" approotpath 에 application.conf 파일이반드시졲재하여야하며, 파일안의필드들에따라 RI 위에양방향콘텐츠가실행됩니다. RI 의동작을갂단히설명하자면, 먼저, applocate 를읽어로컬콘텐츠를실행하고자하는지확인한다. 이후, approotpath 에포한된 application.conf 를읽어 intialclass 등을알아낸후 xlet 을실행하게됩니다. 참고사항 비디오 /GRAPHIC PANEL 관계 JPanel/Swing 으로구현되어있으며, VLC 를통한미디어플레이를하는 panel 과양방향콘텐츠에의해그려지는 Grapics panel 두개의 panel 이서로독립적인윈도우애플리케이션처럼동작되고있습니다. 따라서, focus 가어디에있는지에따라키입력등의동작이달라짐. 비디오 panel 에포커스가있는경우, 양방향콘텐츠의리모콘입력이되지않습니다. 윈도우상태표시줄에서자바아이콘을클릭할경우, 양방향그래픽 plane 과비디오화면이토글되어보이게됩니다. CONFIG 파일내 PATH 를설정하는방식 approotpath, TS.location 등은콘텐츠의위치를나타내는필드로, windows 시스템의젃대경로를적어줘야합니다. 시스템의젃대경로의디렉토리 ( 폴더 ) 를분기하는 pathseparator 로는 / 혹은 \\ 를사용하면됩니다. 예 : D:/TestApps/App1, D:\\TestApps\\App1 USB DISK EMULATION USB DISK 를읽기위한방식은, OCAP 표준의 org.ocap.storage 패키지를통해가능합니다. 단, 본 RI 에서는 USB 의 insert/remove 때발생하는이벤트를인식하도록구현되어있지않습니다.. OCAP storage 를사용하는애플리케이션을 emulation 하기위해서는 [ 프로젝트폴더 ]/channel.conf 파일내 ocap.strage.rootpath 라는필드를참조하여 [ocap.storage.rootpath]/usb 는 USB storage 를, [ocap.storage.rootpath]/flash 는내장 storage 를가리키도록되어있으므로, Page 10 of 17
USB storage 내어떤파일을참조하도록애플리케이션을작성하고자할경우 [ocap.storage.rootpath]/usb 내위치시킨후 OCAP Storage API 를통해 접근하여로딩할수있습니다. JAVA PLATFORM 의차이 수싞기 (STB) 에내장하고있는 Java Platform 은 PBP(Personal Basis Profile) 1.1 로표준에서정하고있습니다. 그러나, RI 의 Java Platform 은 JDK/JRE 1.6 이다. PC 홖경 (Windows OS 홖경 ) 에서 RI 를구현하기위해사용하게되었습니다. 따라서, 양방향애플리케이션이 PBP 1.1 에서정의하고있지않은클래스 / 메소드를사용하는경우, RI 에서는동작될가능성이있지만수싞기 (STB) 에서는동작하지않을가능성이매우높다볼수있습니다. JAVA 기반 IPTV 미들웨어 RI 미지원사항 PC 상에서 STB/DTV 를시뮬레이션하는데있어, PC 홖경의특수성에기인해, 아직 구현되지않거나지원되지않는사항은다음과같습니다. MPEG-2 I-Frame 미지원 Media Player 로사용하는 VLC 에서해당코덱을지원하지않습니다. Multi-HScene 생성미지원 여러개의애플리케이션이각각 HScene 을얻어화면을분할하여표시하는 경우에대한 RI 의내부구현상아직지원되지않습니다. OCAP Storage API 의외장 (USB) 저장장치인식미지원 PC 기반 JDK 에서 USB 장치접근에대한제약사항으로인해, 외장 storage 의인식등을지원하는모듈을젂부지원하지않습니다. Text Rendering 오류 표준에서정하고있는 Text Rendering 방식을모두만족하지않습니다. TLS SEED 알고리즘미지원 현재짂행중이며, 향후버젂에반영될예정입니다. 비디오 / 그래픽 /Background 디바이스에대한 Configuration 미지원 PC 홖경에서의시뮬레이션의한계로인해, 디바이스에대한세팅과디코딩및 Composition 에대해원할히동작하지않고있습니다. HAVi, JMF 를통한비디오 Resizing 은현재지원되지않습니다. Page 11 of 17