2015-05-21 20 views
7

Vì vậy, tôi đang cố gắng phát luồng HLS trên HTML5 mà không cần sử dụng Flash. Chúng tôi đã thử nhiều trình phát video nhưng tất cả đều chuyển tiếp trên trình phát flash. Câu hỏi của tôi, có thể phát các luồng HLS (bất kỳ) nào trên HTML5 mà không cần sử dụng Flash không?Chơi HLS với HTML5

(Tôi biết của https://github.com/RReverser/mpegts nhưng nó không hoạt động trên điện thoại di động và là khá lag.)

Trả lời

5

HLS không được hỗ trợ bởi tất cả các trình duyệt. Tôi sử dụng một jwPlayer hỗ trợ cả flash và HTML5 streaming (nếu có). Hỗ trợ cho luồng HLS không may vẫn cần phải dựa vào Flash để hoạt động bình thường trên các trình duyệt khác nhau. Xem hỗ trợ trình duyệt HTML5 HLS: http://www.jwplayer.com/html5/hls/

+1

Nhưng có cách nào để có thể hỗ trợ nó không? Giống như tước dòng trong JavaScript và phát video h264? – Dallox

+0

RReverser có một cài đặt thú vị, nhưng việc chuyển đổi trong JavaScript sẽ rất nặng trên trình duyệt (do đó sự chậm trễ trên thiết bị di động). Tôi không nghĩ rằng giải pháp của bạn nên dựa vào JavaScript để làm việc nặng nhọc. Nhiều trang web sử dụng công cụ phát trực tuyến có thể cung cấp một loạt các định dạng (hls, rtmp, mpeg-dash) để bao gồm nhiều trình duyệt tự nhiên sử dụng HTML5 nhất có thể. Sau đó, họ chuyển sang flash dưới dạng dự phòng. Vì vậy, để trả lời câu hỏi của bạn, nó có thể. Nhưng tôi nghĩ rằng nó có thể không có giá trị nó. – Sixthpoint

+0

điều này sẽ là một dự án mã nguồn mở, vì vậy tôi nghĩ nó chắc chắn sẽ đáng giá cho những người khác. Chuyển tiếp trên máy chủ để làm công việc không phải là một giải pháp cho chúng tôi, vì vậy tôi đoán chúng tôi phải đi với chuyển đổi .. – Dallox

5

Không có trình phát HTML5 HTML5 nguồn mở ổn định trưởng thành AFAIK. Tuy nhiên, có hai dịch vụ thương mại:

  • Viblast Player - rất rẻ và tương đối dễ sử dụng. Điều này chỉ là một phát lại HTML5 HLS tối thiểu. Nhà phát triển phải tự làm giao diện người dùng hoặc tích hợp nó với Video.js/Flowplayer/JWPlayer.
  • Theo Player - Tôi chưa có nhiều kinh nghiệm về điều này. Giá không công khai. Bản demo có vẻ OK và thậm chí nó hoạt động trên hầu hết các phiên bản của Firefox.

Cả hai người chơi này đều dựa vào số MSE API và không hoạt động trên các trình duyệt không được hỗ trợ (IE < = 10, Firefox).

+0

THEOplayer thực sự không yêu cầu MSE. Nó cũng chạy trên Firefox, IE10, Opera, ... – MrP

1

THEOplayer rất thú vị cho trường hợp này. Chúng cho phép truyền trực tuyến bằng cách sử dụng HLS cho tất cả các trình duyệt và nền tảng phổ biến mà không cần sử dụng Flash.

Họ có hỗ trợ cho Internet Explorer, Firefox, Chrome, Opera và Safari trên Windows, Linux, Mac, iOS, Android và Windows Phone.

Ngoài ra, trái với câu trả lời trước đó, chúng không dựa vào MSE để hoạt động. Kết quả là, trình phát này hoạt động trên tất cả các nền tảng và thậm chí cả các phiên bản IE cũ (10 trở lên) và các trình duyệt không hỗ trợ MSE.

+0

Nhưng tôi tò mò, làm thế nào mà họ đạt được điều này? Có phải nó kết hợp với Emscripten để sử dụng bộ giải mã C++ không? – Dallox

+0

Dường như họ sử dụng hỗ trợ phần cứng trong trình duyệt, giải mã tất cả xảy ra trong chính trình duyệt. Nó không xuất hiện để được emscripten. Emscripten có lẽ sẽ quá chậm (xem dự án broadway.js) – MrP

4

Về cơ bản tất cả các trình phát HTML5 cần phải truyền các phân đoạn MPEG2-TS (luồng truyền tải) sang MP4 vì hầu hết các trình duyệt không hỗ trợ MPEG2-TS nguyên bản.

Thực tế, có một số trình phát HTML5 có khả năng phát lại luồng HLS. Một ví dụ sẽ là Bitmovin Player, cung cấp hỗ trợ chuyên nghiệp cũng như dự phòng cho các trình duyệt cũ. Đó là một sản phẩm thương mại, nhưng họ cũng cung cấp một kế hoạch miễn phí. Cũng có các dự án nguồn mở như hls.js.

Tuy nhiên, với Apple's announcement từ WWDC năm nay, giờ đây bạn cũng có thể sử dụng phân đoạn MP4 với HLS, điều này giúp loại bỏ sự cần thiết phải truyền. Thông tin chi tiết về cách thực hiện và ưu điểm được nêu rõ trong . Bạn không chắc chắn người chơi nào hỗ trợ nó, ít nhất là bản cài đặt gốc của Apple trong Safari trên iOS 10 và macOS; Bitmovin cũng đã hỗ trợ nó.

5

Dự án HLS.js khá đáng tin cậy hiện nay (https://github.com/video-dev/hls.js/tree/master). Nó được giới thiệu trong các phiên bản mới nhất của các trình duyệt. Nó không dựa trên Flash. Nó có thể được sử dụng trong flowplayer. hls.js tương thích với các trình duyệt hỗ trợ MSE có đầu vào 'video/MP4'.hỗ trợ trên:

  • Chrome dành cho Android 34+
  • Chrome cho máy tính để bàn 34+
  • Firefox dành cho Android 41+
  • Firefox cho máy tính để bàn 42+
  • IE11 + cho Windows 8.1+
  • Cạnh cho Windows 10+
  • Opera cho máy tính để bàn
  • Vivaldi cho máy tính để bàn
  • Safari dành cho Mac 8+ (beta)
Các vấn đề liên quan