Http Live Streaming 으로 아이폰 동영상 서비스 > UCC,스트리밍 관련 자료

본문 바로가기

검색취소

Http Live Streaming 으로 아이폰 동영상 서비스

검색 이전 다음 목록

본문

이 문제로 무려 세번의 리젝트를 얻어 드시고 드디어 찾아낸 방법을 올린다.

이전에는 그런게 없었던것 같은데 2010년 10월경에 Developer Guide 가 새로 올라오면서 동영상쪽에 새로운

정말 까탈스러운 기준이 하나가 생겼다

 

그것이 바로 Http Live Streaming 이라는 녀석이다.

아이폰에서 동영상을 보여주려면 기존에는 그냥 mp4로 변환해서 링크를 걸거나 보여주면 됐었다. 아주 간단히

그런데 언제부턴가 5분이상의 동영상에 10메가 이상의 파일일 경우에는

다이렉트링크로 넘기면 바로 리젝트를 먹게 되었당..

 

게다가 인코딩시 코덱와 비트레이트도 지정된것 이상이 되면 바로 리젝트 떨어진다.

 

Low – 96 Kbps video, 64 Kbps audioMedium – 256 Kbps video, 64 Kbps audioHigh – 800 Kbps video, 64 Kbps audio

 

웃긴게 팟캐스트는 같은 애플계열인데 여기는 mp4가 허용된다는 것이다. 아놔 뎅장

좀 이상한 기준이긴 하지만 까라면 까야지

 

이것을 해결할 두가지의 방법이 있는데 첫번째는 스트리밍 서버를 사용하는 것이다.

그러나 가격이 꽤 된다.

그래서 생각한게 애플에서 내놓고 무료로 배포하는 Darwin Streaming Server (DSS)를 스트리밍서버로 사용하는 것이었는데

일단 CentOS5에 올리긴 올렸다. 브라우저로 서비스도 잘된다.

그러나. 결정적인 문제가 있는데

아이폰의 사파리는 이 DSS의 스트리밍을 재생하지 못한다!!

 

수십가지 설정과 방법들을 전부 동원해 봤지만 결국은 실패. 결론은 아이폰의 사파리는 DSS의 스트림을 재생못한다로 결론을 내렸다.

즉, 돈 아낄려고 DSS로 해봐야 아이폰에선 안되니 포기하는게 낫다는 것이다.

 

그럼 어쩌겠냐. 다른 방법을 찾아봐야지

 

그래서 나온게 Http Streaming Service 라는 것이다.  사실 애플에서 강력하게 밀고 있는 사항이기도 하다

만약 이글을 보는 당신이 이런 내용으로 리젝트를 당했다면 잘 찾아오셨다.  ^_^) 씨익~~~

 

Http Live Streaming 방식이라는 것은 HTTP 프로토콜을 이용해서 스트리밍을 하는 것인데

사실 이 방법은 그냥은 안된다. 왜냐면 HTTP 프로토콜은 이속적인 연결을 가지는 프로토콜이 아니기 때문에

우리가 알고 있는 앞으로 뒤로 왔다리 갔다리 하는 스트리밍이 아니라 Progressive 방식이기 때문이다.

 

그래서. 이 Http Live Streaming 을 사용하려면 파일 자체를 변경해 줘야 한다.

즉, 일반 동영상(AVI, MPG, MP4) 파일을 Mpeg-TS (MPEG transport stream) 으로 변환을 해 줘야 한다는 것이다.

이 과정이 겁나게 까다롭다.

 

물론 윈도우용 변환 어플도 있긴 하지만 변환하는데 정말 시간이 많이 걸리는데다가

필수적으로 필요한 Segmeter나 m3u8 파일을 만들어 주지 않는다.

이것들을 따로 할려면 귀찮기가 그지 없다.

 

물론 맥에는 이 세그먼트툴이 따로 있긴 하지만 이것도 귀찮기는 매 한가지더라

그래서 인터넷을 찾아보던중 FFMpeg 를 이용해서 한방에 보내버릴 수 있는 방법을 찯았다.

그러나 좋아하진 말자.. 이것도 귀찮다.. 물론 윈도우용 툴이나 맥에서 하는 것 보다야

일단 구축만 해두면 훤씬 편하긴 하다만

