Live video streaming là gì?
Live video streaming là hệ thống giúp bạn xem trực tiếp bóng đá, tivi, concert qua mạng Internet, gọi video call cho bạn bè qua Skype, Facebook Messenger, hay điều khiển robot từ xa (telepresence).
Hai vấn đề chính với hệ thống live streaming?
1. Tín hiệu nhận từ hệ thống live streaming bị chậm hơn so với tín hiệu trên tivi: Bạn hẳn sẽ rất khó chịu khi nhà bên cạnh đã hò hét ầm ĩ khi có bàn thắng trong khi tỷ số trên màn hình máy tính của bạn vẫn là 0-0.
2. Bị dừng hình trong lúc đang xem (buffering): Vấn đề này gây ra do hệ thống không thích ứng được sự biến động đường truyền Internet , đặc biệt là trong các trường hợp dùng Wifi hay mạng di động.
Hệ thống live streaming hoạt động như thế nào?
Trước hết, các bạn cần phải hiểu một số khái niệm, thành phần cơ bản cho việc truyền video qua mạng Internet.
1. Video Capturing (Thu video): Việc thu video được thực hiện bằng việc chụp các ảnh liên tiếp nhau. Phổ biến nhất hiện nay là 30 hoặc 60 ảnh trên 1 giây (30/60fps). Bạn có thể thu video từ camera của smartphone, webcam của laptop, hay từ các máy quay chuyên nghiệp.
2. Video encoding/decoding (Nén/giải nén video): Video gốc thường chứa rất nhiều thông tin dư thừa, ví dụ như hai ảnh liên tiếp nhau thường có rất nhiều phần giống nhau, thậm chí trong cùng một ảnh cũng có những phần giống nhau. Ngoài ra, có rất nhiều thông tin trong video mà mắt con người không phân biệt được. Những đặc tính này được sử dụng để làm giảm kích thước của video gốc thông qua loại bỏ các thông tin dư thừa. Quá trình này được gọi là nén video. Các công cụ tốt nhất hiện nay có thể làm giảm kích thước của video gốc vài trăm lần. Video với độ phân giải HD sau khi nén có bitrate từ 6Mbps-10Mbps (Bitrate: số lượng dữ liệu tính theo bit có trong 1 giây video). Giải nén video là quá trình khôi phục lại video gốc từ video đã được nén. Việc này sẽ được thực hiện ở phía nhận tín hiệu, cụ thể các trình duyệt Web hoặc các Mobile apps sẽ chịu trách nhiệm việc này.
3. Protocol (Giao thức): Protocol là ngôn ngữ mà các máy tính dùng để giao tiếp với nhau. Cụ thể, thì nó là một tập hợp các quy tắc, định dạng, và hành động để truyền dữ liệu từ máy tính này đến máy tính khác. Có rất nhiều giao thức được sử dụng cho nhiều mục đích khác nhau. Bài này sẽ chỉ tập trung vào các giao thức để truyền video.
![]() |
Hình 1: Các thành phần của hệ thống live streaming. |
Hệ thống live streaming hoạt động như sau:
1. Camera thu video sau đó chuyển cho Encoder
2. Encoder nén video rồi chuyển cho Sender
3. Sender sẽ gửi video đã được nén đến bên nhận Receiver
4. Receiver nhận video rồi chuyển cho Decoder
5. Decoder sẽ giải nén video và sau đó video sẽ được hiển thị lên màn hình người dùng.
Chú ý rằng camera sẽ gửi dữ liệu đến Encoder sau khi thu được một số lượng ảnh nhất định. Các Encoder phổ biến hiện nay bao gồm x264, x265, và OBS. Để phù hợp với live streaming, các encoders hiện nay thường được cài đặt trên phần cứng (hardware-based encoding). Tương tự như vậy, việc giải nén video ở phía nhận cũng có thể được chuyển lên phần cứng để tăng tốc độ.
Việc truyền dữ liệu từ Sender đến Receiver được thực hiện thông qua các giao thức truyền video như HLS, MPEG-DASH, RTMP, RTP/RTSP. RTMP (phát triển bởi Adobe) vẫn đang là lựa chọn phổ biến cho hệ thống live streaming vì nó có thể đảm bảo được trễ thấp. HLS và MPEG-DASH là hai giao thức phổ biến cho trường hợp truyền on-demand (không trực tiếp). Tuy nhiên, nhiều kỹ thuật để giảm trễ cho HLS/MPEG-DASH đã và đang được triển khai.
Việc chạy video ở phía nhận hiện nay phổ biến nhất là sử dụng HTLM5 Video Tag vì nó cho phép chạy video ngay trong trình duyệt web mà không cần cài đặt thêm các plugin bên ngoài như Flash, VLC.
Phần tới sẽ phân tích về trễ của hệ thống live streaming so với hệ thống truyền hình.
No comments:
Post a Comment