Tải bản đầy đủ (.docx) (42 trang)

LẬP TRÌNH ĐA PHƯƠNG TIỆN và TRIỂN KHAI THỬ NGHIỆM các ỨNG DỤNG Đa PHƯƠNG TIỆN

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (931.76 KB, 42 trang )

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
──────── * ───────

BÁO CÁO BÀI TẬP LỚN
TRUYỀN THÔNG ĐA PHƯƠNG TIỆN
ĐỀ TÀI: LẬP TRÌNH ĐA PHƯƠNG TIỆN VÀ TRIỂN KHAI
THỬ NGHIỆM CÁC ỨNG DỤNG ĐA PHƯƠNG TIỆN
Nhóm sinh viên thực hiện:
Lâm Minh Anh – 2011 1113
Nguyễn Văn Tuấn – 2011 2710
Ngô Thiện Thắng – 2011 2228
Lớp: CNTT-TT 1.1 K56
Giảng viên hướng dẫn: PGS.TS. Nguyễn Thị Hoàng Lan


HÀ NỘI – THÁNG 12 NĂM 2014


 

Tìm hiểu về lập trình đa phương tiện trong môi
trường Windows và một số bộ API thường sử
dụng.

Tìm hiểu về cấu trúc các định dạng .AVI và .MPEG
và thử nghiệm kịch bản streaming video trên
Windows.

Tìm hiểu về streaming video và lập trình ứng
dụng thao tác với video trên Windows.


3
 !
 !"#$
%#$&$ '$()*++,-./00$
012.'3$-4'56.78&
 .9:;+<'.00+-<=+>
