posted by By훈트 2011.03.10 10:27


 

HTTP 오류 500.19 - Internal Server Error
요청된 페이지와 관련된 구성 데이터가 잘못되어 해당 페이지에 액세스할 수 없습니다.

 

 

윈도우7에서 웹어플리케이션 개발시 위와 같은 오류가 발생할 경우,

해당 웹어플리케이션 폴더의 보안설정에서 IIS_USERSIUSR을 추가해 주면 된다.

 

 


저작자 표시
신고
크리에이티브 커먼즈 라이선스
Creative Commons License
posted by By훈트 2011.03.09 16:51

모바일웹용 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는 해당 동영상을 의미함.


[출처] 안개속 님의 블로그
저작자 표시
신고
크리에이티브 커먼즈 라이선스
Creative Commons License
posted by By훈트 2011.03.08 14:34
메모리 부족 관련 질문들이 있어서 정리 합니다. (기억을 더듬어 작성하는거라 잘못된 부분이 있으면 댓글로 말씀주세요)

안드로이드에서 OutOfMemoryError라 발생하는 가장 많은 경우는 바로 비트맵 로딩때문에 발생합니다. 
그 경우 Logcat에서 다음과 같은 메시지를 보실 수 있습니다.

"java.lang.OutOfMemoryError: bitmap size exceeds VM budget"

안드로이드는 애플리케이션 프로세스별로 메모리가 제한되어있다는 것은 다 아실텐데 (16M, 24M, 32M등)  
문제는 위의 메모리 에러가 DDMS에서 가장 쉽게 확인할 수 있는 메모리 값인 VM Heap 사이즈와는 크게 상관없이 발생합니다.
Bitmap을 로딩할 경우 VM 내의 힙메모리를 사용하는게 아니라 VM밖의 Native 힙메모리 영역을 사용하기때문입니다.

0. 가용 메모리의 확인 

아래의 API들을 활용해서 Native Heap 값을 확인할수 있습니다.
Debug.getNativeHeapSize(), Debug.getNativeHeapFreeSize(), Debug.getNativeHeapAllocatedSize()
위 사이즈들은 단말별, 버전별로 조금씩 달라질수 있으니 레퍼런스 폰을 기준으로 약간 여유를 두는 것이 좋을겁니다.

해결 방법은 이미 많은 분들이 작성한 글들이 있는데 정리해보면

1. 아주 큰 이미지 파일을 불러오는 경우 BitmapFactory.Options.inSampleSize 설정을 통해 축소해서 메모리에 로드해야합니다.


2. 이미지의 경우 시스템이 알아서 판단해서 적합한 형식으로 로딩하는데 디폴트인 RGB8888(픽셀당 4바이트)로 로딩하는 경우가 
   많습니다. 이미지를 많이 사용하는 게임등의 경우 투명 이미지는 RGB4444, 불투명 이미지는 RGB565로 충분한 경우가 많으니 
   BitmapFactory.Options.inPreferredConfig 설정값을 어떻게 주고 있는지 확인해보시기 바랍니다. 

3. 더이상 쓰지않는 Bitmap의 경우 Recycle 을 호출해서 바로 가용 메모리를 늘려줍니다.

   bitmap.recycle(); bitmap = null;

  ((BitmapDrawable)imageView.getDrawable()).getBitmap().recycle();


4. 메모리 릭이 발생하지는 않는지 확인하는것은 기본이겠죠.




메모리 관련해서는 저도 확실하게 모르는 부분이 있으니 댓글로 추가 정보 주시면 감사하겠습니다.


저작자 표시
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

티스토리 툴바