The others

[windows] 다윈 스트리밍 서버로 안드로이드에 스트리밍 하기.

Ohjeonghak 2013. 12. 14. 22:25
반응형

[windows] 다윈 스트리밍 서버로 안드로이드에 스트리밍 하기.

안드로이드는 rtsp 스트리밍 방식만을 지원 한다. 그래서 프로젝트 때문에 윈도우8에서 mp4 파일을 스트리밍으로 보여 주는 기능이 필요 했다. 하지만 와우자 서버처럼 상용 프로그램을 프로젝트에서 사용하기엔 라이센스가 있기 때문에 무리였고, 애플에서 오픈소스로 공개한 다윈 스트리밍 서버를 알게 되었다.

 나는 다윈 스트리밍 서버를 사용하기 위해 삽질을 좀 많이 했다. 검색한 자료대로 잘 되지 않았었다. 그래서 혹시나 나처럼 삽질을 하는 사람이 있을 것 같아서 포스팅 한다.

부디 다른 사람들은 나처럼 삽질 하지 않기를 바라며 작성한다.

본 블로그에 방문한 사람들의 소중한 시간을 아낄 수 있고, 발전 할 수 있도록 도와주는 공간으로 만들어 나가고 싶기 때문이다.


먼저 다윈 스트리밍 서버를 설치하기 전에 펄(perl)을 설치하자.

아래의 링크에서 운영체제에 맞게 설치하면 된다.

http://www.activestate.com/activeperl/downloads


perl 설치파일을 받고 설치하고 난 후 cmd 창을 띄워서 다음과 같은 명령어를 실행한다.

perl –MCPAN –e shell

install Win32::Process


앞의 과정을 다 했다면 cmd 창을 닫고, 다윈 스트리밍 서버를 다운 받는다.

http://dss.macosforge.org/

여기 홈페이지에 들어가보면 아래에 Related Links 항목이 있는데

Previous releases를 선택하고 들어간다. 그럼 os 버전별로 다윈 스트리밍 서버 설치파일이 제공되고 있을 것이다.


다운받아서 실행하면 unzip 을하여 설치하도록 되어 있다.

(윈도우 버전 5.5.5를 사용했다.)


그리고 관리자권한으로 cmd 창을 띄워서 unzip한 경로에 있는 Install.bat 파일을 실행한다.

그냥 cmd창에 다음과 같이 치면 된다.

Install.bat


그러면 아래 그림과 같이 사용자 아이디와 비밀번호를 입력 하라고 메시지가 나오는데 아이디와 비밀번호를 입력한다.

그리고 cmd 창을 닫지 않고 브라우저를 켜서 http://localhost:1220 에 접속한다.

http://localhost:1220


그럼 셋팅을 위한 로그인 페이지가 뜰 것이다. 하지만 나는 페이지가 깨져서 알아 볼 수가 없었다. 그래서 나는 많은 삽질을 하게 되었고 두가지 사진을 비교해 가면서 내용을 알고 감으로 알게 되었다. 그래서 정상적인 페이지와 화면이 깨졌을때의 페이지의 경우로 보여주면서 설명하겠다. 글이 안보인다고 당황 해 할 필요 없다! 그래도 스트리밍은 잘 할 수 있다!


우선 가장 첫 화면인 로그인 페이지다. 딱 보면 어떻게 해야할지 알거다.

정상적인 경우

모든 글이 안보이는 경우

아이디와 비밀번호를 입력하고 엔터를 친다.


두 번째 페이지는 mp3파일 스트리밍 비밀번호 설정이라고 한다 자세히는 모르겠지만

mp4 파일 스트리밍을 하는데 사용되지 않지만 설정해 주자. 첫 번째 입력란은 사용할 비밀번호를 입력하면 된다. 그리고 두 번째 입력란은 첫 번째 입력란에 입력한 비밀번호와 일치하는지를 확인하는 거다. 똑같이 적어주면 된다. 그리고 아래에 아무 글씨가 없는 버튼을 눌러주면 된다.

정상적인 경우

모든 글이 안보이는 경우



다음페이지는 서버에 OpenSSL이 설치되어 있는 경우에는 보안을 이용한 SSL 송신이 가능하므로 SSL사용 유무를 체크하는 듯하다. 사용하지 않으면 그냥 체크박스에 체크 하지 않고 next를 누르면 된다.

정상적인 경우

모든 글이 안보이는 경우



다음 페이지는 스트리밍 할 파일이 있는 디렉토리를 설정 하는 곳이다.

