Archive

Archive for 20/11/2008

Phần Giới Thiệu: Working with Youtube as CDN server in Flash/Flex

20/11/2008 Leave a comment


Click here to view my demo for Youtube – A cool CDN
Hỗm rầy mầm việc với server Streaming EdgeCast cảm thấy nó cùi bắp quá trời. Lúc chậm lúc nhanh, streaming thì bị cache ko xóa đc, đôi khi hình ảnh bị nhèo, có tiếng ko có hình. Quá trời vấn đề đau cái đầu. Một server hàng đầu ở Mỹ mà như thế đấy. Rõ chán !!!

Hồi mình dùng Youtube API thấy rất cool, hiện nay nó đã có API cho actioncript 3. Từ lúc Youtube về tay Google, nó đã thay đổi hẳn, chuyển sang style “share for free” của Google (đây là lý do mà mình rất thích google, dân việt nam mà lị, ai mà ko thích free ^^). Mọi service của Youtube giờ đã được public để developer có thể sử dụng, Google đã biến Youtube thành một CDN mạnh mẽ và free hoàn toàn, chất lượng seek thì mình có thể nói là vô địch, Edgecast thì chỉ đáng xách dép cho bậc thầy này.

Thật sự Youtube không phải 1 streaming server,  có lẽ nó cũng dùng kỹ xảo cắt file như Move network, nhưng kỹ xảo này đã qua mặt kỹ thuật thời thượng streaming về chất lượng và sự ổn định.

Streaming tồn tại quá nhiều vấn đề giữ client và server, ngay cả play, pause, seek, đổi stream thì client cũng phải request lên server để nhờ server thực hiện và kết quả ko phải lúc nào cũng trả về lập tức, thậm chí có khi ko đc trả về do problem connection. Một khi nhiều client gởi quá nhiều request một lúc, server đâm overload và nhiều problem xảy ra . . .

Khắc phục nhược điểm này Youtube và Move network đã ko dùng streaming mà sẵn sàng gởi nguyên file flv cho client về local cho họ tha hồ play, pause, seek. Trên flash bao giờ play 1 file flv cũng ổn định. Nhưng cách này sẽ gặp vấn đề khi user muốn seek đến đoạn flv chưa đc load. Và từ đó Youtube đã sinh ra cách cắt file: ví dụ user seek đến 1 index bất kỳ mà flv chưa đc load, server sẽ tạo ra 1 file flv khác từ file gốc – bắt đầu từ chỗ seek đó, rồi trả về cho client, như vậy lúc nào client cũng nhận 1 file flv nguyên vẹn và mọi thao tác video chỉ còn là ở local. Điều này giảm tải cho server rất nhiều, khắc phục nhựợc điểm server/client.

Tuy nhiên nó có điểm yếu hơn Streaming là ko thể dynamic  chất lượng video (low/medium/high) phù hợp với băng thông user trong quá trình user đang xem. Bù lại Youtube hiện tại đã support luôn chuẩn HD. Nó chẳng thua kém gì streaming server, thậm chí là đã qua mặt, cho nó hít bụi.

Bài sau mình sẽ giới thiệu cách “Working with Youtube as CDN server in Flash/Flex” . Giờ bùn ngủ rồi, đi ngủ cái 😀



Categories: All, Flash/Flex/AIR Tags: ,