여튼 소스컴파일을 할려면 그렇게 해보시고 본인은 귀차니즘의 종결자인지라 그냥 yum 으로 설치하도록 하겠다

 

 

설치환경

 

CentOS5.5

FFMpeg-0.5.3

Segmenter

 

1. ffmpeg 다운로드

 

http://www.ffmpeg.org/download.html

 

 

2. 서버에 올리고 컴파일

 

#./configure --enable-gpl --enable-nonfree --enable-pthreads --enable-libfaac --enable-libfaad --enable-libmp3lame --enable-libx264
#make; make install

 

 

위의 컴파일이 우분투에서는 정상적으로 되는가 보던데 CentOS에서는 안된다. 오류 대따시 뜬다.

그냥 yum으로 설치하는게 속편하다

그런데 yum 으로 그냥 설치하면 안되고 다음의 과정을 거쳐야 된다.

 

1. 레포지토리 업데이트

 

#vi  /etc/yum.repos.d/CentOS-DAG.repo
======================================================================================  <아래내용추가>

[dag]
name=Dag RPM Repository for Red Hat Enterprise Linux
baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag
gpgcheck=1
enabled=1


 

2. Development Tool 업데이트 <만약 CentOS 설치시 설치하지 않았다면)

#yum groupinstall "Development Tools"

 

 

3. RPM 업데이트

rpm -Uhv http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/rpmforge-release-0.3. 6-1.el5.rf.i386.rpm

 

4. 기타

#yum -y install subversion ruby


 

5. ffmpeg, ffmpef-devel 설치 (devel 을 설치하지 않으면 TS변환시 오류 발생함)

#yum install ffmpeg ffmpeg-devel

 

6. Segmenter 설치

 

첨부된 Segmenter.c 를 올려놓고 다음과 같이 컴파일

 

#gcc -Wall -g segmenter.c -o segmenter -lavformat -lavcodec -lavutil -lbz2 -lm -lz -lfaac -lmp3lame -lx264 -lfaad

 

이때 오류가 나면 알아서 찾아서 해결하시고, 그래도 안되면 그냥 첨부된 컴파일된 바이너리를 사용하시는게 속편할 수도 있음

 

 

 

위까지가 일단 TS 변환을 위한 예비작업이 다 끝난 상태

이제는 파일을 업로드하고 변환을 하면된다.

첨부된 PDF 파일을 보면 자세한 과정이 나오니 이것을 참고하길 바라며

 

사용하기 전에 첨부된 mp2ts.sh 파일을 열어서 DOMAIN 부분을 자신의 환경에 맞게 수정을 하고 사용하도록 해야함

 

이렇게 해서 Xcode에서 바로 콜을 하면 정상적으로 보이게 된다.

음.. 이 부분에서도 약간 문제가 있는데 내가 뭔가 잘못 만졌는지는 몰라도 m3u8은 AutoPlay가 안된다.

mp4는 된다. 그런데 TS파일은 안된다. 자동재생이

 

그래서 보통 웹페이지에서 이걸 넘기는데 잘 생각해야 된다.

UITableView  에서 무비목록을 터치하면 바로 콜을 할것인지 아니면 UIWebView 를 콜해서 여기서 태그로 보여줄지 말이다.

왜냐면 무비 재생을 마친후 <DONE> 버튼을 누르면 웹페이지로 이동시 해당 페이지가 흰색으로 떵그러니 보이는 문제가 생길수도 있기 때문이다.

 

아이폰의 무비재생쪽은 좀 문제가 있다.

가끔 상단의 Information Header Bar 가 사라져 버리는 황당한 경우가 발생하기도 한다.

이런 경우엔 답없다. 최상단의 델리게이트에 타이머 하나 놓고, 일정 시간마다 헤더를 무조건 보이도록 하는 방법 밖에는 -_-;;

 

여튼 이렇게 하면 Http Live Streaming 을 위한 모든 준비가 다 끝난다.

음.. 솔직히 변환된 TS의 화질은 그닥 맘에 안든다.

 

아무리 생각을 해도 이건 애플에서 자사의 애플TV를 밀려고 동영상의 포맷을 TS로 바꾸게 하려는 것 같은 생각밖에 안든다. -_-

 

