1. 1. Giới thiệu chung về Streaming Video
Chúng ta đang sống trong kỷ nguyên của thời đại số, Internet là một yếu tố quyết
định. Trong kỷ nguyên số ngày nay, vấn đề giải trí được đặt lên hàng đầu đặc biệt là
dịch vụ xem, phát video trực tuyến. Thay vì phải ra rạp mua vé, thì ngay trước màn
hình PC, Mobile, Tablet của mình chúng ta có thể xem miễn phí hoặc mua những bộ
phim bom tấn của thế giới hay những video hài hước đặc sắc được cộng đồng chia sẻ
bởi các nhà cung cấp dịch vụ video. Học hành, hội họp cũng được rút ngắn thay vì phải
mất một khoảng thời gian đến lớp hay văn phòng thì chúng ta có thể ngồi trước màn
hình và sử dụng dịch vụ hội nghị trực tuyến hoặc các dịch vụ đào tạo từ xa,… Để tạo
nên những sự thuận tiện đó, thì kỹ thuật Streaming góp phần quyết định, là một yếu
tố không thể thiếu và kết nối con người lại gần với nhau hơn.
1.1. Streaming là gì?
Streaming (hay còn gọi là streaming media) là một hoạt động mà các định dạng
truyền thông đa phương tiện được nhận và giới thiệu đến người sử dụng trong khi
đang được vận chuyển bởi một nhà cung cấp. Động từ "stream" trong tiếng Anh ám
chỉ quá trình vận chuyển tài nguyên đa phương tiện; thuật ngữ này chỉ giới hạn trong
cách thức vận chuyển của quá trình trung gian, thay vì là quá trình trung gian, và hoàn
toàn khác biệt với quá trình tải xuống.
1.2. Streaming video
Streaming video là một kỹ thuật được sử dụng khá phổ biến trong các ứng dụng
mạng. Được ứng dụng rộng rãi trong thực tế như: các phần mềm (media player, web
browser, ...) trên các máy khách truy cập và xem video từ các máy chủ theo mô hình
server/client; các ứng dụng hội họp trực tuyến, đào tạo từ xa; giám sát, điều khiển từ
xa qua hình ảnh thời gian thực, v.v... Trong đó có nhiều ứng dụng sử dụng hệ thống
nhúng triển khai kỹ thuật này.
Hình 1 Cách Streaming hoạt động
2. 1.3. Live streaming
Live streaming hay streaming trực tiếp là một thuật ngữ nói về phần nội dung được
truyền tải trực tiếp qua Internet, đòi hỏi phải có một thiết bị truyền thông xác định (ví
dụ như máy quay video, hệ thống trao đổi âm thanh, phần mềm chụp màn hình), một
bộ mã hóa để số hóa nội dung, một nhà xuất bản truyền thông và một mạng lưới phân
phối nội dung để phân phối và cung cấp nội dung.
Hình 2: Mô hình Live Streaming đơn giản
2. Tổng quan về hệ thống Streaming Video
2.1. Một số khái niệm trong kỹ thuật Streaming
- Streaming video (luồng video) thực chất là quá trình truyền các frame của file
video tới người nhận.
- Demand streaming (stream theo yêu cầu) là quá trình streaming một file video có
sẵn ( đã được lưu trên ổ cứng ) tới người nhận.
- Live streaming (stream từ một nguồn tạo video) là quá trình streaming trực tiếp
từ các frame video được tạo ra từ các thiết bị thu nhận video (như camera) tới
người nhận.
- H.264, VP8 là các thuật toán mã hóa cho các luồng video.
- Bitstream là khái niệm ám chỉ một luồng video từ máy chủ streaming tới máy
khách nhận các frame video dựa vào giao thức MMS hay RTP.
- Codec là thuật ngữ ám chỉ chung cho các thuật toán mã hóa đường truyền trong
quá trình streaming audio hay video.
- RTSP (Real Time Streaming Protocol) là giao thức mạng điều khiển quá trình
streaming video hay streaming audio.
- RTP (Real-time Transport Protocol ) là giao thức chuẩn định dạng cho gói tin
(packet) video hay audio được truyền trên mạng.
- Encode: là quá trình chuyển đổi video/audio ở dạng thô sang dạng nén dung
lượng phù hợp với từng thiết bị số sử dụng kỹ thuật giống như MPEG
3. - Transcode: là quá trình chuyển đổi video đã được encode, ví dụ từ MPEG-2 sang
MPEG-4
- Transrate: thay đổi bitrate của một video đã encode
- Transmux: chuyển đổi định dạng của video mà không mất đi chất lượng video
- Bit-rate: là lượng dữ liệu chuyển từ file film lên CPU trong 1 giây để xử lý giải mã thành
hình ảnh và âm thanh. Bit-rate càng cao phim càng đẹp, âm thanh càng hay nhưng cũng
đồng nghĩa với việc CPU phải giải quyết càng nhiều công việc.
2.2. Các công nghệ trong Streaming
2.2.1. Các giải pháp công nghệ
Tất cả các kỹ thuật streaming hiện tại đều hoạt động trên HTTP. Các giải pháp streaming
đang được thịnh thành phải kể đến:
- HDS (HTTP Dynamic Streaming) độc quyền của Adobe
- HLS (HTTP Live Streaming) của Apple
- MSS (Mircosoft Smooth Streaming) của Mircosoft
- MPEG-DASH (MPEG-Dynamic Adaptive Streaming over HTTP) của chuẩn mở
Google
Điểm chung của các giải pháp này là tạo ra nhiều video khác chất lượng (Kích cỡ, Bit-
rate,..) nhưng có cùng một nội dung và được chia nhỏ thành các segment. Các segment sẽ
được cung cấp cho một HTTP (Webserver) để đáp ứng các request của client (Web-
brower, Trình xem video – player,…). Manifest là một tệp tin chứa các thông số như
Bandwidth, Size màn hình, chất lượng stream được cung cấp cho client, client dựa vào các
thông số cài đặt trong manifest mà chọn stream phù hợp với mình. Trong khoảng thời
gian đang stream, bandwidth thay đổi, tự động client sẽ chọn một stream khác phù hợp
để quá trình stream không bị gián đoạn.
Hình 3: Một số giải pháp Streaming
4. 2.2.2. So sánh về các giải pháp
Tính năng Adobe
HDS
Apple
HLS
Mircosoft
Smooth
Stream
MPEG-
DASH
Triển khai trên HTTP cổ điển X X
Chuẩn ISO X
Hỗ trợ Đa kênh Âm thanh X X X
Mã hóa nội dung X X X X
Hỗ trợ phụ đề X X X X
Có thể chèn quảng cáo X
Chuyển kênh nhanh chóng X X X
Hỗ trợ HTML5 X
Không cần các codec Video/Audio X
Hỗ trợ nội dung Video + Audio X X X
Nội dung riêng rẽ như Audio;
Video
X X X
Ghi log người dùng X
HLS và MPEG-DASH đều có thể triển khai trên nền HTTP đơn thuần như Apache, Nginx, IIS,… Còn Adobe
HDS , MSS phải dùng một cơ chế bổ sung trên HTTP thì mới có thể chạy.
3. Kiến trúc và thành phần của giải pháp
3.1. Thành phần Web server
3.2. Thành phần Streaming
4. Mô hình triển khai
4.1. Mô hình lý thuyết
4.2. Mô hình thực tế