입력란에 디폴트로 위치가 들어가 있는데 사용자가 임의로 설정 할 수 있고 나중에 xml 파일을 수정하여 변경 가능 하다.

정상적인 경우

모든 글이 안보이는 경우



다음 페이지는 스트리밍 할 출력 포트번호를 설정하는 부분이다.

기본적으로 80번 포트를 사용할 것인지 체크박스로 설정하는 부분이다.

나중에 xml파일을 수정하여 포트번호를 바꿀 수 있으니까 일단 체크하고 완료버튼을 누른다.

정상적인 경우

모든 글이 안보이는 경우



이번 페이지는 웹페이지로 설정이 완료 되었고 상태를 알려주는 페이지이며 웹에서 셋팅도 변경 할 수 있다. 하지만 페이지가 다 깨지면 셋팅을 할 수가 없다... 그래도 xml을 수정하면 변경 가능하다.

정상적인 경우

모든 글이 안보이는 경우



아까 열어두었던 cmd창을 닫는다. 그리고 다시 cmd창을 띄워서 program files 경로에 들어가면 Darwin Streaming Server 가 설치되어 있을 것이다. 여기에 들어가면 streamingadminserver.pl 이라는 파일이 있다. 다음 명령어로 실행 해 준다.

perl streamingadminserver.pl


그리고 cmd 창을 닫아준다. 다윈 스트리밍 서버는 시스템에 서비스로 등록되어 재부팅을 해도 컴퓨터가 켜지면 돌아간다.

 같은 디렉토리에  streamingserver.xml 파일이 있는데 이 파일을 수정하면 스트리밍 할 동영상 파일이 있는 곳의 위치를 바꿀 수 있고 포트번호도 바꿀 수 있다.

스트리밍 할 동영상 파일이 있는 위치를 바꾸고 싶을 때 xml의 다음 부분을 수정 하면 된다.

동영상 파일이 위에서 바꾼 디렉토리 안에 존재한다면 전부 스트리밍이 가능하다.

포트번호는 xml파일 내용중 다음 부분을 원하는 포트번호로 바꾸면 된다.

*참고로 포트번호는 윈도우 방화벽에서 포트를 열어둬야지 다른곳에서 스트리밍으로 볼 수 있다. 로컬에서는 스트리밍을 확인하여 잘 되는데 스마트폰이나 다른 pc로 볼 때 스트리밍이 되지 않는다면 분명 윈도우 방화벽에서 포트를 열어두지 않아서 그런 것이다.


Windows 방화벽에서 포트를 여는 방법은 제어판에서 Windows 방화벽에 보면 왼쪽 창에서 "고급 설정" 이 있다.

 

 "고급설정"을 누르면 창이 하나 뜨는데 여기서 왼쪽의 "인바운드 규칙"을 클릭하고 오른쪽 목록에 "새 규칙..."을 선택하고 포트를 추가해 주면 된다.



"새 규칙..."을 누르면 창이 하나 뜨는데 "포트(O)"를 선택하고 "TCP(T)" 선택, "특정 로컬 포트(S)" 를 선택 후 554, 8000, 8001, 7070을 추가해주고 80번 포트 대신 사용할 스트리밍 포트 하나를 더 추가해주면 된다.
참고로 나는 스트리밍할 포트를 1231번으로 결정했다.


다음을 누르고 "연결 허용(A)", "도메인(D)", "개인(P)", "공용(U)"을 선택을 하면서 계속 다음으로 넘어온 후 인바운드 규칙으로 사용할 이름과 설명을 달아주면 끝난다.

그리고 xml파일은 바탕화면에 복사해서 수정하고 수정한 것을 복사해서 덮어쓰기로 하면 편하다. 서비스로 실행중이기 때문에 그냥은 수정이 안되기 때문에 편법으로 간단히 수정 할 수 있다.


그리고 rtsp 스트리밍을 하기 위해서는 mp4 파일을 힌팅 해서 힌트 헤더를 만들어 줘야 하는 듯 하다 내용은 잘 모르지만 자료를 찾아보던 중 알게 되었다.

 mp4box.zip

힌팅을 하기 위해서 mp4box 라는 컨버터를 사용했다.


사용법은 다음 명령어로 하면 된다.

MP4Box.exe –hint 파일이름.mp4


그리고 스트리밍 확인 방법은 vlc를 이용하여 확인하면 쉽게 확인 할 수 있다.

rtsp://ip주소:포트번호/디렉토리/파일명.mp4 이런식으로 주소가 구성된다.


반응형