RSS구독하기:SUBSCRIBE TO RSS FEED
즐겨찾기추가:ADD FAVORITE
글쓰기:POST
관리자:ADMINISTRATOR

 

 

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 참조

  • EXTM3U
  • EXTINF:<duration>,<title>
  • EXT-X-TARGETDURATION:<s>
  • EXT-X-MEDIA-SEQUENCE:<number>
  • EXT-X-KEY:METHOD=<method>[,URI="<URI>"],IV=<IV>]
  • EXT-X-PROGRAM-DATE-TIME:<YYYY-MM-DDThh:mm:ssZ>
  • EXT-X-ALLOW-CACHE:<YES|NO>
  • EXT-X-ENDLIST
  • EXT-X-STREAM-INF:[attribute=value][,attribute=value]* <URI>

 

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

 

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

 

. Client –> Server

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

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

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

image

 

4. 프로젝트 산출물

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

image
# Quality selector
https://flowplayer.org/docs/plugins.html#quality-selector

# M3U8 가공법(샘플)
https://github.com/grafov/m3u8/tree/994ea31caf9ec4a2e38b7c1351b08a977a726cfc/sample-playlists

# FlowPlayer 제어법
http://www.flashls.org/

https://flowplayer.org/docs/plugins.html#hlsjs

2016/12/15 11:40 2016/12/15 11:40
ZOSEL:Too much is as bad as too little...!! 자공(子貢)이 공자에게 "사(師:子張의 이름)와 상(商:子夏의 이름)은 어느 쪽이 어집니까?" 하고 묻자, 공자는 "사는 지나치고 상은 미치지 못한다"고 대답하였다. "그럼 사가 낫단 말씀입니까?" 하고 반문하자, 공자는 "지나친 것은 미치지 못한 것과 같다(過猶不及)"고 말하였다.
Too much is as bad as too little...!! 자공(子貢)이 공자에게 "사(師:子張의 이름)와 상(商:子夏의 이름)은 어느 쪽이 어집니까?" 하고 묻자, 공자는 "사는 지나치고 상은 미치지 못한다"고 대답하였다. "그럼 사가 낫단 말씀입니까?" 하고 반문하자, 공자는 "지나친 것은 미치지 못한 것과 같다(過猶不及)"고 말하였다.
전체 (209)
리눅스시스템 (92)
윈도우시스템 (16)
프로그램 (7)
네트워크시스템 (7)
최근관심 (1)
«   2024/05   »
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  
  1. yeezyboost-350.co.uk  2021
    yeezyboost-350.co.uk
  2. 강남역 풀싸롱  2021
    강남역 풀싸롱
  3.   2021
  1. 2018/02 (1)
  2. 2017/03 (2)
  3. 2016/12 (2)