모바일웹용 mp4 동영상 스트리밍 재생 방법
1. 필요항목
1.1 스트리밍 동영상 서버
- 옴니아용 - Window Media Server ( mms 프로토콜로 동영상 스트리밍)
- 안드로이드용 - 다윈스트리밍서버(무료제품 http://www.devpia.com/Maeul/Contents/Detail.aspx?BoardID=278&MAEULNo=20&no=29095&ref=29095 )
- IPhone용 - 웹서버
1.2 테스트를 위한 도구
-옴니아폰, 안드로이드폰, iPhone
1.3 hint를 처리하는 프로그램
- 안드로이드 계열은 rtsp 프로토콜로 mp4파일의 스트리밍을 지원한다. rtsp로 스트리밍을 위해서는 hint로 처리해야한다.
mp4box 라는 프로그램이 있다. (예 : mp4box -hint video.mp4 주의 : 같은파일 여러번 처리하면 파일이 깨진다. )
2. 인코딩
옴니아 : wmv 파일
iPhone : mp4
안드로이드 : iPhone용으로 mp4로 인코딩한 파일을 hint 처리하면 된다.
3. html 소스상
옴니아 : <a href='mms://동영상파일명'>동영상</a>
안드로이드 : <a href='rtsp://동영상파일명'>동영상</a>
iphone : iphone의 경우는 http로 직접링크를 걸면, 해킹폰에서 다운로드받을 수 있다. 아래와 같이 object를 사용하면 다운로드는 되지 않은다.
<div id="centerbutton">
<!-- 여러가지 이벤트로 동영상을 제어할 수 있다. -->
<a href="javascript:document.movieQuick.Play();"> 강의보기</a>
</div>
<object id="qt_event_source" classid="clsid:CB927D12-4FF7-4a9e-A169-56E4B8A75598" codebase="http://www.apple.com/qtactivex/qtplugin.cab#version=7,2,1,0" ></object>
<object classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B" codebase="http://www.apple.com/qtactivex/qtplugin.cab#version=7,2,1,0" width="0" height="0" type="video/quicktime" id="movieQuick" style="behavior:url(#qt_event_source);">
<param name="src" value="video.mp4" />
<param name="qtsrc" value="video.mp4" />
<param name="postdomevents" value="true" />
<param name="AUTOPLAY" value="False" />
<embed src="video.mp4" qtsrc="video.mp4" width="0" height="0" id="movieQuick" name="movieQuick" postdomevents="true" AUTOPLAY="False" /></object>
4.hint 처리하는 mp4box 프로그램
다운로드 : http://kurtnoise.free.fr/mp4tools/
hint 처리 후 모토로이/ 갤럭시등 안드로이드 폰에서 오디오가 나오지 않을때 처리 옵션(코덱의 문제로 보인다)
MP4Box0.4.5.exe -hint -latm ./2.MP4 <--오디오를 Advanced Audio Coding(latm )으로 강제로 사용하도록 처리
도움말 : http://gpac.sourceforge.net/doc_mp4box.php
### 추가 ###
실시간 동영상 스트리밍 서버를 만들어서 테스트를 하는데 어찌된 일인지 셈플 동영상은 잘 플레이가 되는데 새로 인코딩해서 테스트를 해보면 동작을 하지 않아서 오랜 삽질 끝에 인코딩 된 동영상에 hint를 추가해 주어야 한다는 것을 알았다.
hint를 추가하는 것은 보통 mp4box를 많이 사용하는데 사용 방법은 간단하다.
프롬프트창을 열어서 mp4box.exe가 있는 곳으로 이동하여 아래와 같이 입력하면 된다.
mp4box -hint video.mp4
* 여기서 video.mp4는 해당 동영상을 의미함.
[출처] 안개속 님의 블로그
'Programming > Android' 카테고리의 다른 글
[Android] RelativeLayout 속성을 한눈에. (0) | 2011.05.13 |
---|---|
[Android] Framelayout : 중첩배치 (0) | 2011.03.14 |
[Android] OutOfMemoryError bitmap size exceeds VM budget 메모리 에러 (1) | 2011.03.08 |
[Android] memory heap, out of memory (0) | 2011.03.07 |
[Android] BitmapFactory.decodeStream null 버그 (0) | 2011.03.03 |