Hỏi về cách hoạt động của video streaming

Xin chào mọi người, mình đang muốn clone lại một app xem TV trực tuyến dựa trên một app có sẵn. Tuy nhiên vì là mình clone nên sẽ không được cung cấp API mà phải “mò”. Hiện tại mình đang dùng Fiddler để capture lại network request.
Hiện tại mình chỉ capture được các restful API, còn đoạn làm sao để nó có url của streaming video thì mình đang mắc.

Mình muốn hỏi thông thường một luồng để client có thể bắt đầu xem được video streaming thì sẽ như thế nào. Mình cảm ơn ạ.

Thông thường, đối với những app xem TV trực tuyến thì họ sẽ dùng HTTP Video Live Streaming(viết tắt là HLS). Nói sơ sơ về cơ chế hoạt động của cái này thì video sẽ được chia nhỏ(cỡ vài giây) thành các file gọi là segment, có đuôi là .ts, địa chỉ url của các tệp segment này sẽ được lưu vào một file index với đuôi .m3u8. Khi play một video hoặc luồng trực tiếp thì client sẽ gửi yêu cầu lấy nội dung file index đó, sau đó client đọc nội dung file index, tìm thấy địa chỉ url của segment đầu tiên rồi gửi một GET request để lấy file đó về rồi hiển thị ra cho bạn xem. Trong quá trình bạn xem video hoặc luồng trực tiếp đó, client sẽ ngầm tải các segment tiếp theo về để chuẩn bị cho bạn xem tiếp. Nếu bạn đang xem một video hay luồng trực tiếp nào đó mà thấy hiện tượng ngắt quãng xoay xoay thì đó là do client chưa kịp lấy đoạn segment tiếp theo cho bạn xem. Mà không phải trang nào cũng dùng HLS đâu, một số trang ví dụ như Youtube thì họ không dùng cái này. Để biết thêm chi tiết thì bạn có thể xem bài viết bên dưới:

Giờ, cách giải quyết vấn đề của bạn khá đơn giản(về mặt lý thuyết). Tải một thư viện video player nào đó hỗ trợ HLS, quăng cho nó link file m3u8 và setting vài thứ khác(nếu có) rồi tận hưởng. Tuy nhiên, có hai lưu ý dành cho bạn:

  1. Bạn đang xài ké dịch vụ của người ta mà không được phép. Có nguy cơ họ(người tạo ra app xem TV online) phát hiện ra và fix lại. Không nên công bố công khai app trên nếu bạn không sẵn sàng cho việc họ phát hiện ra và fix lại.

  2. Một số trang như FPT họ làm security chặt chẽ, không cho bạn xài ké. Nếu bạn không bypass được thì khỏi xài ké. Mà tất nhiên không phải trang nào cũng làm security chặt như bên FPT đâu :V.

8 Likes

vậy với các ứng dụng chat video call trực tuyến có hoạt động giống vậy ko bạn

Chắc chắn là không .

2 Likes

Không đâu, HLS chỉ phù hợp với xem video hoặc xem live stream thôi, nó không được phát minh ra để dành cho video call. Video call cần giao tiếp hai chiều và theo thời gian thực với độ trễ thấp nhất có thể, thành ra HLS không phù hợp với mục đích trên. Thay vào đó, người ta sẽ sử dụng socket.

4 Likes

Cảm ơn bro ạ. Thật sự rất chi tiết và dễ hiểu <3

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?