2012년 5월 2일 수요일

리눅스 환경에서 테스크탑 실시간 방송하기(우분투, justin.tv)

[출처: http://kldp.org/]

우분투 11.04 기준으로 작성되었습니다.
ffmpeg를 이용하여 리눅스 데스크탑 화면을 실시간으로 방송하는 방법을 정리하였다. 우분투에 포함된 ffmpeg 패키지는 libx264와 libmp3lame등이 포함되어 있지 않으므로, ffmpeg를 빌드 설치 해야 한다.
0. 기존 설치된 ffmpeg 패키지가 있으면 이를 삭제한다.
$ sudo apt-get remove ffmpeg 
1. ffmpeg 빌드 설치하기 위한 의존성 패키지를 설치한다.

$ sudo apt-get update
$ sudo apt-get install build-essential checkinstall git libfaac-dev libjack-jackd2-dev \
  libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libsdl1.2-dev libtheora-dev \
  libva-dev libvdpau-dev libvorbis-dev libx11-dev libxfixes-dev texi2html yasm zlib1g-dev \
  kx11grab libx264-dev libmp3lame-dev
2. ffmpeg 소스 코드를 받아온다.

$ git clone git://source.ffmpeg.org/ffmpeg.git 
3. ffmpeg 컴파일 및 설치한다.

$ cd ffmpeg
$ ./configure --enable-x11grab --enable-memalign-hack --enable-pthreads \
  --enable-libmp3lame--enable-libx264 --enable-gpl --disable-shared --enable-static
$ make
$ sudo make install
4. Justin.tv의 스트림 키를 얻어온다. (Link> http://www.justin.tv/broadcast/adv_other)
5. Justin.tv에 ffmpeg로 데스크탑 화면을 생방송하는 스크립트를 작성한다.
* desktop_stream.sh

#!/bin/sh
INRES="1920x1080" # input resolution
OUTRES="1280x720"
FPS="20" # target FPS
# Justin
STREAM_KEY="live_YOUR_STREAM_KEY"
URL="rtmp://live.justin.tv/app/$STREAM_KEY"
ffmpeg -f x11grab -s "$INRES" -r "$FPS" -i :0.0 \
          -f alsa -ac 2 -i pulse -vcodec libx264 -s "$OUTRES" -ar 22050 \
          -acodec libmp3lame -ab 64k -threads 0 \
          -f flv $URL 
6. 스크립트를 실행하면 데스크탑 화면과 사운드가 Justin.tv에서 생방송 된다.

$ ./desktop_stream.sh 

댓글 없음:

댓글 쓰기