JMF2_심빈구.PDF

Similar documents
JMF3_심빈구.PDF

rmi_박준용_final.PDF

JMF1_심빈구.PDF

MasoJava4_Dongbin.PDF

fundamentalOfCommandPattern_calmglow_pattern_jstorm_1.0_f…

자바-11장N'1-502

자바GUI실전프로그래밍2_장대원.PDF

Connection 8 22 UniSQLConnection / / 9 3 UniSQL OID SET

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

Analytics > Log & Crash Search > Unity ios SDK [Deprecated] Log & Crash Unity ios SDK. TOAST SDK. Log & Crash Unity SDK Log & Crash Search. Log & Cras

교육2 ? 그림

12-file.key

비긴쿡-자바 00앞부속

Microsoft PowerPoint - 04-UDP Programming.ppt

1

신림프로그래머_클린코드.key

슬라이드 1

02 C h a p t e r Java

( )부록

FileMaker ODBC and JDBC Guide


untitled

2015 경제ㆍ재정수첩

FileMaker ODBC and JDBC Guide

Microsoft PowerPoint - java1-lab5-ImageProcessorTestOOP.pptx

ch09

09-interface.key

Chap12

Mobile Service > IAP > Android SDK [ ] IAP SDK TOAST SDK. IAP SDK. Android Studio IDE Android SDK Version (API Level 10). Name Reference V

Microsoft PowerPoint - Supplement-03-TCP Programming.ppt [호환 모드]

歯JavaExceptionHandling.PDF

Microsoft PowerPoint - 03-TCP Programming.ppt

Java

01-OOPConcepts(2).PDF

쉽게 풀어쓴 C 프로그래밊

(Microsoft PowerPoint - java1-lecture11.ppt [\310\243\310\257 \270\360\265\345])

Cluster management software

ilist.add(new Integer(1))과 같이 사용하지 않고 ilist.add(1)과 같이 사용한 것은 자바 5.0에 추가된 기본 자료형과 해당 객체 자료 형과의 오토박싱/언박싱 기능을 사용한 것으로 오토박싱이란 자바 컴파일러가 객체를 요구하는 곳에 기본 자료형


교육자료

05-class.key

¹æ¼Û±â¼ú-pdf-Äõ¼öÁ¤

KBS-¹æ¼Û±â¼ú¿¬±¸-1Àå-º°

자바 프로그래밍

14-Servlet

<4D F736F F F696E74202D20C1A63235C0E520B3D7C6AEBFF6C5A920C7C1B7CEB1D7B7A1B9D628B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

자바로

파일로입출력하기II - 파일출력클래스중에는데이터를일정한형태로출력하는기능을가지고있다. - PrintWriter와 PrintStream을사용해서원하는형태로출력할수있다. - PrintStream은구버전으로가능하면 PrintWriter 클래스를사용한다. PrintWriter

목차 INDEX JSON? - JSON 개요 - JSONObject - JSONArray 서울시공공데이터 API 살펴보기 - 요청인자살펴보기 - Result Code - 출력값 HttpClient - HttpHelper 클래스작성 - JSONParser 클래스작성 공공

목차 BUG DEQUEUE 의 WAIT TIME 이 1 초미만인경우, 설정한시간만큼대기하지않는문제가있습니다... 3 BUG [qp-select-pvo] group by 표현식에있는컬럼을참조하는집합연산이존재하지않으면결괏값오류가발생할수있습니다... 4

5장.key

07 자바의 다양한 클래스.key

13-Java Network Programming

Spring Boot/JDBC JdbcTemplate/CRUD 예제

FileMaker 15 ODBC 및 JDBC 설명서

Interstage5 SOAP서비스 설정 가이드

ORANGE FOR ORACLE V4.0 INSTALLATION GUIDE (Online Upgrade) ORANGE CONFIGURATION ADMIN O

PowerPoint 프레젠테이션

歯Writing_Enterprise_Applications_2_JunoYoon.PDF

Microsoft PowerPoint 자바-기본문법(Ch2).pptx

API STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Docum

Orcad Capture 9.x

PowerPoint 프레젠테이션

CONTENTS SUMMARY PART 1 MARKET MARKET STRATEGY MARKET ISSUE MARKET ISSUE PART 2 CREDIT CREDIT ISSUE CREDIT ISSUE CREDIT ISSUE CREDIT ISSUE CREDIT STRA