.%+:
?0'0'*@.%"*56 /+"#89+>.%+$
/.A56+B '$. '$ C12
0+:D5"0'0'+EF
GH:IJ9 >.%+FI.%"*56K090 
>.%+ 56+L+<.A.M>.%+
:
GN:G/.A56+B 'FI.%"*/.A56+B '
J"*:O;P :QRST$.'+-*>. '+B:O;P'
0 /.A+B:QRST-./U:
GV:IJ9 . 'FT#U56089+
0.*W$'+5. ' 12-.'3:
GE:IC12FI>.%X&*12C
"8> ' Y56'0= '$0'Z '($[ Y+-
C5B"#12. ':
;Y1W$"#"0'0'==<.0\-:
SX>]-^$C 05+,+.%"*.'"0'
0':
4
"#$%&'()*+,- (+"#
1.1. ./012
1.1.1. ,"3 (+"#
,"3 (+"#"'_'"56"B 6
4`.0' .M.*

'KX&* .*#012:
Hình 1.1. Môi trường đa phương tiện
1.1.2. *+,- (+"#
*+,- (+"# C2>.%.' 0
'$12U+ 012
.'0a .*$9#0'$0'2 #.U.87
#.M+:
Q5  U2+#+- +_]$.W+C$'%
Vb$c"$"8>&$#:::)40#d.*
9#0'$.*%$P.$( #.U+$+#$'%$
(AC2**+#d>.%+:
e+_Y+&*@.%"* >.%+-F
5
Hình 1.2. Tổng quan về lập trình đa phương tiện
o !45"'_0"B>c"$.''$0*$
"U$($0"B<B$.%3%$0*$'$(
o 6 )F.M+<>.% .%3012+
:
o 7,8,F.%+<41$1 Y5"B2< 5
+2<:
o 9F'>.%12$/0f.c'. 
' '0 Y+:ORP.80+0
0:
o *+,-FR4+<>.% 8C2+<X&*01
2;e'$S$D"$(.80>.%$ U
2GgGhh$Gi$j $(
1.2. *+,- (+"#,:;<=/
1.2.1. &'(1>,?,"3
;>.%+-@"'_<$1 Y
+5 GRkF

o @8,8<;8F1 Y>.%//$M>.%C2
O"*0+5. '0"B41:lGRk7
.'l.Q'$--<"/1mB' +"/
%"B41':l.'/0'0 Y41
\M[:I*8$>.%.'l.Q' [-!
**U+C2'+,-`../n0ORP:
o A/8,<;8F1 Y>.%/':lGRk7.'k.Q'$-
<.*>Y41'L+4150
.:G0+',.'k.Q'@+*<+J0
ORP6+<-<.*>Y"5Y 41:Q56"5ORPJ
".'>.%++-b.o$pTq$(
6
Hình 1.3. Kiến trúc môi trường lập trình đa phương tiện trong Windows
1.2.2. :;<=/9
ORPO'R.'.P.fr'>.%12
6 ,_>.%+560*U*512
/+<`.0>.% 8$'K0*84B 2-<+'
.n0.%0*U0$ g'L'K-<+.'
+J9A:Gs6"U"B'M
[ 0*U$5ORP5'402>.% 
+:
?5ORPn+6:D4.80*
Qpeo<*.8t'cu$"7 %Qpeo t'cu-0ORP
''0:I*8-4-<*+#$
/'-8"#1 Yn+$"#/A+>
.%"70"5ORP0+6 Yn++<X&*808
"#0+-:
;"#/$ORP.8"/%+'$+/#!.*X/
+5>0'0*C2$ U2'0 @0CJ*0'
.8%$*'0]n+a1:GA"'_0>0$

2$" 0/.A+<01!/+B:;
/$>.%+s >.%0120$
7
0"m7ORPC2 0A0 Y64
1+:
G04.'t'cORP-.8$ .'0ORP-+
"'_F
o 2BC<D5&t'cORP:-,
+<'0 2<:GA+1.'0 
bqq@+.%"*74 -<+.*X/5
03"70.%.8t'c:
o ,?B/,,8D5 ".8"$M
+[+<-0-89 Y5-:
;U2/.Ae;8_0F8.$, 8"
$6+'"$J$Y.:
o 2E/0B</(D50v6501>+<
+00.B+C24"v +L8'
A$ U2FRPwV:HEHxyz{SepqkIPpDw|HN}~zuN~•(G0v6#
++Ba7+4`€,_:
{8+6 Yt'cORP%40,+1.'0€
•:bqqb*qq"..*r 8+51.'26
t'cMGF‚t'c‚e*VN:G0€bqq'K0
.%  "8 '  [0     A:)4    0 ORP  1 .'
.VN:0'M[$.VN:0+$
VN:0'"B+_] VN:0 \t'c:
I.8t'c$+<>.%+$Q.''f/
.MQ.''fQSX'QQS Y56+L.F
• Q*FO'tO;S€f'.$QPbP f'.$#?QRgbP?$
'O;P:
• QQSf'.F{Pƒƒf'.$IXT.{Iƒ€f'.

• oCU'0.'QQSF0'0XCU+.8"B
4:
Q5.'049.]6.8t'c
UQGPQG'.'P.frT'+<+:
QGP/Y+>.% 8 0"B41:QGP5+6
+5>$--<+>.% ->.%.8:G-y
"=+4"v+<.*X/QG'.'P.fF
* mciExecute * mciGetYielProc
* mciGetCreatorTask * mciSendCommand
* mciGetDeviceID * mciSendString
* mciGetDeviceIDFromElementID * mciSendYieldProc
* mciGetErrorString
1.2.3. "1> .B7D
8
"1> .5 'K012-<8
+ C2-:D-+X5J0 -<+
C2"71207[5M+<:
l+,+  +--.'5bqq$5-<+C27"/
112'Y,0*-#9&+,
_-+ .':;Y012.Y$-<+U„
€,_ C[0.'.%z*8$#C+<-
<'0 Y0*$554]. +,-,
_.*:T#C-bqq$%"/112'6
C2.@"'_#* '.',_Fn.%
t'.$SX$P.SX'..$::: >*.'6@-./"#'
.*$'+<10.%!8:D'.$
41*+J$#*+J,_.+<-'
+5+A4$ *+…Y *+J'&**+01
2$&*../-!:
†+<bqqF

o T#C2"5YFbqq@+5X-"\.\"5
Yn'"5+.7 ~$.0'"W
-.%'C2bqq:
o G-<+-- + '.%0F@4# 
0'L+U„,_04[ '
.%+-C2.bqq+,"8B:
o I'.#!00>.%FQ512-
<C20bqq "v"/1>.%':G0
0.<4m +--0'% '.'
5bqq YU$+-'*-<+C2
.'012 "vGhh*;?:
1.2.4. 7,8,/
G.%+<*.%+<5'40*U
+L"$+0.<+<'K0 Y0"B41:Q`
.%+<1 Y5"B/+B:G.%*'.5'
+<' Y"B1 Y-90"0*U+L":D-/
0+<> CY"B+-:I.%+<W/'
4'+ 0412:
IM+]+#. .$.%+<"B40*
U+ .8'5"B412< 5+2<
'K5.%$M+'L124$
0.'6 Y"B+-:GU'U.'6*4
>.+_. .$ A+#C
22+<'8#d[ Y4%:
1.2.5. 6(,;=(,8F/,(<(8,B6D
9
G++!4,H"I).c.O".'q*.+- .W/
0" 41n40+&$'+-40
,l.Q'4#+*+J+<*.8064
10:

I.850*U$)Oq "#-<+'.%+<'0"'
 'KY…n00*U1+5'+<
' Y04//$!L.*>.+
41:
)OqM'K0>.% 8+< .%+5>$012
/'"v0/8d+pe0]+
41:‡0.%.n-441M+
'/.A5GRk:Q`'GRk-5.A>2<PeOr
P.'eO..:PeO+'0'+5"#0*U
-ˆ+<C2"70'0>.% "8B:Q5.'1
!U5.%"8B'K5>.%+< 5>
'0.'5/'4#9&>GRk2
<:e+-$ .%"8B+<GRk2<:)OqA'
0*U0$+0-<C254
13 -0":
1.3. ./0F.9J,I*+,- (+"#,:;<=/
1.3.1. 7,8K
b.o5>+0'>.%12ORP
.8t'c$/5"52+,d'00U!`.
'+_'$&$ +L012$0M
[.'5.W:
b.o+"YF
o G+)LF46‰b.o$-5>0ORP
//'87''+5!'
.'t'c:I9Y#-<0+5+0ORP
F
 b.b.cF‡#^"L+_':
 b.VbFG/U!Vb//:
 b.PF)`.0"B>$<#0j'*
Y:

 b.e'FG/1& "5.5:
 b.e'VbFTA'1&Vbn<'Nb
M:
 b.eFTA+L04$0b. .50
+5
10
o G++"#F"'_0ORP7/12$>2#!
Y#:G0B 2Y*-U+5>
Y0"B:qY*_-F
 b.VbFG/>0U!"<3Vb:
 b.R*F)`.M[9
:
 b.e'cF‡#^0ee'c:
 b.O'FG/#!'%:
 b.Q'F  G  /  #  !    \  Vb:
o G++!FY.8[b.o$--<>20
U!Y.8Q ƒ''"'_F
 DQF)`. '-.'0*U:
 O Q' F?5029#^ .%3QRST$`
. 0€& #:
 De'cF  )`  .    .*  0  5      9
P.:
1.3.2. MM+8
MM+85.'"5ORP7$3U J"89+ /
+K'.$#K'.$XC^$.* > '$'
*:ƒƒ++00'"76+5$#!`.+.Mn
t'c$qXYQpeo:D'.'.'/.A$37.5
`.+-.78+014]40
.<:
ƒƒ"'_F

o I F
 (<;8FJ0"5,'0 #,' ' ':
 (;88F'' Y0"B$.%9#^"B>X/ '$
':
 (N8,F>02XC^$mC$1.8 '$':
 (C<,(F9#^0+B>X/$/.A€ $$:::$'1
.*>'$ '$.$:::
 /=/(8F[.' *+Jm$',UŠ$*<+J+B+<
#$:::

o GqPG'qP.fr'WF
 CC+(F512\v*'$ '[+<0ORPff:
 CC+8F12-#!+]'$ 'n_0$
XC^$*<+J$mC X/.0<+B0$
10:
 CC+,<F8F512-#!+]$>##0_+
0 X/"0'0'50.9'M[:
 CC/8,8,5-#!50*B 2+<. 'g'Y0
'1{IRg{IeRg)IIR:
11

lA0&'Z.'CC+8F
ffmpeg [global_options] [input_options] –i [input_file] [output_options]
[output_file]
I.'+-F
 |'"‹''•F0Œ]+L:
 |‹''•F0Œ]+L'€+4 ':
 Z|‹€•F+M…€ '6:
 |'‹''•F0Œ]+L'€+U:
 |'‹€•F+M…'€+U:

"#O%,?./0 P;Q;8<
2.1. RP;Q9
2.1.1. SG
;<;8<98,8(8$+ =9$5++B
'.Q.''f+Y '0HH!HyyN:O;P>-
<1#&  '.'5'.'K+_"5>
12
&Z YZ ':Gs60+B 'b;b$O;P€`.
W&  '$L[0U!*U+C2:
I>O;P1W'0:)40`O;P@C
2 ' '.:Q5*+J+#'5`O;PC2
 '+W\5'.:G`O;P*82#"'
_-5+<•.Ž'L•QPbP.Ž5W"J:
G0•.Ž+<-<+<<0"B' •QGP '
*.Ž:G0•QPbP.Ž-<7+5'0`:
O;P5…X/{'.P.ƒƒ'.{Pƒƒ$.'+-&
5>06$*+':Q`•+'•+X0+B
"7ƒ'.GG:Q5>O;P-5+'*/.'5>
+B{Pƒƒ$+-+6"="5 5[*]
6:
2.1.2. ,?9T9MM
I>O;PC2…O;P{Pƒƒ:Q…O;P{Pƒƒ++Ba"7,"6^
F•O;P•:I/#0€O;P"'_6qPeI"="5:G06X0+B
0+B0W W:I>O;Ps-<"'_5
+'PX:'[*]*X0+B B.U6.'>:Q5
>O;P Y04-+BF
RIFF ('AVI '
LIST ('hdrl'
.
.

.
)
LIST ('movi'
.
.
.
)
['idx1'<AVI Index>]
)
l6qPeI 6X6'6{Pƒƒ•O;P•:l6•O;P•X0+B>
5>O;P{Pƒƒ:l6qPeI•.‘+Ba+B 
*84+4860:l6qPeI•' Ž1'0+'
O;P 61N+*8460:l6•XHŽ[*]6
PX:I>O;P#+A"4'.%U:
13
l6qPeI•.Ž qPeI•' ŽC26''A:;U2
+&*<0O;P{Pƒƒ7.5 Y064+<'6
qPeI•.Ž qPeI•' ŽF
RIFF ('AVI '
LIST ('hdrl'
'avih'(<Main AVI Header>)
LIST ('strl'
'strh'(<Stream header>)
'strf'(<Stream format>)
'strd'(additional header data)
.
.
.
)
.

.
.
)
LIST ('movi'
{SubChunk | LIST('rec '
SubChunk1
SubChunk2
.
.
.
)
.
.
.
}
.
.
.
)
['idx1'<AVIIndex>]
)
)%+&*#061.'6qPeI•.Ž qPeI•' Žs
6•XHŽF
14
Hình 2.1. Hình minh họa cấu trúc cơ bản file AVI
15
2.1.3. +!(968(;8,
G/.AQO;P).1'"5''"5>O;P:D-
16• Žv.'6qPeI•.Ž+'+4>O;P{Pƒƒ:I.'
>O;P$48+*++Ba 7"6U• Ž:R48+

1 >$’6.7.'> 
.5 '`O;P:R48+U-/.A+
+BaF
typedef struct {
DWORD dwMicroSecPerFrame;
DWORD dwMaxBytesPerSec;
DWORD dwReserved1;
DWORD dwFlags;
DWORD dwTotalFrames;
DWORD dwInitialFrames;
DWORD dwStreams;
DWORD dwSuggestedBufferSize;
DWORD dwWidth;
DWORD dwHeight;
DWORD dwScale;
DWORD dwRate;
DWORD dwStart;
DWORD dwLength;
} MainAVIHeader;
T#U05UF
• I5 U ;=,<U88,M,(8 X0+B'#M 0
%:T0.B*m..vMJ<'>:T0.B*
U"v.'&*:
• I5U;=(VW8/8,U8X0+B0.BX/Xm6+.
>:T0.B*'"6"*.8&*6#XC^+<
<5`O;P'9*+B"70601.'8
+U 68+.:
• I5U;=M(/1"/%M'>:e+&*#0M+
BaF
hO;Pƒ‹)OePDbSoF'">O;P-56•XHŽ

h O;Pƒ‹QkeIkeSPDbSoFm..vm68+C2+<X0
+B1.%3:
hO;Pƒ‹PePDIS{qSO;SbFm.0>O;P+X@:)6
-<-WX@n5GbZ{pQ@9#
X@:
hO;Pƒ‹tOeGORIk{SƒPqSF'"0>O;P5>+
&"J+L"[+<2 'M:IM$2>
+,+&#MC2+<> '-
16
+9#..'>:DM*+>$51
28#"0'M[.Y.8> YM*:
hO;Pƒ‹GpR“{PT)ISbFm..v>O;P1"#9*:
hGMO;Pƒ‹)OePDbSo O;Pƒ‹QkeIkeSPDbSoF02'0>
Y56X:GMO;Pƒ‹)OePDbSom.5m6-L:GM
O;Pƒ‹QkeIkeSPDbSom..vm68+C2+<X0+B1
.%3:lM*+>$-2^=+L >
^6.'0>1 Y1.%"*
• I5U;=<(M,(8/m.J6%.'>:
• I5U;=9(M,(8/+C2'>X@:D"-
'>X@$m+B6%.'0>.Y
%"+4`O;P.'5U*:
• I5U;=U,8(/m+B6..'>:;2F5
>-'  '-NW:
• I5U;=U8/8;WCC8,UX8m+B0^UY"5+
' +]0>:D-$UY*8+Y+<16
Y/.'>:D>~$'L-90\$4
0@#0&6"5Y.'0@#
/:G'5>X@$UY"5+8+Y+<+]'"5
•.'.Ž
• I5U;=:; c)m+B.5 '>

O;P'+ BX:
• I5U;=U(8 ;=T(8+C2+<m+BmM
>@C2:D'mM*$`W-<-m
M.8'-:ImMg'+U"7
Kc{gce:
• I5Uce. 4cqm+BM"=+4>O;P
>:G0+ B+X0+B"7ce c{:
I5Uce.M>~:
2.1.4. @09UY<Z
Sau thông tin của tiêu đề là một khối LIST “movi” chứa dữ liệu thực tế trong stream,
dó là các hình ảnh và âm thanh. Các khối dữ liệu có thể cư trú trực tiếp trong khối
LIST “movi” hoặc chúng có thể nhóm trong khối “rec”. Các nhóm “rec” ngụ ý là
khối nhóm nên đọc tất cả một lần từ đĩa. Điều này được sử dụng cho tập tin chỉ định
xen kẽ để chơi từ CD-ROM.
Giống như bất kì khối RIFF, khối dữ liệu chứa một mã bốn kĩ tự chỉ định loại khối.
Mã bốn kí tự xác định mỗi khối bao gồm số lượng các stream và một mã hai kí tự
định nghĩa loại thông tin đóng gói trong khối. Ví dụ, một khối dạng sóng là được xác
định bởi mã hai kí tự là “wb”. Nếu một khối dạng sóng tương ứng với stream thứ hai
LIST “hdrl” miêu tả, nó sẽ có mã bốn kí tự là “01wb”.
Do tất cả các thông tin định dạng là trong tiêu đề, các dữ liệu âm thanh chứa trong các
khối dữ liệu không chứa bất kỳ thông tin về định dạng của nó. Một đoạn dữ liệu âm
thanh có định dạng sau (## là đại diện các định danh stream):
17
WAVE Bytes '##wb'
BYTE abBytes[];
Dữ liệu video có thể được nén hoặc không nén DIBs. Một DIB không nén có
BI_RGB chỉ định cho các trường biCompression trong cấu trúc BITMAPINFO liên
kết. Một DIB nén có một giá trị khác hơn BI_RGB quy định trong thuộc tính
biCompression.
Một phần dữ liệu cho một DIB nén chứa dữ liệu video RGB. Những khối được xác

định bằng một mã hai ký tự của `` db '' (db là một từ viết tắt cho DIB bit). Khối dữ
liệu cho một DIB nén được xác định bằng một mã hai ký tự của `` dc '' (dc là viết tắt
cho DIB nén). Cả đoạn dữ liệu sẽ chứa bất kỳ thông tin tiêu đề về DIBs. Các đoạn dữ
liệu cho một DIB không nén có các hình thức sau đây:
DIB Bits '##db'
BYTE abBits[];
Đoạn dữ liệu cho một DIB nén có dạng sau:
Compressed DIB '##dc'
BYTE abBits[];
Khối Dữ liệu video cũng có thể định nghĩa bảng màu mới được sử dụng để cập nhật
các bảng màu trong một chuỗi AVI. Những khối được xác định bằng một mã hai ký
tự của `` pc '' (pc là một từ viết tắt cho sự thay đổi bảng màu). Cấu trúc dữ liệu sau
đây được xác định thông tin bảng màu:
typedef struct {
BYTE bFirstEntry;
BYTE bNumEntries;
WORD wFlags;
PALETTEENTRY peNew;
} AVIPALCHANGE;
Các thuộc tính bFirstEntry xác định mục đầu tiên để thay đổi và các thuộc tính
bNumEntries xác định số lượng các mục để thay đổi. Các thuộc tính peNew chứa các
mục màu sắc mới.
Nếu bao gồm những thay đổi bảng màu trong một dòng video, thiết lập cờ
AVITF_VIDEO_PALCHANGES trong thuộc tính dwFlags của tiêu đề dòng. Cờ này
chỉ ra rằng dòng video này có những thay đổi bảng màu và cảnh báo các phần mềm
phát lại rằng nó sẽ cần phải có bảng màu có sức sống.
2.1.5. @0Y;VZ
ƒO;P-<-56PX6qPeI””Q' ••:G06PX"#
15006  B.UA.'>:*
18

/9#.*>…8"8.'0>$ %51
2-<X0+B B.U5`&'L%# '2<.'
5>O;PY4#9K-:
l6PXC2,"6^””XH••:G/.AF
typedef struct {
DWORD ckid;
DWORD dwFlags;
DWORD dwChunkOffset;
DWORD dwChunkLength;
} AVIINDEXENTRY;
G0$2cƒ$cGpff$ cGq+L+L
.'0>O;P'`6:D>X@$0m6s@
-02'`6””.••:G0””.••8->>MO;PPƒ‹qPeI 
0'0.'5U:
G0a X0+B0+':I.M*C2,6"6^+<
X0+B+'*:
I5Ucƒm+B"/Œ0M'0:G0O;PPƒ‹lS“ƒ{OQSM
m.U.'` ':lU4 '.Y
+<+#K:G0O;PPƒ‹DpIPQSMm.5+'#7+M
5W ':;U2$*+J6"#m."756"#
8
X#*.<B% ':;% >*$5124X0+B+5
5` '$-8C26 YMO;PPƒ‹DpIPQS:I.'
.M*$-@"\95+'"#:G0O;PPƒ‹qPeIMm.6
56qPeI:eC25U+<X0+B'6qPeI:
G05UcGpff cGqX0+B B.U0+' 
+5+'*:G05UcGpffm+B B.U06
.'0>89+•Q' •0:G05UcGq
X0+B+56.n0"*'.{Pƒƒ:
2.1.6. 210;[12

D4=X.'€O;P$-<856””jkDl••:'*
5'{Pƒƒd:G>n+aGbZ{pQC206+<=X
+<]-<++]509#:?-<6C2+'
*+<=X"'0.Y+aGbZ{pQN'"*:G0””
jkDl••-F
AVI Padding 'JUNK'
Byte data[]
19
D Y"/Œ€{Pƒƒ0$/#012+]€O;P8"\9
6'ZO;P->.:–2-<+] 0€O;P8"#'
9#06O;P>]+,:
2.2. RP;Q\S
2.2.1. SG
\S 8  = •D- 0 *8 #+5• Q' R.
SX.T.'5#d-UPepgPSG+0.<'0
"B& %#"v0Kd:GdQRST4+4
8+.= '0x!Hy}}pc$G:G'+**$
QRST+,0.<Vx~ 8n05.8/#0a 
$081$+0.M+]:I8dU1
QRSTPepgPSGjIGHgeGNytTHH:
2.2.2. ,?*+\S
 !
"#$% &'"()*!
+,() /010%2345
I.' 5 '.QRST$ `' - 15*8 C'' : I
M$5*8C'' -15*8C8+' 5*8
C X0+B'#M M''"5$
s+LU<B-:G0*8C' s-15*8
C.5*8C.'`..'' :Q`*8C.
15'L*8C5*8C[ Y0*8

C0+<X0+B.0 +L+<' :
Q5649.]
o f*ƒI*Fm+B'>
o '' F1/#:G1/#0# —>$
+<'KMC2'U'0_"#
0$X0+BA50UX0$ :
o Q F5'' :q48+#52' 
o I.F#5.'0WF '$'$":
o QF1:
20
Hình 2.2. Cấu trúc phân cấp mpeg
2.3. U</2( P;Q9\S
]
%9 %\S^%S
<Q P;Q
Định dạng RIFF Định dạng ISOFF
+2,_
Microsoft Moving Pictures Experts Group
(,(F8F,(8
(;<
Có hỗ trợ Có hỗ trợ
(,(F8C,(8
,(8
Có hỗ trợ Có hỗ trợ
"#
Có (nhờ trợ giúp của phần
mềm hãng thứ ba)
Không
8(;((
Có Không

6J,I+ )
Có (nhờ trợ giúp của phần
mềm hãng thứ ba)
Không
6J,I/,8(
Không Có
`a;8<
Các chuẩn thông qua VFW MPEG-1, MPEG-2
`a(;<
Các chuẩn thông qua ACM MPEG-1 layer 1,2,3
Bảng 2.1. So sánh hai định dạng .AVI và .MPEG
21
"#b%&'()/,8(;8<
3.1. RPc(
e.'L.5—>+<*<+<--<
+XC^5WJ+B 82:G.+.78
*9.] Y0.<P."7 %4M[
-9*.*>++<#0>+Y50
-:;Y.$.%*'LZG-<"=+4<
B.Y'"5>+,+.*+:
I>•e.Ž4+48+C2.'!Hyy~+#
2A' ''*84.80PR+6:
q e.$.*.9P.$"'_5.5
40$"5,-+<6-5$5. ..+<.*$ 
5Y&65+<&6 /5:
G0>+#-#!> C-5
WJ+B'012$+-XC^0 *<+J-
&'L%#:<*-a.v0.>+
0' Y*84$-4#n.'5"5
+:D_+# $@+B

<B:
Hình 3.1. Quy trình Streaming video
3.2. 2(<4,</,8(;8<
22
e. 'C20100+' '+..80
0*U.8YM[+466X+' '4#
+' '+- .80*U:;"#/$. '90.%\
€ '0f.$._4Cnf.Y5"5+.80*U
MX <B5f.+-:;90.%*&L@ 
."5'M$-0&L@''1{IeR${IR 
{IGR:
3.2.1. Giao thức RTSP (Real-Time Streaming Protocol)
{Ie.R.'''{IeR5'1+<.8+
+<C2'0* 0*.. .:T'1
*+C2+<> +<8'B00*U
':
;%1'1{IeRs-K+_ Y'1)IIR${IeR
+Ba5"50U+<4$2 2' +<90
.%*":I.''1)IIR'1-.0%{IeR
'1-X0+B.0:Q5+B+C24+<
'‰08'B90.%. ']6
8':Gs6)IIR${IeRC2IGR'1+<*.%
56+46Y+46 0++<<{IeR+C
"70*Y0*. .:D-s+<0+0.#n0*
. .Y0*:GJL+B+C2"7'1*xxE:
<—>e. '''1{IeR/0*
#C80*. ... ..9 #'5
.%/+B:
48$0*@C*84pRIPpDe„ Y+M.\Y€ '
4XY0*. .$+<0*. ./>+M*F

GZ˜e pRIPpDe.FggX:'g:E{IeRgH:~
Ge9FH
{9.FZ*
R.'X*Z{9.F™Z
eZ˜G {IeRgH:~N~~pl
G9FH
R"FbSeG{P?S$eSIkR$ISO{bptD$RqO“$ROkeS
D0*. ..# ,/>+M.8%0*2C*8
4bSeG{P?SY0*. .&U+M:Q5*84bSeG{P?S"'
_5+M{IeR-.Fgg <+0.#nU. .:
GJL+B+C2''1{IeRxxE J*+C2
'#'14' >kbR IGR:I++0n0*. .
'*84bSeG{P?S0*"'_"#8#8'
Be'b.'R.'''rebR:D'..'+.# n0*
. .W80+MUY€ '4.'
23
€ '+--.5…2+ &:;+9.]/7.'
"#8#8'B*._ ' .
_&+' '+--_& '.'0f.:
GZ˜e bSeG{P?S.FggX:'g:E{IeRgH:~
G9FN
eZ˜G {IeRgH:~N~~pl
G9FN
G'Z?F.FggX:'g:E
G'ZI*F'g
G'ZqFEš~
Qw '~{IRgO;Ryš
Ow'.'F.w~
Ow.Fw~Zu:uEH~~~
OwFwu:uEH~~~

Ow.FyšQRE;ZSegxxEE
Ow*F.zŽ 'gQRE;ZSeŽ
OwO ?.F.zV~E~H}
Owe.DF.zŽ '.Ž
Qw'~{IRgO;Ryu
Ow'.'F.wH
Ow.Fw~Zu:uEN~~~
OwFwu:uEN~~~
Ow.FyuEZ.gVN~~~gN
Ow*F.zŽ'gEZ.Ž
OwO ?.F.zšxuy~
Owe.DF.zŽ'.Ž
Bảng 3.1: DESCRIBE request
e0*>+++0.#n0*. .*84
bSeG{PIPpD%0*@2C*84eSIkRY0*. .:Q5
*84eSIkR@m.05W."="5
#+.*+':;*84eSIkR"="5#+'
.Y5*84RqO“+Cn0*:“84eSIkR"'_5
+MY€ '4. 5+L#'4' >:
L#*"'_NJ.'+--5J2"5.80*"'_NJ
.'+--5J2"5.80*' >0-{IR
'  ' JW[+<>0-{IGRf'.':
Q0*. .@+0.#"v0X0>06+,+]$ +
'04W U20*. .-<]J%:Q`
_@+/%2<*84eSIkR+'/.Y
0*C*84RqO“:
GZ˜e eSIkR.FggX:'g:Eg.w~{IeRgH:~
G9FV
I.'.F{IRgO;Rzz‹'.w}~~~Z}~~H
eZ˜G {IeRgH:~N~~pl

G9FV
I.'.F{IRgO;Rzz‹'.w}~~~Z}~~Hz. .‹'.wy~~~Z
y~~H
24
e'FHNVExšu}
Bảng 3.2. SETUP request
e'/*84eSIkR$/%+0_+<d"B
.$0*@C*84RqO“+<.*0f.
>n0*. .Y0*$ 0f.*@+.'
5"5+0*$0f.*@+#,'$._+<
B"7.%€ ' &;qG:“84RqO“"'_5+M
….\Y€ '4060*84.Y+-:M*-
<+MJ+<00_'L5+M+›
m05_*/:I.'*84RqO“$0*s@m
.5#.m.‰502<6f."=+4+C 6
f.A:Dm.‰6*$%'"50f.@+
CY0*:;_-"Bn%_
*s@+2_7f.-n9*:
GZ˜e RqO“.FggX:'g:E{IeRgH:~
G9FE
{FwxZN~
e'FHNVExšu}
eZ˜G {IeRgH:~N~~pl
G9FE
e'FHNVExšu}
{IRZPf'F
.w.FggX:'g:Eg.w~z9wy}H~~yNz.
wVEx~~HN
Bảng 3.3. PLAY request
I.'90.%. '$M[6n90.%

.%@C*84ROkeSY0*. .$*84*@n
5*_+.*0f. 0*:Q0*. .@
nC0f.Y0*:
GZ˜e ROkeS.FggX:'g:E{IeRgH:~
G9Fx
e'FHNVExšu}
eZ˜G {IeRgH:~N~~pl
G9Fx
e'FHNVExšu}
Bảng 3.4. PAUSE Request
I.'90.%e. '$M[6nv90.%
.%@C*84ISO{bptD+<n.* A58
'B'1{IeR:Q0*. .@+0.#+X0>'
*84ISO{bptD @nC0f.Y0*:
GZ˜e ISO{bptD.FggX:'g:E{IeRgH:~
25

×