Xin hướng dẫn cách làm web livestream bằng PHP?

  1. Lập trình

Mình hiện đang là sinh viên năm cuối ngành công nghệ thông tin và đang làm khoá luận tốt nghiệp đề tài về Hệ thống ôn thi trực tuyến. Mình muốn làm chức năng livestream bằng ngôn ngữ PHP nhưng chưa có hướng làm mong ai đó có thể hướng dẫn cho mình ạ. Xin cảm ơn rất nhiều.
Từ khóa: 

lập trình

Livestream thì hiện tại có khá nhiều công nghệ có thể sử dụng. Tùy vào yêu cầu bài toán của bạn mà bạn có thể lựa chọn công nghệ và tools phù hợp. WebRTC, RTMP, HLS, DASH...

Như yêu cầu của bạn và làm đồ án tốt nghiệp thì cá nhân mình thấy phương án dễ nhất để setup 1 cái stream server là như này, bạn tham khảo thử xem:

  • Server: Nginx - RTMP module
  • Stream từ streamer lên server: RTMP. Tools stream lên có thể dùng OBS, Xsplit cho có giao diện dễ tùy chỉnh, thích nguy hiểm gõ command thì ffmpeg.
  • Server -> User: Nếu bạn viết PHP thì mình thấy HLS là khá hợp lý, có sẵn Nginx luôn cũng tiện, chỉ có 1 điểm duy nhất là HLS latency khá là cao. Nếu bạn muốn latency thấp thì dùng RTMP có điều RTMP yêu cầu flash.   

Tuy nhiên công nghệ trên khá là cũ rồi, mấy module kia cũng có sẵn hết cả config tí là chạy được, chỉ viết mấy cái page PHP để play stream thì đồ án của bạn có khả năng sẽ nát. Bạn thích cái gì mới dễ chém thì có thể thử phương án WebRTC. Hoặc phát triển cái kia lên thành 1 hệ thống hoàn chỉnh có người dùng, tính tiền kiểu subcribe, chat trực tuyến... Hoặc hơn nữa thì sửa cái module RTMP để hỗ trợ LHLS, CMAF... (yêu cầu phải code C bạn ko quen thì khá là khó)  

Trả lời

Livestream thì hiện tại có khá nhiều công nghệ có thể sử dụng. Tùy vào yêu cầu bài toán của bạn mà bạn có thể lựa chọn công nghệ và tools phù hợp. WebRTC, RTMP, HLS, DASH...

Như yêu cầu của bạn và làm đồ án tốt nghiệp thì cá nhân mình thấy phương án dễ nhất để setup 1 cái stream server là như này, bạn tham khảo thử xem:

  • Server: Nginx - RTMP module
  • Stream từ streamer lên server: RTMP. Tools stream lên có thể dùng OBS, Xsplit cho có giao diện dễ tùy chỉnh, thích nguy hiểm gõ command thì ffmpeg.
  • Server -> User: Nếu bạn viết PHP thì mình thấy HLS là khá hợp lý, có sẵn Nginx luôn cũng tiện, chỉ có 1 điểm duy nhất là HLS latency khá là cao. Nếu bạn muốn latency thấp thì dùng RTMP có điều RTMP yêu cầu flash.   

Tuy nhiên công nghệ trên khá là cũ rồi, mấy module kia cũng có sẵn hết cả config tí là chạy được, chỉ viết mấy cái page PHP để play stream thì đồ án của bạn có khả năng sẽ nát. Bạn thích cái gì mới dễ chém thì có thể thử phương án WebRTC. Hoặc phát triển cái kia lên thành 1 hệ thống hoàn chỉnh có người dùng, tính tiền kiểu subcribe, chat trực tuyến... Hoặc hơn nữa thì sửa cái module RTMP để hỗ trợ LHLS, CMAF... (yêu cầu phải code C bạn ko quen thì khá là khó)  

Php dùng để điều phối tương tác, kết nối giữa các người dùng với nhau. Bạn có thể tham khảo livestream với webrtc, rtmp. Mỗi thằng có ưu nhược điểm riêng.

Ví dụ, webrtc dạng video call với lượng kết nối ít thì ok, không mất tài nguyên lưu trữ vì chạy trên nền tảng web. Dĩ nhiên có hạn chế nữa là một số trình duyệt bản cũ chưa hỗ trợ. Với rtmp bạn cần có server riêng, nhưng có thể livestream với nhiều kết nối đồng thời, ...