Video Lan Client (VLC)

Download Report

Transcript Video Lan Client (VLC)

Video Lan Client (VLC)
指導教授:蔡智強
學生:
馮忠信
2005/10/14
C.H. Feng
1
Outline

What is video stream?

Application software of video stream-VLC

How to use VLC in Linux

VLC in our project
2005/10/14
C.H. Feng
2
What is video stream?
2005/10/14
C.H. Feng
3
蓬勃發展的網路時代

各式各樣的裝置透過有線、無線與電信網路隨時
存取網路資源。


網路發展的趨勢


PDA、SmartPhone、NB、PC…etc
文字與影像資訊的瀏覽
影音多媒體的互動
引發消費者上網消費的動機
2005/10/14
C.H. Feng
4
串流技術簡介

多媒體影音檔案




容量龐大
整個下載完成才能觀看
一些手持裝置的資源限制
耗費時間
串流的形式早已存在

傳統電視、廣播系統(類比訊號)
2005/10/14
C.H. Feng
5
串流架構圖 (1)
電腦
筆記型電腦
Internet
PDA
多媒體來源
資料處理
伺服主機
行動電話
2005/10/14
C.H. Feng
6
串流架構圖(2)

資料處理



伺服主機


檔案大小、封包格式、資料壓縮
串流系統中主要的部分
串流的建立、管理、傳送服務
用戶端

接收、重組封包、解壓縮、呈現資料
2005/10/14
C.H. Feng
7
串流應用模式

即時(On Live)



當多媒體來源資料產生,立即經過上述流程,呈現
在用戶端
雙向的視訊會議、單向的即時監控
非即時(On Demand)


預先存放在資料庫,當用戶端提出要求,再傳送
隨選視訊、WebDVD
2005/10/14
C.H. Feng
8
目前的串流技術 (1)

利用標準的網頁伺服器


遵守HTTP的通訊協定
包裝成符合網頁的特定格式



優點


Real Media Forma(.rm)
Window Media Player-Advanced Streaming Format(.asf)
不需要在另外建制串流伺服器
缺點


沒辦法決定使用者的網路環境
TCP connection
2005/10/14
C.H. Feng
9
目前的串流技術 (2)

獨立的串流伺服器



優點


遵守RTP(Real Time protocol)協定,又稱為RTP
streaming
Use UDP protocol
快速且有效率,有效避免延遲
缺點


缺乏回報資料遺失的機制,品質下降
大部分的防火牆會檔掉UDP
2005/10/14
C.H. Feng
10
目前的串流技術 (3)

RTP plus RTCP & RTSP



RTCP(Real Time Control Protocol),可自動偵測現
在的網路頻寬
RTSP(Real Time Streaming Protocol),支援server
& client之間的雙向溝通,如暫停、快轉、倒帶…等
Clientless Streaming


在串流過程中才將撥放程式送到client
支援JAVA平台的行動裝置
2005/10/14
C.H. Feng
11
串流檔案格式 (1)

Microsoft ─ MMS (Microsoft Media Server)


具備IE & Media Player(7.0以上)
可傳輸的檔案型態


可根據clinet的連線狀況切換不同的通訊協定



ASF, AVI, WMV…etc
MMS, MMS-UDP, MMS-TCP, HTTP
MMS port number:1755
壓縮技術:MPEG4 V3
2005/10/14
C.H. Feng
12
串流檔案格式 (2)

RealNetWorks



Realplayer
最早進入串流市場
傳輸檔案類型


RM, RAM, RMVB
RMVB

2005/10/14
最大的特色是可變動的位元率設定, 編碼程式會依據畫面
內容, 自行決定影片壓縮的比例, 可以更有效縮減檔案體積,
但又不會影響畫質
C.H. Feng
13
串流檔案格式 (3)

Apple


QuickTime
傳輸檔案類型


Indeo編碼 ─ MOV、Mpeg編碼 ─ MPG
圖片部分

2005/10/14
PIC, JPEG
C.H. Feng
14
串流技術所遇到的問題

串流技術的最高目標


傳輸錯誤


Streaming media at any where, any time and any
device
封包的掉落
畫面延遲、破損
網路頻寬的變動幅度

