사이트 내 전체검색
FFMPGE 및 FLV 인코딩 관련
로빈아빠
https://cmd.kr/server/997 URL이 복사되었습니다.

본문

최근 이슈가 되고 있는 UCC 중 가장 각광을 받고 있는 것이 바로 동영상입니다.

또한, 최근 동영상의 업로드, 퍼블리쉬의 방식 중 기존 MS의 미디어플레이어, Apple의 퀵타임 보다는 플래쉬 무비(FLV)가 큰 각광을 받고 있습니다.

이는 플래쉬 무비의 다이나믹 버퍼링 기법을 통한 매끄러운 무비 재생 및 Flash Movie 8 부터 On2 Tech의

비디오 압축 기술인 VP6 and VP7을 채택함으로써 고화질의 압축 영상을 제공 한다는 것에 있습니다.

Bandwidth에 따른 Standard 버퍼링과 Dynamic 버퍼링 성능차

buffer1.gif
FIG 1 . Standard Buffering: Bandwidth fluctuations vs Buffer time

buffer2.gif
FIG 2 . Dynamic Buffering: Bandwidth fluctuations vs Buffer time



하지만, FLV의 문제점 아닌 문제점은 기존 널리 사용되던 avi, wmv, mpeg 등으로 인코딩된 동영상 파일을 다시 FLV 형식으로 인코딩을 해야 한다는 것입니다. 이런 이유로 인코딩에 대한 부하를 사용자에게 부과 하던가 아니면 서버 부하로 감당을 하던가 하던가 하는 이슈가 발생하게 됩니다.

최근 다음에서 시작한 동영상 서비스의 경우는 후자쪽을 택하였고, 네이버 등은 전자 쪽을 택한 경우입니다.

다음의 동영상은 컨텐츠 퍼블리쉬 과정이 [업로드 -> 글쓰기 -> 완료 -> 서버측 FLV 변환]인 반면 네이버의 경우는 [사용자 인코딩 -> 업로드 -> 글쓰기 -> 완료]의 순서로 이루어 집니다.

즉, 다음의 경우에는 무수히 많은 동영상 코덱 포맷 지원을 위해 사용자에게 해당 작업을 부담시키지 않고 서버에서 부담을 하게 되고, 네이버 등의 경우에는 사용자 PC의 자원을 사용하여 인코딩 후 파일 업로드를 하게 됩니다.

어떤 방식이 좋다 나뿌다는 이야기 할 수 없습니다.

중요한 것은 FLV 형식으로 인코딩을 하여 플래쉬 플래이어를 활용한다..는 그 방식에 있습니다.

아래는 FLV 형식의 무비 파일을 쓰게 됨으로 인한 장점입니다.

1. Player

 - 별다른 설치가 필요 없다.
 - 대부분의 종류의 브라우저를 지원한다.
 - 다양한 스킨 및 기능 (기본 Player 기능 이외의 사용자 추가 기능)의 추가가 쉽고 간편하다.
 - Player 자체 코덱 지원에 관해 신경을 쓰지 않아도 된다.

2. FLV Format

 - 작은 용량으로 고화질의 영상 구현 (VP7)
 - 포맷 공개로 인한 다양한 어플 개발이 용이하다. (
FLV Tools2, mod_flv_streaming 모듈 등)
 - FLV 스트리밍 서버 구축 방식의 다양화. (
Flash Media Server(FMS), Open Source Stream Server 등 )
 - 다양한 방식의 전송 방식 구현 가능 (Swf Embed , Progressive Download, RTMP Streaming )

그렇다면, 이와 같은 장점을 가지고 있는 FLV파일을 서비스( 업로드 -> 인코딩 -> 퍼블리쉬 )하려면 어떤 형태로 서비스 구현을 해야 하는 것일까요.
우선은 영상 인코딩에 대한 부하 감당을 어디서 할 것인가를 우선 결정해야 합니다.
사용자 환경을 고려 한다면 서버측에서 부하를 감당하는 것도 괜찮을 듯 합니다.

서버측에서 인코딩을 하기 위해서는 위에 언급한 Flash Media Server (이전 Macromedia Communication Server)를 사용하거나 Open Source로 FLV 인코딩 및 스트리밍 서버 구축을 할 수 있는 ffmpeg(FLV 뿐만 아니라 asf, mpeg, avi 등도 지원)로 인코딩 + 스트리밍 서버 구축을 할 수 있습니다.

※ ffmpeg를 활용한 Linux + Apache + PHP + Stream Server + Encoding Server 구축에 관한 자세한 내용은 http://luar.com.hk/blog/?p=669 에서 확인하시면 Flash 저작 툴을 이용하지 않고도 PHP 코드만으로 FLV 플레이어를 구현하고 재생 할 수 있을 뿐만 아니라 ffserver를 활용하여 스트리밍 서버 구축도 할 수 있습니다.


바로 위의 박스 부분이 ffmpeg를 활용한 리눅스 인코딩 서버 + 스트리밍서버 구축에 관한 핵심입니다.


출처 : http://cafe.naver.com/kwmc/2274

댓글목록

등록된 댓글이 없습니다.

1,139 (7/23P)

Search

Copyright © Cmd 명령어 3.12.108.18