[ 프로젝트이름 ] : Project_Car [ 프로젝트를만든목적 ] : 임의의자동차판매소가있다고가정하고, 고객이원하는자동차의각부분을 Java 를이용하여객 체로생성하고, 그것을제어하는메소드를이용하여자동차객체를생성하는것이목표이다. [ 프로젝트패키지와클래스의내용설명 ] [

Secure Programming Lecture1 : Introduction

Polly_with_Serverless_HOL_hyouk

[ 정보 ] 과학고 R&E 결과보고서 Monte Carlo Method 를이용한 고교배정시뮬레이션 연구기간 : ~ 연구책임자 : 강대욱 ( 전남대전자컴퓨터공학부 ) 지도교사 : 최미경 ( 전남과학고정보 컴퓨터과 ) 참여학생 : 박진명 ( 전

PowerPoint Presentation

bn2019_2

<4D F736F F F696E74202D20C1A63234C0E520C0D4C3E2B7C228B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

JUNIT 실습및발표

쉽게 풀어쓴 C 프로그래밍

FileMaker ODBC 및 JDBC 가이드

Microsoft PowerPoint - Java7.pptx

Javascript.pages

Modern Javascript

초보자를 위한 C# 21일 완성

PowerPoint Presentation

I T C o t e n s P r o v i d e r h t t p : / / w w w. h a n b i t b o o k. c o. k r

PowerPoint 프레젠테이션

04장

목차 JEUS EJB Session Bean가이드 stateful session bean stateful sample 가이드 sample source 결과확인 http session에

PWR PWR HDD HDD USB USB Quick Network Setup Guide xdsl/cable Modem PC DVR 1~3 1.. DVR DVR IP xdsl Cable xdsl Cable PC PC DDNS (


User's Guide Manual

½ºÅ丮ÅÚ¸µ3_³»Áö

272*406OSAKAÃÖÁ¾-¼öÁ¤b64ٽÚ

PART

Part Part

£01¦4Àå-2

제11장 프로세스와 쓰레드

NoSQL

untitled

유니티 변수-함수.key

thesis

USB USB DV25 DV25 REC SRN-475S REC SRN-475S LAN POWER LAN POWER Quick Network Setup Guide xdsl/cable Modem PC DVR 1~3 1.. DVR DVR IP xdsl Cable xdsl C

example code are examined in this stage The low pressure pressurizer reactor trip module of the Plant Protection System was programmed as subject for

JAVA PROGRAMMING 실습 09. 예외처리

Transcription:

<JSTORM> JMF JSTORM http://wwwjstormpekr

Issued by: < > Document Information Document title: Document file name: Revision number: <10> Issued by: JMF2_ doc Issue Date: <2000/8/25 > Status: < > raica@nownurinet : < > junoyoon@orgionet final Content Information Audience Abstract Reference Benchmark information (JFC) JMF -, RTP JSTORM <2/24>

Issued by: < > Document Approvals Signature date Signature date Revision History Revision Date Author Description of change JSTORM <3/24>

Issued by: < > Table of Contents 5 7 RTP 9 Packetizer Depacketizer 9 RTP 10 RTP I10 RTP II13 18 Sunarchives 18 JSTORM <4/24>

Issued by: < > JMF,,, RTP,, <1> MediaPlayer MediaPlayer, startmedia (Overloading) DisplayFrame MediaPlayer JFrame displayframe, JSTORM <5/24>

Issued by: < >,,, <1> DisplayFrame, JSTORM <6/24>

Issued by: < > [ : BroadCasterstartBroadcast() -> BroadCastersetProcessor()] JMF 20 JavaSound JMF 20, ( ), CaptureDeviceManager CaptureDeviceManager,,, CaptureDeviceManager CaptureDeviceInfo JMF CaptureDeviceInfo,, MediaLocator getlocator() MediaLocator getlocator, MediaLocator, ( ) DataSource DataSource Player, Processor, CaptureDeviceInfo getlocator() MediaLocator DataSource, DataSource,, DataSource JSTORM <7/24>

Issued by: < >, CaptureDeviceManager CaptureDeviceInfo Processor (1) CaptureDeviceManager (CaptureDeviceInfo ) Format null null (2) CaptureDeviceInfo (3) Processor Processor Vector devicelist = CaptureDeviceManagergetDeviceList(new AudioFormat(AudioFormatLINEAR, 44100, 16, 2)); <-- (1) CaptureDeviceInfo di = null; if (devicelistsize() > 0) di = (CaptureDeviceInfo)deviceListfirstElement(); <-- (2) else{ Systemexit(-1); try { thisprocessor = ManagercreateProcessor(digetLocator()); <-- (3) catch(exception e){ eprintstacktrace(); return true; return false; JSTORM <8/24>

Issued by: < > RTP RTP,, url payload RTP Packetizer Depacketizer PacketizerDepacketizer,, Packetizer, Depacketizer < 2> < 2>, Processor JSTORM <9/24>

Issued by: < > RTP RTP MediaLocatorDataSink SessionManager MediaLocator SessionManager RTP I', RTP II RTP I 1) MediaLocatorDataSink, Processor Processor (1) RTP RTP Packetizer ( setenabled(false) ), RTP 'RTP ' (2) MediaLocator URL, MediaLocator DataSink, DataSink (3) DataSink DataSource dsurlrtp://8833255:22224/ audio/1 (4) start() 8833255 processorconfigure(); while(processorgetstate()!= ProcessorConfigured){ JSTORM <10/24>

Issued by: < > processorsetcontentdescriptor( new ContentDescriptor(ContentDescriptorRAW)); TrackControl track[] = processorgettrackcontrols(); boolean encodingok = false; for(int i=0; i < tracklength; i++){ if(!encodingok && track[i]getformat() instanceof AudioFormat){ if( ((FormatControl)track[i])setFormat( new AudioFormat(AudioFormatGSM_RTP, 8000, 8, 1)) == null) <--(1) track[i]setenabled(false); else { track[i]setenabled(true); encodingok = true; else if(track[i]getformat() instanceof VideoFormat){ track[i]setenabled(false); if (encodingok){ processorrealize(); while(processorgetstate()!= ProcessorRealized){ DataSource ds = null; try{ ds = processorgetdataoutput(); catch(exception e){ eprintstacktrace(); processordeallocate(); processorclose(); try{ String url = "rtp://255255255255:22224/audio/1"; <--- (2) MediaLocator m = new MediaLocator(url); DataSink d = ManagercreateDataSink(ds, m); <--- (3) dopen(); JSTORM <11/24>

Issued by: < > dstart(); <--- (4) processorstart(); catch(exception e){ eprintstacktrace(); setbutton(state_stopped); else{ processordeallocate(); processorclose(); setbutton(state_stopped);,,, 2) RTP MediaLocator, MediaLocatorRTP RTP urlmedialoactor MediaLocator (Player ), ManagerPlayer, RTP Player (3) player realize realize,, realize, RTP Player Processor RTP RealizedCompleteEvent ManagercreateRealizedPlayer() Player RTP Block String url = "rtp://883368:22224/audio/1"; <-- (1) MediaLocator mrl = new MediaLocator(url); <-- (2) if(mrl == null){ Systemoutprintln(" RTP Session "); return; JSTORM <12/24>

Issued by: < > try{ player = ManagercreatePlayer(mrl); catch(noplayerexception e){ return; catch(malformedurlexception e){ return; catch(ioexception e){ return; playerrealize(); <-- (3) RTP II SessionManager SessionManager SessionManager SessionManager, RTCP SessionManager Participant CNAME(canonical name) SDES(source description) RTCP SessionManager ReceiveStreamSendStream RTP Stream ReceiveStream, SendStream Processor ReceiveStreamSessionManager RTP SendStream, SessionManager createsendstream < : RTPUtil>SessionManager RTPUtil JMF API Guide JMStudio RTP RTPUtil JMStudio JMStudio JSTORM <13/24>

Issued by: < >, < : RTPUtil> SessionManager static SessionManager ( (1) ) ( (2) ) public class RTPUtil{ public static SessionManager createmanager(string address, String sport, String sttl) { return createmanager(address, new Integer(sport)intValue(), new Integer(sttl)intValue()); public static SessionManager createmanager(string address, int port, int ttl) { SessionManager mgr = (SessionManager)new comsunmediartprtpsessionmgr(); if (mgr == null) return null; mgraddformat(new AudioFormat(AudioFormatDVI_RTP, 44100, 4, 1), 18); String cname = mgrgeneratecname(); String username = null; try { username = SystemgetProperty("username"); catch (SecurityException e){ username = "jmf-user"; SessionAddress localaddr = new SessionAddress(); try{ InetAddress destaddr = InetAddressgetByName(address); SessionAddress sessaddr = new SessionAddress(destaddr, port, destaddr, port + 1); SourceDescription[] userdesclist= new SourceDescription[] JSTORM <14/24>

Issued by: < > { new SourceDescription(SourceDescription SOURCE_DESC_EMAIL, "jmf-user@suncom",1, false), new SourceDescription(SourceDescription SOURCE_DESC_CNAME, cname, 1, false), ; new SourceDescription(SourceDescription SOURCE_DESC_TOOL, "JMF RTP Player v20",1, false) mgrinitsession(localaddr, <---- (1) userdesclist, 005, 025); mgrstartsession(sessaddr,ttl,null); <---- (2) catch (Exception e) { eprintstacktrace(); Systemerrprintln(egetMessage()); return null; return mgr; 1) [ : BroadcasterstartBroadcast()] 'RTP I' RTP Audio RTPUtil SessionManager SessionManager SendStream ( (2) ) DataSource DataSource 0 SendStream SendStreamProcessor start JSTORM <15/24>

Issued by: < > processorconfigure(); while(processorgetstate()!= ProcessorConfigured){ processorsetcontentdescriptor( new ContentDescriptor(ContentDescriptorRAW)); TrackControl track[] = processorgettrackcontrols(); boolean encodingok = false; for(int i=0; i < tracklength; i++){ if(!encodingok && track[i]getformat() instanceof AudioFormat){ if( ((FormatControl)track[i])setFormat( new AudioFormat(AudioFormatGSM_RTP, 8000, 8, 1)) == null) track[i]setenabled(false); else { track[i]setenabled(true); encodingok = true; else if(track[i]getformat() instanceof VideoFormat){ track[i]setenabled(false); if (encodingok){ processorrealize(); while(processorgetstate()!= ProcessorRealized){ DataSource ds = null; try{ ds = processorgetdataoutput(); catch(exception e){ eprintstacktrace(); processordeallocate(); processorclose(); setbutton(state_stopped); try{ manager = RTPUtilcreateManager("883363", "22224", "1"); <---- (1) if(manager == null){ Systemoutprintln("12312"); Systemexit(0); JSTORM <16/24>

Issued by: < > SendStream sendstream = managercreatesendstream(ds, 0); <----- (2) sendstreamstart(); processorstart(); catch(exception e){ eprintstacktrace(); setbutton(state_stopped); else{ processordeallocate(); processorclose(); setbutton(state_stopped); 2) [ : RTPDialogopen() -> RTPDialogopenSession(), MediaPlayerupdate()] SessionManager ReceiveStream, ReceiveStream RTP SessionManager (ReceiveStream ), ReceiveStreamListener ReceiveStreamListener update() ReceiveStreamEvent, ReceiveStream NewReceiveStreamEvent (1) instanceof (2) ReceiveStream (3) DataSource ReceiveStream DataSource public void update( ReceiveStreamEvent event) { SessionManager source = (SessionManager)eventgetSource(); Systemoutprintln(eventtoString() ); if (event instanceof NewReceiveStreamEvent) <------ (1) { String cname = "Online Broadcast"; ReceiveStream stream = null; try { JSTORM <17/24>

Issued by: < > stream =((NewReceiveStreamEvent)event) <------ (2) getreceivestream(); Participant part = streamgetparticipant(); if (part!= null) cname = partgetcname(); // get a handle over the ReceiveStream datasource DataSource dsource = streamgetdatasource(); <--- (3) thisstartmedia(dsource); catch (Exception e) { Systemerrprintln("NewReceiveStreamEvent exception " + egetmessage()); return;, JMF JMF Sunarchives Sunarchives, Q&A Java, JMF,,, URL http://archivesjavasuncom JSTORM <18/24>

Issued by: < > JSTORM <19/24>

Issued by: < > JSTORM <20/24>

Issued by: < > JSTORM <21/24>

Issued by: < > JSTORM <22/24>

Issued by: < > JSTORM <23/24>

Issued by: < > JSTORM <24/24>