thắc mắc Thắc mắc về video streaming

OutofMemory

Senior Member
Ae cho hỏi bọn youtube, xivideos, pornhub... Bọn nó xử lý backend streaming như thế nào để có multipe bitrate như 240p, 480p... Như bình thường mình làm dotnet cứ móc cái thư viện ffmpeg vào endcode video từ client tải lên rồi lưu vào server, lúc streaming ra thì chỉ có 1 kiểu chất lượng, nếu muốn có nhiều loại birate thì buộc phải đẻ ra thêm file bên phía server. Thế nên mình ms thắc mắc là chả lẽ bọn youtube, xvideos, pornhub... Tụi nó cũng xử lý streaming video kiểu nhà quê như mình hay chúng nó có cách nào khác thông min hơn. Mình có nghiêm cứu về https://en.wikipedia.org/wiki/Adaptive_bitrate_streaming nhưng vẫn chưa rõ phải lập trình sao cho giống youtube. :sure:
 
Youtube vẫn quê mùa encode ra mọi loại res nhé.
Còn vài loại file với vài device app cơ, mp4, flv, mov.
Rồi khi nào có cải tiến thuật toán nén về video (mới nhất là vp9), audio (mới nhất là opus) nó lại query worker nén lại file gốc thành mớ video nhiều res trên
Cài IDM bắt video biết liền.
Làm streaming video mà tiếc tiền host có mà ăn lol :LOL:
Chi phí hosting quá lớn khiến youtube mãi chưa biết lãi là gì đó fen
 
Last edited:
Nếu chỉ thắc mắc về resolution thì đơn giản là sau khi up video xong sẽ qua bước pre-processing, nó sẽ convert lại video của bạn, kèm thêm cả option "Web optimized"

Cách đại trà (dùng ffmpeg/handbrake cli) để convert qua 144p, 360p, 480p, 720p,... Bạn tự mò template tối ưu nhất mà convert, size vừa phải - quality cao là oke. Đa phần là version 360p/480p sẽ dc ưu tiên render trước rồi đem ra serve ngay. Với cách này thì hỗ trợ mọi thiết bị, bù lại tốn bandwidth vkl thì serve cả cục, cũng như làm webserver dễ overload.

Cách khác cũng đã nổi từ 2019 - HLS, cũng phải convert = ffmpeg nhưng thay vì cả cục thì nó cắt ra từng chunk (tự define size - tầm 2~4MB. VD: video-1, video-2,..., video-99). Cách này có thể save bandwidth (với ai hay coi lướt lướt, việc move ra 1 đoạn từ đầu đến giữa video cũng load nhanh hơn), cũng giúp server nhiều về load. Cơ mà cũng kén devices, giờ 2021 c.bị 2022 chắc độ phủ sóng cao rồi.

Đó chỉ mới là bài toán application. Chưa tính server, storage, serving, bandwidth, cdn,...
 
Youtube tuy là network của nó tốt, gần như lúc nào load cũng nhanh, nhưng mà chất lượng video bị giảm kha khá (so với Twitch là 1 trời 1 vực)
V3so9BC.png
 
Back
Top