참고로 <video src=''> 에 거는 링크는 TS 파일이 아니라 만들어진 m3u8 파일이 걸리는 것이다.
mp2ts.sh 파일을 보면 코드라는 것으로 명명된 폴더명칭안에 같이 TS 파일들과 m3u8 파일이 들어있는데
이것 때문에 그런것이다. 여러개의 TS 파일이 만들어지기 때문에 하나의 동영상당 하나의 폴더로 만들어서
관리하는 것이 편하다

 

 

그럼 즐삽!!

 

 

 

p_zip_s.gif?rv=1.0.1 아이폰스트리밍을 위한 동영상변환.zip(자세한 내용을 설명한 문서)

p_etc_s.gif?rv=1.0.1 Segmenter.tar.gz(하나의 무비 파일을 여러개의 TS 파일로 쪼개주는 역할, 아래의 쉘에서 한번에 처리해줌)

p_etc_s.gif?rv=1.0.1 mp2ts.sh(그나마 편하게 처리를 하게 하기 위한

추천 0

등록된 댓글이 없습니다.

검색취소

UCC,스트리밍 관련 자료

검색
  • Http Live Streaming 으로 아이폰 동영상 서비스
  • Http Live Streaming 으로 아이폰 동영상 서비스

    이 문제로 무려 세번의 리젝트를 얻어 드시고 드디어 찾아낸 방법을 올린다.이전에는 그런게 없었던것 같은데 2010년 10월경에 Developer Guide 가 새로 올라오면서 동영상쪽에 새로운정말 까탈스러운 기준이 …

  • no image
  • RED5 FFMPEG FFserver 스트리밍 서버 구축하기

    Posted on 2009/02/25 16:19Filed Under 리눅스기술문서/서버관련 조회수: view 5044RED5 FFMPEG FFserver 스트리밍 서버 구축하기작성자 : 서진우(alang@syszone.co.kr)작성일 : 2009년 1월 5일4.1 FFMPEG로 인코딩 환경 구축하기 - 기본 프로그램 설치# yum install ruby# yum install ncurses-devel*# yum install lame# yum install libogg# yum install libvorbis# yum install flvtool2# yum install ffmpeg- 코덱 설치# wget http://www3.mplayerhq.hu/MPlayer/releases/codecs/essential-20061022.tar.bz2# bunzip2 essential-20061022.tar.bz2# tar xvf essential-20061022.tar# mkdir /usr/local/lib/codecs/# mv essential-20061022/* /usr/local/lib/codecs/# chmod -R 755 /usr/local/lib/codecs/# vi /etc/ld.so.conf# ldconfig- ffmpeg 기본 사용법AVI -> FLV# ffmpeg -i onestar.avi -ar 22050 -ab 32 -f flv -s 640x480 onestar.flv | flvtool2 -U stdin onestar.flv-i             : input file name-ar          : audio sampling rate in HZ-ab          : audio bit rate in kbit/s-f             : output format-s             : output dimensionFLV -> JPG# ffmpeg -i test.flv -an -r 1 -y -s 640x480 test%d.jpg-i             : input file name-an         : disable audio -r            : fps-y           : overwrite file-s            : output dimensionParticular frame to JPG# ffmpeg -i test.flv -an -ss 00:00:10 -t 00:00:01 -r 1 -y -s 640x480 test%d.jpg-ss          : recored start time-t            : record end time last for- ffmpeg 실무 사용법ffmpeg를 이용하여 avi 파일을 flv로 변환 한다.# ffmpeg -i onestar.avi -b 512k -ar 22050 -ab 128k -r 24 -s 400x300 onestar.flv or# ffmpeg -i "onestar.avi" -vcodec flv -f flv -r 29.97 -s 400x300 -aspect 4:3 -b 320k -g 160 -cmp 2 -subcmp 2 -mbd 2 -flags aic cbp mv0 mv4 trell -ac 1 -ar 22050 -ab 128k "onestar.flv"- FLV에 메타데이터 넣기 (스트리밍 보기-중간 구간 바로 보기)# flvtool2 -U onstar.flv- 동영상 썸네일 만들기# ffmpeg -y -i onestar.avi -vframes 1 -ss 00:00:02 -an -vcodec png -f rawvideo -s 400x300 onestar.png# ffmpeg  -itsoffset -4  -i test.avi -vcodec mjpeg -vframes 1 -an -f rawvideo -s 320x240 test.jpg- 동영상에 자막 넣기동영상을 flv 로 변환할때 자막을 같이 넣을 경우 기존의 ffmpeg로는 자막 포함 기능이 제공되지 않는다. 자막을 포함하여 인코딩을 할 수 있는 프로그램으로 mencoder이 있다.설치는 yum으로 쉽게 가능하다.# yum install mencoder설치 후 자막의 언어 설정을 아래와 같이 한다.$ vi ~/.mplayer/mencoder.conf-------------------------------------------------------------------------font="/usr/share/fonts/korean/TrueType/gulim.ttf"subfont-text-scale=3subcp=cp949-------------------------------------------------------------------------이제 mencoder로 자막을 포함해서 인코딩을 한다.$ mencoder -noodml [avi파일]  -o [flv파일]  -sub $1.smi -of lavf -oac mp3lame -lameopts abr:br=128 -ovc lavc -lavcopts vcodec=flv:vbitrate=512:mbd=2:mv0:trell:v4mv:cbp:last_pred=3 -srate 44100 -lavfopts i_certify_that_my_video_stream_does_not_use_b_frames -vf-add scale=400:300- 웹 FLV_Player 연동하기웹에서 FLV 파일을 스트리밍으로 볼수 있는 Player는 여러가지가 있다.* UCCUP에서 제공하는 Player - http://www.uccup.kr* http://flowplayer.org/download.html* GRZ_JWMediaPlayer- UCCUP Player 연동하기아래 구문중 flv 파일명과 png 파일명을 수정 후 HTML 문서에 붙여 넣는다. flv,png 파일은 [UCCUP설치경로]/SERVICE 디렉토리 밑에 복사해 둔다.- GRZ_JWMediaPlayer 연동하기아래는 textcube의 플러그인으로 연동된 GRZ_JWMediaPlayer를 이용하는 방법이다.[Flash] - FlowPlayer 연동하기기본 연동법 ------------------------------------------------------------------------------------            --------------------------------------------------------------------------------------or --------------------------------------------------------------------------------------flowplayer("player", "./flowplayer-3.0.2.swf");--------------------------------------------------------------------------------------or --------------------------------------------------------------------------------------flowplayer("player", "./flowplayer-3.0.2.swf", {    clip: {        url: 'http://syszone.co.kr/yaejin/data/11.flv',        autoPlay: false,        onStart: function(clip) {            pageTracker._trackPageview("configuration demo: " clip.url);        }    }});---------------------------------------------------------------------------------------or (youtube 방식의 동영상 라이브러리 구현)---------------------------------------------------------------------------------------http://syszone.co.kr/yaejin/jquery.min.js">http://syszone.co.kr/yaejin/flowplayer-3.0.2.min.js">http://syszone.co.kr/yaejin/flowplayer.playlist-3.0.1.min.js">/* player style *//* container has a background image */a.player {        margin-top:40px;        display:block;        background:url(http://syszone.co.kr/yaejin/img/splash.png) no-repeat;        width:425px;        height:298px;        padding:0 126px 75px 127px;        text-align:center;        color:#fff;        text-decoration:none;        cursor:pointer;}/* splash image */a.player img {        margin-top:115px;        border:0;}#player {        float:left;}/* playlist style */#playlist {        width:300px;        height:380px;        overflow-y:auto;        overflow-x:hidden;        border:1px solid #ccc;        padding:4px 10px 12px 10px;        background-color:#efefef;        margin-top:20px;        float:left;}/* playlist entry */#playlist a {        display:block;        width:260px;        height:60px;        padding:7px;        background-color:#fff;        border:1px solid #ccc;        font:11px "bitstream vera sans", "lucida grande",verdana;        text-decoration:none;        margin-top:7px;        color:#666;}/* different states of a playlist entry */#playlist a:hover {        background-color:#ffc;}#playlist a.progress {        background-color:#efefef;}#playlist a.playing {        border:1px solid #666;        background-color:#ffc;}#playlist a.paused {        border:1px solid #666;        background-color:#ffc;}/* elements inside playlist entry */#playlist a img {        border:0;        float:left;        margin-right:10px;}#playlist a strong {        color:blue;        padding-bottom:5px;}#playlist a em {        border:0;            float:left;        margin-right:10px;        background:url(http://syszone.co.kr/yaejin/img/clock.gif) no-repeat 0 50%;        padding-left:20px;        color:#333;        font-style:normal;        margin-top:10px;}$(function() {        // setup player        $f("player", "flowplayer-3.0.2.swf", {                clip: {baseUrl: 'http://syszone.co.kr/yaejin/data'}        // playlist plugin        }).playlist("#playlist");});        071202-탄생1071202-탄생2..------------------------------------------------------------------------------------- Encoding 관련 스크립트 제작ffmpeg를 이용하여 avi 파일을 flv로 변환하는 스크립트# vi /usr/bin/ffmpeg_encoder.sh [filename] [geometry]-----------------------------------------------------------------------------------#!/bin/shif [ $# -lt 2 ]thenecho -n "using : ffmpeg_encoder.sh ( movie 400x300 )";exit;fiffmpeg -i $1.avi -b 512k -ar 22050 -r 24 -ab 128k -s $2 $1.flv ffmpeg -y -i $1.avi -vframes 1 -ss 00:00:02 -an -vcodec png -f rawvideo -s $2 $1.pngflvtool2 -U $1.flvecho -n "--------------------------------------------------------$1.avi completed $1.flv to encoding..!!--------------------------------------------------------";----------------------------------------------------------------------------------mencoder를 이용하여 avi파일과 smi 자막파일을 flv 파일로 변환하는 스크립트# vi /usr/bin/mencoder_encoder.sh ----------------------------------------------------------------------------------#!/bin/shif [ $# -lt 3 ]thenecho -n "using : mencoder_encoder.sh ( movie 400 300 )";exit;fimencoder -noodml $1.avi -o $1.flv -sub $1.smi -of lavf -oac mp3lame -lameopts abr:br=128 -ovc lavc -lavcopts vcodec=flv:vbitrate=512:mbd=2:mv0:trell:v4mv:cbp:last_pred=3 -srate 44100 -lavfopts i_certify_that_my_video_stream_does_not_use_b_frames -vf-add scale=${2}:${3}ffmpeg -y -i $1.avi -vframes 1 -ss 00:00:02 -an -vcodec png -f rawvideo -s ${2}x${3} $1.pngflvtool2 -U $1.flvecho -n "--------------------------------------------------------$1.avi completed $1.flv to encoding..!!--------------------------------------------------------";---------------------------------------------------------------------------------디렉토리내 flv 파일을 UCCUP Player에서 인식할 수 있는 HTML 코드로 변환하는 스크립트# vi /usr/bin/convert_flvhtml.sh--------------------------------------------------------------------------------#!/bin/shrm -f source.htmlls -1 *.flv | sed -e 's/\.flv//g' > filelistA=`cat filelist`for B in `echo $A`doecho -n "" >> source.htmldone---------------------------------------------------------------------------------4.2 RED5 를 이용한 스트리밍 서비스 환경 구축하기 - Red5 설치하기ant download :  http://ant.apache.org/bindownload.cgired5 download : http://osflash.org/red5jdk download : http://java.sun.com각 사이트에서 최신 패키지를 다운받는다.apache-ant-1.7.1-bin.tar.gzred5-0.7.0.tar.gzjdk-6u11-linux-x64-rpm.bin- JDK 설치하기# chmod 755 jdk-6u11-linux-x64-rpm.bin # ./jdk-6u11-linux-x64-rpm.bin --------------------------------------------------------------------------------..Do you agree to the above license terms? [yes or no]              yesUnpacking...Checksumming...Extracting...UnZipSFX 5.50 of 17 February 2002, by Info-ZIP (Zip-Bugs@lists.wku.edu).  inflating: jdk-6u11-linux-amd64.rpm    inflating: sun-javadb-common-10.4.1-3.1.i386.rpm    inflating: sun-javadb-core-10.4.1-3.1.i386.rpm    inflating: sun-javadb-client-10.4.1-3.1.i386.rpm    inflating: sun-javadb-demo-10.4.1-3.1.i386.rpm    inflating: sun-javadb-docs-10.4.1-3.1.i386.rpm    inflating: sun-javadb-javadoc-10.4.1-3.1.i386.rpm  준비 중...                  ########################################### [100%]..Press Enter to continue.....Done./usr/java 디렉토리 밑에 설치 완료 .- Ant 설치하기# tar xzvf apache-ant-1.7.1-bin.tar.gz # mv apache-ant-1.7.1 /usr/local/ant- Red5 설치하기# mkdir /usr/local/red5# tar xzvf red5-0.7.0.tar.gz -C /usr/local/red5- 환경설정하기# vi /etc/profile.d/ant_java.sh -----------------------------------------------------------------------------#!/bin/shexport JAVA_HOME=/usr/java/defaultexport JAVA_VERSION=1.6export ANT_HOME=/usr/local/antexport PATH=${ANT_HOME}/bin:${JAVA_HOME}/bin:$PATH----------------------------------------------------------------------------# source /etc/profile.d/ant_java.sh # java -versionjava version "1.6.0_11"Java(TM) SE Runtime Environment (build 1.6.0_11-b03)Java HotSpot(TM) 64-Bit Server VM (build 11.0-b16, mixed mode)- RED5 컴파일 및 데몬 시작하기http://osflash.org/red5 에서 final 바이너리 패키지를 받은 경우 별도의 컴파일없이 바로 실행이 가능하다.# cd /usr/local/red5# sh red5.shsvn를 통해 코드를 받은 경우 아래와 같이 컴파일을 해줘야 한다.# cd /usr/local# svn co http://red5.googlecode.com/svn/java/server/trunk red5src# cd red5방법1 :# cd /usr/local/red5src# ant server &# /usr/local/ant/bin/ant # cp -a /usr/local/red5src/dist /usr/local/red5# cd /usr/local/red5# ./red5.sh &방법2 :# cd /usr/local/red5src# make# make install# cd /usr/lib/red5# ./red5.sh &방법 3 :# cd /usr/local/red5src# ant prepare# ant buildTarget "build" does not exist in the project "RED5". 라는 에러가 발생했을 경우# antor# ant -f build.xml# cp -a dist /usr/local/red5# cd /usr/local/red5# sh red5.sh &;; 3번 권장함최신버전으로 컴파일 시 간혹 아래와 같은 에러가 발생하는 경우가 있다.------------------------------------------------------------------------.[ivy:resolve]           :: spring#spring-support;2.0.8: not found[ivy:resolve]           :: javax#jsp-api;2.1: not found[ivy:resolve]           :: red5#xercesImpl;2.9.0: not found[ivy:resolve]           :: red5#groovy;1.0: not found[ivy:resolve]           :: commons#commons-lang;2.3: not found[ivy:resolve]           :: tomcat#jasper;6.0.14: not found[ivy:resolve]           ::::::::::::::::::::::::::::::::::::::::::::::[ivy:resolve][ivy:resolve] :: USE VERBOSE OR DEBUG MESSAGE LEVEL FOR MORE DETAILSBUILD FAILED/usr/local/red5-0.7.0/build.xml:205: The following error occurred while executing this line:/usr/local/red5-0.7.0/build.xml:221: The following error occurred while executing this line:/usr/local/red5-0.7.0/build.xml:165: impossible to resolve dependencies:        resolve failed - see output for details ------------------------------------------------------------------------위 문제는 ivy 라는 패키지 관리 도구에서 red5 컴파일 시 필요한 패키지를 사전에 정의된패키지 저장소에서 자동으로 다운로드 받게 되는데, 필요한 패키지를 찾을 수 없을때 발생한다. ivy.xml 와 ivysettings.xml 파일에 다운로드 경로 정보가 있는데, 이것이 변동된 경우 발생하니ivysettings.xml 에서 http://red5.googlecode.com/svn/trunk/repository/ 부분을 http://red5.googlecode.com/svn/repository 로 수정하거나 최신 해당 파일을 다운로드 받으면된다.- Init script 만들기# vi /etc/rc.d/init.d/red5--------------------------------------------------------------------------#!/bin/sh## Startup script for Red5 flash streaming server## chkconfig: 345 81 81# description: RED5 by java## processname: java (unfortunately)# pidfile: /var/run/red5.pid# config: /etc/red5.conf# Source function library.. /etc/rc.d/init.d/functionsPID_FILE=/var/run/red5.pidPID=`ps ax |grep java|grep red5|awk '{print $1;}'`RETVAL=0start() {echo -n $"Starting $DESCR: "# daemon java $OPTIONS > /dev/null 2>&1 &export ANT_HOME=/usr/local/antexport JAVA_HOME=/usr/java/defaultexport PATH=$PATH:$JAVA_HOME/bin:$ANT_HOME/binexport CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarexec $JAVA_HOME/bin/java -Djava.security.manager -Djava.security.policy=/usr/local/red5/conf/red5.policy -cp /usr/local/red5/red5.jar:conf:/usr/local/red5/conf org.red5.server.Standalone > /dev/null 2>&1 & RETVAL=$?[ $RETVAL = 0 ] && touch /var/lock/subsys/red5 && echo $!>$PID_FILE && echo_successechoreturn $RETVAL}stop() {echo -n $"Stopping $DESCR: "#killproc $PID_FILE[[ $PID != "" ]] && success && kill $PID || failureRETVAL=$?echo[ $RETVAL = 0 ] && rm -f /var/lock/subsys/red5 $PID_FILE}# See how we were called.case "$1" instart)start;;stop)stop;;restart)stopsleep 3start;;*)echo $"Usage: $DESCR {start|stop|restart}"exit 1esacexit $RETVAL----------------------------------------------------------------------------# chmod 755 /etc/rc.d/init.d/red5# chkconfig --add /etc/rc.d/init.d/red5# /etc/rc.d/init.d/red5 start- red5 spec file----------------------------------------------------------------------------Summary: Red5 ServerName: red5Version: 0.7.0Release: 1Source0: %{name}-%{version}.tar.gzLicense: LGPLGroup: Applications/NetworkingBuildRoot: %{_builddir}/%{name}-rootscriptionThe Red5 open source Flash server allows you to record and stream video to the Flash Player.%prep%setup -q%buildant dist-installer%installcp dist $RPM_BUILD_ROOT%cleanrm -rf $RPM_BUILD_ROOT%filesfattr(-,root,root)/usr/local/bin/red5.init%doc doc/changelog.txt------------------------------------------------------------------------------- Red5를 이용한 flv 동영상 스트리밍 Player 환경 구성하기flash_media_player.zip 파일을 다운로드 받는다.http://www.jeroenwijering.com/upload/flash_media_player.zip# cp mediaplayer.html index.html# vi index.html------------------------------------------------------------------------------http://www.macromedia.com/go/getflashplayer">Get the Flash Player to see this player.        var s2 = new SWFObject("mediaplayer.swf","playlist","640","640","9");        s2.addParam("allowfullscreen","true");        s2.addVariable("file","playlist.xml");        s2.addVariable("displayheight","480");        s2.addVariable("backcolor","0x000000");        s2.addVariable("frontcolor","0xCCCCCC");        s2.addVariable("lightcolor","0x996600");        s2.write("player2");----------------------------------------------------------------------------------# vi playlist.xml----------------------------------------------------------------------------------                        Resident.Evil.Degeneration.2008        alang        rtmp://syszone.co.kr/oflaDemo/        residentevil.flv        rtmp                ..----------------------------------------------------------------------------------위의 rtmp://syszone.co.kr/oflaDemo/ 에 해당 red5 streams 디렉토리경로를 지정한다.기본 경로는 [RED5_PATH]/webapps/oflaDemo/streams 디렉토리 밑에 flv 파일을 넣어두면된다.- RED5와 OpenLaszlo를 이용한 스트리밍 환경 구축하기http://www.openlaszlo.org 에서 최신 패키지를 다운받는다.최신 개발 패키지  : http://download.openlaszlo.org/nightly/trunk# tar xzvf openlaszlo-4.2.0-unix.tar.gz# mv lps-4.2.0 /usr/local/lps# cd /usr/local/lps/Server/tomcat-5.0.24/bin# ./startup.sh ----------------------------------------------------------------------------------Using CATALINA_BASE:   /usr/local/lps/Server/tomcat-5.0.24Using CATALINA_HOME:   /usr/local/lps/Server/tomcat-5.0.24Using CATALINA_TMPDIR: /usr/local/lps/Server/tomcat-5.0.24/tempUsing JAVA_HOME:       /usr/java/default----------------------------------------------------------------------------------http://domain:8080/lps-4.2.0/demos/# cd /usr/local/lps/Server/lps-4.2.0/demos/videolibrary# vi videolibrary.lzx ---------------------------------------------------------------------------------- -> 삭제..    이 부분을 ..    으로 ..     이 부분을 ..    으로 변경 ----------------------------------------------------------------------------------# vi videolibrary.jsp ---------------------------------------------------------------------------------    public String libraryDirectory =        "/home/fms/applications/test/streams/instance1/"; --> 이부분을 .. "/usr/local/red5/webapps/oflaDemo/streams/" 으로 ..    public String libraryUrl =        "rtmp://localhost/test/instance1/"; --> 이부분을  "rtmp://domain/oflaDemo/"; 으로 ..---------------------------------------------------------------------------------아래 주소로 접속하면 확인이 가능하다.http://192.168.123.2:8080/lps-4.2.0/demos/videolibrary/videolibrary.lzx;; flv 파일명이 한글이면 안된다. ;; flv 파일 리스트와 썸네일이 보이지 않는다.- thumbnail 관련 임시 조치# cd /usr/local/lps/Server/lps-4.2.x/demos/videolibrary# vi videolibrarythumbnail.lzx --------------------------------------------------------------------------------.        --------------------------------------------------------------------------------resources="원하는 thumbnail 파일 경로" 적어 준다.....ㅠ.ㅠ- lps URL 변경# cd /usr/local/lps/Server/tomcat-5.0.24/conf/LPS/localhost# vi lps.xml--------------------------------------------------------------------------------위의 path="" 에 url에 표시될 alias명을 적는다.http://domain:8080/- SOLO 기능 이용하기solo 는 laszlo에서 개발된 내용을 HTML과 swf 형태로 변경해 주는 관리 기능이다.실제 laszlo로 미디어 관련 어플리케이션을 개발한 후 최종적으로는 solo를 이용하여웹 컨텐츠 형태로 변형 시켜 사용한다.solo 버턴을 클릭하면 해당 컨텐츠가 zip 파일로 압축된다. 압축 파일 위치는 /usr/local/lps/Server/lps-4.2.x/lps/admin 이다.웹서버의 적당한 디렉토리 및에 해당 파일을 풀고 사용하면 된다.4.3 WebCam 설치하기- webcam driver 다운로드$ wget http://mxhaard.free.fr/spca50x/Download/gspcav1-20071224.tar.gz$ wget http://forums.quickcamteam.net/attachment.php?aid=86 -O patch.tar.gz- driver 패치 및 설치$ tar -xvf gspcav1-20071224.tar.gz$ tar -xvf patch.tar.gz$ cd gspcav1-20071224 $ patch -p1 > gspca.ko파일이 생성된다.$ lsmod | grep gspca            // videodev가 보일것이다.$ rmmod gspca$ modprobe -v gspca >> insmod /lib/modules/2.6.18-92.el5/kernel/driver/usb/media/gspca.ko대략 저러한것들이 보인다.없을 경우..  $ rmmod gspca$ mv gspca.ko /lib/modules/2.6.18-92.el5//kernel/driver/media/video/$ modprobe gspca위와 같이 해당위치에 파일을 옮겨주다.# cd /lib/modules# depmod -a 2.6.18-92.el5# mknod /dev/video0 c 81 0 # ln -sf /dev/video0 /dev/video- webcam viewer 설치 (xawtv)# yum install xawtv

  • no image
  • ios html5 audio 연속 재생

     //오디오 부분의 id를 가져온다 var audioid = document.getElementById("audioid");//파일 재생이 완료되었을 때 다음 파일로 재생을 하도록한다.audioid…

  • no image
  • 의 속성과 메소드March 9, 2011 taggon Tip&Tech, 7이 글은 HTML5, 그리고  시리즈의 전체 3개 중 3번째 글입니다.HTML5, 그리고 태그코덱 전쟁의 속성과 메소드지난 글을 통해 HTM…

  • [HTML5] VIDEO & AUDIO
  • [HTML5] VIDEO & AUDIO

    [HTML5] VIDEO & AUDIOPOSTED IN 모바일, 그리고 웹(WEB)/HTML5 // POSTED AT 2010/08/24 13:39멀티미디어 지원HTML 5 를 지원하는 브라우저는 비디오, 오디오와 …

?>