網際網路、無線網路
2005/10/14
C.H. Feng
15
改善的方式

錯誤控制機制 (error control)


預先備妥各類頻寬速率的資料


有效補償畫面破損的情況
增加儲存容量、浪費資源
可調式壓縮編碼 (scalable coding)

Encode once, decode many times
2005/10/14
C.H. Feng
16
Application software of video
stream-VLC
2005/10/14
C.H. Feng
17
The VLC project (1)

由一群法國巴黎的學生所發展的,並且在GPL下
公開發行


可在各種平台上使用


Ecole Centrale Paris (http://www.ecp.fr)
Windos, Linux, Mac…etc
可使用在各種多媒體應用上

MPEG-1, MPEG-2, MPEG-4 files, DVDs, 數位頻
道, live視訊和網路上的unicast & multicast…etc
2005/10/14
C.H. Feng
18
應用架構圖
圖片來源:http://www.videolan.org
2005/10/14
C.H. Feng
19
程式架構 (1)

溝通介面


資料輸入


整個程式的起點,使用者通過其中一種介面模組,
來與程式溝通
讀取資料來源,分析完後分配給所對應的解碼程式
影像輸出

選擇適合的影像格式輸出
2005/10/14
C.H. Feng
20
程式架構 (2)

聲音輸出


設定聲音輸出格式,如聲音取樣頻率、單聲道或雙
聲道以及暫存記憶體的大小
外掛模組

程式相關的外掛模組,由於此模組化的設計可達到
跨平台或相容於各種不同的作業系統。
2005/10/14
C.H. Feng
21
可接收的input方式
圖片來源:http://www.videolan.org
2005/10/14
C.H. Feng
22
Input data format
圖片來源:http://www.videolan.org
2005/10/14
C.H. Feng
23
支援的編解碼方式
圖片來源:http://www.videolan.org
2005/10/14
C.H. Feng
24
影像輸出
圖片來源:http://www.videolan.org
2005/10/14
C.H. Feng
25
VLC的目錄結構 (1)

LibVLC





提供一個與programs溝通的介面
串流的存取
Audio & video的輸出
Plugin的操作
Thread的安排
2005/10/14
C.H. Feng
26
VLC的目錄結構 (2)

/interface


/playlist


包含使用者互動的程式碼,如ker presses
管理playlist的互動,如stop, play, next或隨機錄放
/input

開啟input module,讀取資料,分析並且傳送給
decoder
2005/10/14
C.H. Feng
27
VLC的目錄結構 (3)

/video_output


/audio_output


初始化video display,從decoder取得所有的
picture以及subpicture,可以選擇性地轉換它們到
其他的format(如YUV轉成RGB),並顯示出來
初始化audio mixer,例如找到正確的播放頻率,並
接著從decoder中重新取樣所接收到的audio
frames
/misc

使用在libvlc的其他部分,如thread system,
message queue, platform-specific code
2005/10/14
C.H. Feng
28
VLC模組化特性

模組化特性的好處




修改的主要目標


容易的加入新的功能或格式
可在runtime時載入
能夠針對不同的環境,提供相對應的特性
audio_output、video_output
可以動、靜態的建立module
2005/10/14
C.H. Feng
29
包含的模組類型(1)

Access modules


此模組允許VLC讀取不同來源的stream,例如:
vcd、dvd或網路的來源,且在runtime的期間分析
stream,以找到最適合的模組
Codec modules

支援各式各樣codec的模組,包含audio的codec以
及video的codec;而codec是一種壓縮的演算法,
可以減少stream的大小,例如libmpeg2負責
MPEG2的解碼、MAD負責聲音的解碼等。
2005/10/14
C.H. Feng
30
包含的模組類型(2)

Demuxers



在video串流中,video以及audio是以包裝
(containers)的格式表示
一個包裝可以包含數種不同codec編碼的stream,
Demuxers會從包裝中取出stream,並將stream送
給decoder
例如,一個AVI檔案可以包含壓縮成MPEG-4的
video,或是未壓縮的video。AVI只是儲存的格式,
而不是壓縮的格式。
2005/10/14
C.H. Feng
31
包含的模組類型(3)

Video outputs


此模組允許VLC在螢幕上顯示影像,VLC會針對系
統找到最適合影像輸出的模組。而我們的系統是使
用SDL來輸出影像。
Audio outputs

VLC會針對系統找到最適合聲音輸出的模組。而我
們的系統是使用OSS來輸出聲音。
2005/10/14
C.H. Feng
32
包含的模組類型(3)

Interface modules

此模組提供適合的圖形介面或控制介面;一般
Linux系統是使用GTK+所寫的Gnome介面或是
Qt/X11所寫的KDE介面,而我們的系統是使用
Qt/Embedded所寫的介面。
2005/10/14
C.H. Feng
33
VLC模組運作過程
2005/10/14
C.H. Feng
34
How to use VLC in Linux
2005/10/14
C.H. Feng
35
Use VLC in command

The VLC syntax

vlc input_stream --sout
‘#module1{option1=parameter1{parameteroption1},option2=parameter2}:#module2{option1=
parameter1…} ‘

