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
Truyền Thông Đa Phương Tiện
ĐỀ TÀI
: Kỹ thuật truyền dòng dữ liệu và ứng dụng
trong
truyền thông dữ liệu video-audio.
GV Hướng Dẫn : PGS.TS Nguyễn Thị Hoàng Lan
SV Thực Hiện : Hoàng Hữu Hợi
Phạm Minh Hiếu
– 20121772.
– 20121693.
Nguyễn Văn Phương – 20122252.
Trương Văn Tam – 20122370.
Nguyễn Trung Hiếu – 20121690.
Hà Nội, Tháng 12 năm 2015
PHÂN CÔNG CÔNG VIỆC.
• Tìm hiểu chung về mô hình và kỹ thuật truyền dòng dữ liệu (Data
Streaming) –Hoàng Hữu Hợi.
• Khảo sát các công nghệ triển khai kỹ thuật “Data Streaming” hiện nay trong
các ứng dụng truyền thông dữ liệu video-audio – Nguyễn Văn Phương.
• Tìm hiểu giao thức RTMP (Real Time Message Protocol) – Phạm Minh
tiếp, một hệ điều hành và một hệ thống lưu trữ.
• Sử dụng giao thức UDP. Là giao thức truyền dữ liệu đơn giản và hiệu quả.
Tuy nhiên không có cơ chế nào trong giao thức để đảm bảo việc giao tập tin
media đi . Nếu dữ liệu bị mất, việc stream có thể khiến cho chất lượng bị sụt
giảm.
• Truyền dữ liệu với tốc độ phù hợp tốc độ trình diễn file. Nếu các Streaming
Client nhận được các dữ liệu nhanh hơn so với yêu cầu, nó cần phải lưu dữ
liệu dư thừa trong một bộ đệm. Nếu luồng dữ liệu không đủ nhanh tải về, dữ
liệu sẽ không được mịn màng khi hiển thị.
• Dữ liệu trình diễn xong không lưu trữ ở thiết bị vật lý. Các dữ liệu lưu ở bộ
nhớ đệm sau khi trình diễn xong thì sẽ được xóa ngay sau đó.
3.
Nguyên tắc truyền dòng
Dữ liệu video, audio thu bằng máy thu hoặc lưu ở file sẽ được nén lại. Dữ liệu
nén này sau đó được phân thành các gói có kích thước bằng nhau rồi được truyền đi
qua mạng. Đến nơi nhận, các gói sẽ được khôi phục lại, đồng bộ và giải nén sau đó sẽ
được trình diễn trên client.
Các kĩ thuật chủ yếu được sử dụng trong quá trình truyền dữ liệu thời gian
thực:
• Đóng gói dữ liệu. Tạo ra các gói dữ liệu có độ dài như nhau
4
• Tạo dòng dữ liệu. Dòng liên tiếp các gói dữ liệu được đưa vào mạng theo
nhịp thời gian, phù hợp ứng dụng.
• Đồng bộ dữ liệu. Với cơ chế đồng bộ, ứng dụng tại bên nhận có thể hiển thị
video gần giống như khi nó được khởi tạo tại bên gửi.
chia sẻ bởi các nút mạng. Vì vậy, máy chủ streaming chỉ cần truyền một dòng dữ liệu
tới địa chỉ đại diện của nhóm. Việc này giúp sử dụng tối ưu các nguồn tài nguyên
mạng và giảm tải máy chủ.
Nhóm Multicast có thể được xác định bởi địa chỉ mạng đặc biệt, có địa chỉ Ipv4
từ 224.0.0.0 đến 239.255.255.255. Một nhóm multicast chỉ có một địa chỉ nhóm đại
diện cho tất cả các thành viên trong nhóm và các dữ liệu được gửi đến địa chỉ nhóm
này sẽ được gửi tới tất cả các thành viên trong nhóm.
6
II.
KHẢO SÁT CÔNG NGHỆ TRIỂN KHAI KỸ THUẬT
“DATA STREAMING” HIỆN NAY TRONG CÁC ỨNG
DỤNG TRUYỀN THÔNG DỮ LIỆU VIDEO – AUDIO
Hiện nay kĩ thuật streaming được sử dụng rộng rãi, khi ta xem các video clip,
xem truyền hình trên internet đều bắt gặp streaming.
• Trình duyệt sẽ yêu cầu tập tin đa phương tiện sau thông tin liên lạc server.
• Trình duyệt sẽ đưa tệp tin đa phương tiện đến player và trình chiếu nó
• Sau đó Server sẽ stream tệp video/audio đến player
7
1
Data Streaming được sử dụng trong giao thức RSTP
7.
Các chế độ hoạt động của RTMP
RTMP ở chế độ tiêu chuẩn chạy trên TCP với cổng mặc định là 1935. Ngoài ra
RTMP có thể chạy trong chế độ đường hầm trên một kết nối HTTP sử dụng cổng 80.
Hình 1: RTMP ở chế độ tiêu chuẩn
Hình 2: RTMP ở chế độ đường hầm
9
8.
Cấu trúc gói tin
Server và máy chủ gửi tin nhắn rtmp thông qua mạng để liên kết đến nhữg
server và máy chủ khác. tin nhắn bao gồm audio, video, dữ liệu hay bất cứ tin nhắn
khác.tin nhắn rtmp có 2 phần là phần Header và phần Payload
+ Header:
Messge type: cho biết kiểu gói tin.
Payload Length: cho biết kích thước phần payload.
Timestamp: nhãn thời gian của gói tin.
Stream ID: xác định dòng của gói tin.
+ Payload: chứa dữ liệu thực tế của gói tin.
9.
Quá trình bắt tay
0x00: tiêu đề 12 byte
•
0x01: tiêu đề 8 byte
•
0x02: tiêu đề 4 byte
11
•
0x03: tiêu đề 1 byte
Sáu bít còn lại biểu diễn chỉ số của đối tượng AMF. Một khi đối tượng AMF đã
được nhận đầy đủ bởi client thì chỉ số này có thể được tái sử dụng.
Hình 4: Tiêu đề RTMP 12 byte
Đối với tiêu đề 12 byte thì 3 byte tiếp theo là trường timestamp (little-endian), 3
byte tiếp theo nữa là chiều dài của đối tượng AMF (big-endian), byte kế tiếp quy định
nội dung của đối tượng AMF (xem hình ?), 4 byte cuối cùng xác định source id.
Đối với tiêu đề 8 byte thì bỏ đi trường source id trong tiêu đề 12 byte.
Đối với tiêu đề 4 byte thì bỏ đi trường length, content type trong tiêu đề 8 byte.
Đối với tiêu đề 1 byte thì bỏ đi trường timestamp trong tiêu đề 4 byte nghĩa là
nó chỉ gồm byte đầu tiên chứa kiểu tiêu đề và chỉ số đối tượng AMF.
12
RTMP được sử dụng trong ứng dụng Flash Video trên internet.Một giao thức
đặc biệt cho các ứng dụng máy chủ thời gian thực khác nhau,từ tin nhắn thức thời để
chia sẻ dữ liệu hợp tác với video streaming.
RTMP trong Flash Video được cung cấp bởi phần mềm máy chủ cấp phép từ
Adobe,đặc biệt là Flash Media Server (FMS).FMS được cài đặt trên một máy chủ
được nối mạng và quản lý trực tuyến Flash Video riêng rẽ với các máy chủ Web lưu
trữ các bộ phim Flash.FMS cấp phép cho các trang web âm lượng cao.
2. Phân tích ứng dụng
Một trong những lợi ích của việc dùng giao thức RTMP là phát lại gần như tức
thời của video,cung cấp các tập tin Flash.Video được mã hóa với một bitrate thích
hợp cho tốc độ kết nối của người xem.Real-time-streaming cũng có thể tìm được file
FLV vào bất kỳ thời điểm nào trong nội dung.Tính năng này đặc biệt thuận lợi cho
nội dung trong thời gian dài vì người xem không phải chờ đợi cho các tệp tin video để
tải trước khi nhảy.
Những người muốn lưu trữ video có thể sử dụng thời gian thực streaming video
ở bất kỳ định dạng video nào không chỉ là Flash Video.Khi các luồng video RTMP
dựa vào Flash Video,âm thanh và dữ liệu video chỉ được lưu trữ trong bộ nhớ đệm
Flash Player.Toàn bộ tập tin Flash Video không được sao chép hoặc lưu trữ vào bộ
nhớ cache của trình duyệt web.
Các giao thức sử dụng có thể ảnh hưởng đến chiến lược triển khai Flash
Video.Nếu ta mã hóa các tập tin Flash Video với một công cụ nén,ta nên xác định
giao thức để sử dụng trước khi tạo ra các tập tin FLV.Vì kết nối RTMP gửi dữ liệu
video từ một máy chủ từ xa đến một máy nghe nhạc đệm tạm thời,tốc độ dữ liệu
Video của Flash nên được dự đoán trong suốt thời gian phát lại.Tính nhất quán dữ
liệu tốc độ này chỉ có thể được thực hiện với tốc độ bit không đổi (CBR) mã hóa.Gần
như tất cả bộ mã hóa Flash Video cung cấp các tùy chọn lựa chọn bitrate không đổi
hoặc bitrate biến (VBR) mã hóa.Nếu công cụ mã hóa Flash Video không cung cấp
một sự lựa chọn,nó có thể sử dụng mã hóa CBR.
Nếu nội dung Flash Video được mã hóa với một thiết lập VBR,tập tin có thể có
gai dữ liệu cực mà vượt qua tốc độ bit trung bình của video.Những gai đột ngột có thể
Nếu ứng dụng Flash được thiết kế để chạy từ một nguồn địa phương như ổ
cứng của người dùng hoặc phương tiện truyền thông cố định (CD / DVD-ROM),ta có
thể cung cấp các nội dung Flash Video để cùng tồn tại với các tập tin địa phương
khác được sử dụng cho các ứng dụng. Trừ khi ta muốn yêu cầu một kết nối Internet
cho các ứng dụng Flash để chạy ta không cần phải lưu trữ các tập tin Flash video trên
các máy chủ từ xa Web (HTTP) hoặc thời gian thực máy chủ Streaming (RTMP).
Theo chiều dài của một file video tăng lên, vì vậy nên khả năng sử dụng thời
gian thực Streaming Flash Video (RTMP) trong Flash Video dần tải (HTTP). Bất kể
tốc độ dữ liệu được sử dụng bởi các tập tin video, file còn có kích thước file lớn
hơn. Khi một HTTP-giao Flash Video bắt đầu tải về vào trong Flash Player, theo mặc
17
định các tập tin tiếp tục tải vào bộ nhớ cache của trình duyệt cho dù người sử dụng
đồng hồ nội dung. Nếu ta lưu trữ các tập tin FLV lớn trên máy chủ web , các byte dữ
liệu chuyển giao các máy chủ Web sẽ tăng một cách nhanh chóng, có khả năng tăng
chi phí tài chính của lưu trữ các tập tin. Nếu bạn lưu trữ các tập tin FLV lớn trên một
FMS (hoặc Flash Video Streaming Service), chi phí truyền dữ liệu của bạn chỉ bao
gồm các phần của Video Flash dõi bởi mỗi người dùng.
V.
GIAO THỨC RTP VÀ SỰ KHÁC NHAU GIỮA RTP VÀ
RTMP
Tín hiệu thoại sau khi nén xuống tốc độ thấp được đóng gói lại để truyền đi
trong mạng chuyển mạch gói. Có nhiều cách thức đóng gói tín hiệu thoại để truyền
trong mạng IP. Một trong những cách thức được áp dụng nhiều nhất là bộ giao thức
RTP/RTCP nhờ tính linh hoạt và khả năng giám sát trạng thái dòng thông tin một
cách hiệu quả của nó.
PT (Payload type) của phần tiêu đề RTP ứng với các loại tải trong (payload) mang
trong gói.
Một vài ứng dụng cả thử nghiệm cũng như thương mại đã được triển khai.
Những ứng dụng này bao gồm các ứng dụng truyền thoại, video và chuẩn đoán tình
trạng mạng (như là giám sát lưu lượng). Tuy nhiên, mạng Internet ngày nay vẫn chưa
thể hỗ trợ được đầy đủ yêu cầu của các dịch vụ thời gian thực. Các dịch vụ sử dụng
RTP đòi hỏi băng thông cao (như là truyền audio) có thể là giảm nghiêm trọng chất
lượng của các dịch vụ khác trong mạng. Như vậy những người triển khai phải chú ý
đến giới hạn băng thông sử dụng của ứng dụng trong mạng.
12.
Khuôn dạng gói RTP
Tiêu đề giao thức RTP bao gồm một phần tiêu đề cố định thường có ở mọi gói
RTP và một phần tiêu đề mở rộng phục vụ cho các mục đích nhất định
Tiêu đề cố định gói RTP
12 octets (byte) đầu tiên của phần tiêu đề có trong mọi gói RTP còn các octets
còn lại thường được mixer thêm vào trong gói khi gói đó được mixer chuyển tiếp đến
đích.
Version (V): 2 bit.
Trường này chỉ ra version của RTP. Giá trị của trường này là 2.
19
Padding (P): 1 bit.
Nếu bit padding được lập, gói dữ liệu sẽ có một vài octets thêm vào cuối gói dữ
liệu. Octets cuối cùng của phần thêm vào này sẽ chỉ kích thước của phần thêm vào
này (tính theo byte). Những octets này không phải là thông tin. Chúng được thêm vào
16 bit đầu tiên trong phần tiêu đề được sử dụng với mục đích riêng cho từng
ứng dụng được định nghĩa bởi profile. Thường nó được sử dụng để phân biệt các loại
tiêu để mở rộng.
Length: 16 bits. Mang giá trị chiều dài của phần tiêu đề mở rộng tính theo đơn
vị là 32 bits. Giá trị này không bao gồm 32 bit đầu tiên của phần tiêu đề mở rộng.
13.
So sánh giữa RTP và RTMP
Hai giao thức RTP và RTMP rõ ràng không cung cấp cơ chế để chuyển phát
đúng thời hạn, điều này phải được đảm bảo hệ thống cơ sở. Chúng chỉ cung cấp cơ
chế timestamp để kiểm soát việc playback. Trong RTP có sequence number để kiểm
tra trật tự các gói còn trong RTMP việc này được đảm bảo bởi TCP. Cả hai cùng phải
sử dụng cơ chế vùng đệm để giảm jitter. Có thể nói khả năng của hai giao thức này là
tương đương nhau. Việc chọn RTMP trong đề tài là do nó gắn liền với Flash. Sở dĩ sử
dụng Flash là vì tính đơn giản, khả chuyển và mềm dẻo của nó
Các điểm khác nhau của RTP và RTMP:
RTP/RTCP
-Phát triển bởi IETF
- Chạy trên nền UDP
- File dữ liệu không được lưu lại
- Sử dụng trong mạng LAN
RTMP
- Phát triển bởi Adobe
- Chạy trên nền TCP
- Dữ liệu được lưu tạm thời
- Sử dụng trong mạng WAN
21