6/11/2011

HTTP Live Streaming을 사용한 원격 TV 서버

1. 프로젝트 소개

· 웹을 통해서 생방송을 실시간으로 원격 TV를 시청할 수 있다는 것을 의미

· 외부에서도 인터넷에 연결된 단말기만 있으면 TV시청가능

· HDTV 카드 사용 (FusionHDTV7 USB Home)

· Ubuntu v10.10 & 아파치 서버

· 언어: C, 루비

시연 - 시연영상.avi

  1. 동영상 파일(실시간 TV영상)을 우분투환경에서 인코딩 및 세그멘테이션 및 인덱스 파일 생성

  2. 인코딩 및 세그멘테이션 된 파일들과 인덱스 파일을 아파치 서버에 저장

  3. 클라이언트(아이폰, 아이팟터치)가 웹페이지를 통해 아파치 서버의 인덱스 파일에 접속

  4. 클라이언트에서 스트리밍 영상 시청

 

2. HTTP Live Streaming 소개

image

3. 시스템 구성 및 특징

. Server –> Client

· 전체적인 구성

TV카드를 서버와 연결

TV카드로부터 받은 신호를 Server에서 처리하여 인터넷을 통해 단말기로 전송

image

 

· 서버 흐름

서버에서 알맞은 대역폭들의 미디어 파일들을 생성하고 클라이언트는 자신의 인터넷 상황에 알맞은 대역폭 파일들을 다운로드 해 재생

(ex- 인터넷 속도가 느린 경우 저화질 미디어 파일 다운로드)

image

 

· 서버의 기능

서버는 TV카드로부터 MPEG –Transport Stream을 전달받음

트랜스코더 역할인 FFmpeg으로 인코딩을 수행 (Using H.264 / AAC or mp3 Codec)

/ 중/ 고화질로 인코딩

인덱스 파일 생성

인코딩이 완료된 파일을 가지고 segmentation

(Segmentation: 동영상을 일정 시간을 주기로 분할하는 작업)

image

 

· 인덱스 파일

M3U8 확장자를 가짐

MP3 Playlist File인 M3U 확장자 파일을 확장한 버전

구성요소 - http://tools.ietf.org/html/draft-pantos-http-live-streaming-05 참조

 

image동영상이 10초씩 Segmentation되어 3개의 파일이 생성되었을 때
각 대역폭(저/중/고화질)을 포함하고 있는 메인 인덱스 파일

 

image동영상이 10초씩 Segmentation되어 3개의 파일이 생성되었을 때
고화질 인덱스 파일

 

. Client –> Server

인터넷을 통해 메인 인덱스 파일을 링크한 서버의 HTML 페이지에 접근

메인 인덱스 파일은 클라이언트 인터넷 환경에 맞춰 해당 대역폭의 인덱스 파일에 접근

해당 대역폭의 인덱스 파일이 포함하는 미디어 파일 다운로드

image

 

4. 프로젝트 산출물

각 시간에 따라 서버에 자동으로 인덱스 파일들과 Segmentation 된 미디어 파일들의 생성

image

댓글 10개:

  1. 안녕하세요~지나가다가 우연히 들러서 보았는데...
    너무 좋은 자료가 많네요..
    정말..정말로 당신의 지식에 감탄했습니다.
    다름이 아니라 꼭 좀 한번 여쭤볼게 있는데...
    주인장분에게 연락할 수 있는 방법이없네요ㅠㅠ
    그래서 제 연락처를 남겨놓으니 꼭 좀 한번만 연락부탁드립니다...꼭 좀 제발 부탁드립니다..
    HP : 010-3000-2937
    E-Mail : simons9989@naver.com
    SNS : shb9989@freechal.com(네이트온)

    답글삭제
  2. 네이버 메일로 답변드렸어요 ^^

    답글삭제
  3. 안녕하세요.
    좋은 글 잘 보았습니다.
    실시간으로 들어오는 스트림을 바로 인코딩 하는 부분에 있어서 막히는 부분이 많은데 도움을 좀 받을 수 있을까요?

    답글삭제
  4. 안녕하세요.
    한 가지 궁금한 것이 있어서 질문드립니다.

    저도 현재 이 모델을 구입했습니다.
    그런데 우분투와 TV카드 연결이 제대로 않된것 같아서요.
    그래서인지 채널 스캔이 않됩니다.

    혹시 연결하는 부분에 대해서 설정을 알려주실 수 있나요?
    펌웨어 어떤거 받아야 하는지 등등.

    zerataul@gmail.com
    제 메일입니다.

    답글삭제
  5. 안녕하세요^^
    HTTP Streaming에 대해 검색하다 정말 좋은 곳을 알게 되었네요
    우분투에서 작업을 하신건 알겠는데 세부적인 내용에서는 모르겠어서
    이렇게 질문을 하게 되었는데요
    실시간으로 파일을 생성하는 부분에 대해서 궁금합니다.
    어떻게 구현하셨는지 여쭤봐도 될까요?
    메일 주소는 iobrand@naver.com 입니다.

    답글삭제
    답글
    1. 실시간으로 파일 분할하는 방법은 아래 페이지 참고하시길 바래요 :)
      http://www.ioncannon.net/projects/http-live-video-stream-segmenter-and-distributor/

      삭제
  6. 안녕하세요.

    좋은 정보 잘 봤습니다. 저는 모바일로 실시간 영상을 서버에 전송하고자 하는데...

    ffmpeg을 어떻게 사용하는줄 잘 모르겠습니다. 혹시 그부분에 대해서 좀 여쭤봐도 될까요?

    nallang@naver.com 이쪽으로 메일 주시면 감사하겠습니다. ㅜ

    답글삭제