第一個option一定要設定,其餘的部分則是依據使
用需求來設定
2005/10/14
C.H. Feng
36
目前可以使用的Module (1)

standard


transcode


用來將串流資料轉換為不同的格式
duplicate


可以將串流資料存成檔案,或者透過網路傳送串流
資料
將串流資料複製另一個出來
display

用VLC撥放串流資料
2005/10/14
C.H. Feng
37
目前可以使用的Module (2)

rtp


es


將串流資料用RTP的方式傳送也支援RTSP
將串流資料中的video & audio分別存成檔案
假設我們要先轉換串流資料再傳送

vlc input_stream -sout ’#transcode{options}:standard{options}’
2005/10/14
C.H. Feng
38
Standard module options (1)

access: 設定用何種方式傳送串流資料,這個
option一定得設定






file: 將串流資料存成檔案
udp: 透過UDP的方式傳送串流資料
hTTP: 透過HTTP的方式傳送串流資料
hTTPS: 加上secured SSL的HTTP
mmsh: 使用Microsoft MMS protocol傳送
rtp:透過RTP的方式傳送串流資料
2005/10/14
C.H. Feng
39
Standard module options (2)

mux: 使用何種方式來處理串流資料,一定要設定

ts: 處理MPEG2的串流



video支援MPEG 1/2/4, MJPEG, H263, H264, I263,
WMV 1/2等格式
audio支援MPEG, AAC, a52等格式
ps: 處理MPEG2的檔案


2005/10/14
video支援MPEG 1/2, MJPEG
audio支援MPEG, a52
C.H. Feng
40
Standard module options(3)

url


根據access option來決定url所代表的意義
如果option是file, url代表檔案存放位置的完整路徑

如果option是udp or rtp, url代表要傳送的目標網路
位址

如果option是http, https, mmsh, url代表的是要讓
client連接的網路位址和檔案路徑, syntax =
address:port/path
2005/10/14
C.H. Feng
41
Transcode module options (1)

vcodec


vb


設定video編碼格式
fps


設定video bitrate, kbit/s
venc


用來指定要被轉換的video格式
設定framerate, per second
width

the width of video in pixels
2005/10/14
C.H. Feng
42
Transcode module options (2)

height


acodec


設定audio bitrate, kbit/s
aenc


用來指定要被轉換的audio格式
ab


the height of video in pixels
設定audio編碼格式
samplerate

設定samplerate, in HZ
2005/10/14
C.H. Feng
43
Some examples

vlc -vvv input_stream -sout ’#transcode{vcodec
=mp4v,acodec=mpga,vb=800,ab=128,deinterlac
e}:standard{access=udp,mux=ts,url=239.255.12.
42,sap,name="TestStream"}’

vlc -vvv input_stream --sout ’#duplicate{dst=
standard{access=udp,mux=ts,url=239.255.12.42
},dst=standard{access=udp,mux=ts,url=192.168.
1.2}}’
2005/10/14
C.H. Feng
44
VLC in our project
2005/10/14
C.H. Feng
45
影像輸出模組SDL

SDL (Simple DirectMedia Layer)是一個跨平台多
媒體函式庫,提供快速的使用圖形視框緩衝區
(Framebuffer)和聲音等裝置

支援多種系統,如Linux, Win32, BeOS and
FreeBSD等,是一個應用程式和底層子系統間的介
面,因此SDL函式可保持不變


Linux可以使用Frame Buffer或是X11
在Windows上則採用DirectDraw
2005/10/14
C.H. Feng
46
SDL的目錄結構 (1)
2005/10/14
C.H. Feng
47
SDL的目錄結構 (2)

Audio


CDROM


除了播放8位元、16位元聲音、非立體聲和立體聲
之外,也提供聲音間不同格式間的轉換
提供完整的API來播放CD
Endian

自動偵測系統是Big Endian或Little Endian,並提
供對16位元、32位元、64位元Big Endian或Little
Endian讀取與寫入的函式
2005/10/14
C.H. Feng
48
SDL的目錄結構 (3)

Events


File


使用標準輸入輸出函式庫,提供對檔案、記憶體做
讀寫動作
Hermes


SDL內部事件的處理
提供x86處理器下,不同作業系統間組合語言語法
轉換
Main

程式進入點
2005/10/14
C.H. Feng
49
SDL的目錄結構 (4)

Thread


Timer


提供簡單的建立新執行緒API及簡單的信號
(semaphore)來達到同步(synchronization)的功能
提供查詢經過了多少毫秒、等待多少毫秒的API以
及簡單的計時器。
Video

負責建立視窗,影像顯示在螢幕上,以及把接收到
的鍵盤滑鼠及視窗事件轉換成相對的SDL內部事件。
2005/10/14
C.H. Feng
50
MPEG聲音解碼器

使用SDL處理聲音的資料會花費大量的時間去計
算MPEG聲音解碼的部分,嚴重影響整個影像的
撥放

MAD (MPEG Audio Decoder)


支援MPEG-1和MPEG-2的規格
利用整數運算的方式取代浮點數
2005/10/14
C.H. Feng
51
遠端遙控監視系統 (1)
2005/10/14
C.H. Feng
52
遠端遙控監視系統 (2)

新增模組使VLC可以擷取攝影機的影像


Video4linux driver
考量主機負擔以及網路頻寬的限制下,影像的轉檔
設定為
2005/10/14
C.H. Feng
53
遠端遙控監視系統 (3)

/dev/video0


norm=secam


標準的類比訊號
frequency=7668


WebCam裝置的位置。
是通道的頻率(單位是 kHz)
size=240x160

視訊畫面的大小
2005/10/14
C.H. Feng
54
遠端遙控監視系統 (4)

channel=0


vcodec


視訊的位元速度(單位Kbit/s)
keyint=80


視訊編碼方式,在本系統上會用到兩種格式:
mp4v是MPEG-4, mpgv是MPEG-1
vb=3000


視訊通道編號
2個images的最大區間。
12

TTL (Time To Live) 的值。
2005/10/14
C.H. Feng
55
視訊隨選的應用 (1)

視訊隨選系統主要由三個部分所組成



視訊隨選伺服器(The VOD server)
傳輸網路(The transport network)
使用者端(The end user)
2005/10/14
C.H. Feng
56
視訊隨選的應用 (2)

使用的通訊協定為 RTP (Real-time Transport
Protocol) 即時傳輸協定與 UDP (User Datagram
Protocol)使用者資料段協定。

即時傳輸協定(RTP)是設計來處理網際網路上的即
時傳輸作業。

RTP欠缺的機制: 如群播(Multicasting)、通訊埠
(Port number),所以必須與UDP配合使用。
2005/10/14
C.H. Feng
57
視訊隨選的應用 (3)

視訊隨選:server端放置一個測試影片,分割成為
六段,每段一分鐘,client 端透過連線登入系統,
隨選影片分段欣賞
2005/10/14
C.H. Feng
58
視訊隨選的應用 (4)

網路電視:在server端已有錄製好的頻道節目,事
先啟動並分別multicasting 播放,client端可依
頻道選擇不同節目觀賞
2005/10/14
C.H. Feng
59
The End
Thank you
2005/10/14
C.H. Feng
60