2015-03-22 12 views
9

Tôi muốn tìm kiếm ngẫu nhiên các điểm khác nhau trong video 30 phút 30 giây một lần. Các filesize sẽ là 100mb. Khi tôi tìm kiếm, người chơi có bắt đầu tải từ thời điểm đó hay không, nó có phải tải toàn bộ tệp và sau đó tìm thấy thời gian trong đó không?Việc tìm kiếm video HTML5 có yêu cầu tải toàn bộ tệp không?

+1

dựa trên [this] (http://blog.grio.com/2012/08/how-to-seek-an-html5-video-at-a-specific-time-on-load.html) có vẻ như bạn có thể, ** nếu ** siêu dữ liệu video đã được tải, do đó trình duyệt đã biết kích thước video để có thể yêu cầu máy chủ bắt đầu tải từ vị trí khác, ** và ** máy chủ biết cách tôn trọng yêu cầu chuyển dữ liệu một phần. Cách nhanh nhất để tìm hiểu, tất nhiên, chỉ đơn giản là cung cấp cho nó một thử trên một URL thử nghiệm và xem những gì sẽ xảy ra cho thiết lập của bạn. –

Trả lời

10

Tùy thuộc vào trình duyệt. Nếu chúng ta đang nói về một trình duyệt hiện đại thì khi bạn tìm kiếm, họ thường sẽ gửi một yêu cầu http mới tới máy chủ có chứa tiêu đề Range:, cho biết những gì "đoạn" của tệp mà họ muốn tải. Điều này sẽ chỉ dành cho trình duyệt sử dụng http 1.1 trở lên. Tôi nghĩ rằng nếu trình duyệt hỗ trợ video html5 thì bạn có thể khá chắc chắn rằng họ sẽ sử dụng http 1.1. Xin lưu ý rằng khách hàng thường sẽ luôn tải một cái gì đó. Vì vậy, nếu bạn tìm kiếm 5 giây vào vid nó về cơ bản sẽ bắt đầu tải toàn bộ điều một lần nữa cho đến khi tìm kiếm khác xảy ra.

+2

HTTP/1.1 không phải là vấn đề ... mọi thứ đều hỗ trợ HTTP/1.1. Vấn đề là liệu khách hàng có thể xác định phạm vi yêu cầu nào (không phải lúc nào cũng có thể, đặc biệt là đối với các định dạng có vấn đề). Nó không phải là không phổ biến cho một khách hàng để "thả kim". Nó biết kích thước tệp tổng thể dựa trên các tiêu đề phản hồi ban đầu và cần biết thời lượng video trong thời gian dựa trên một số tiêu đề định dạng vùng chứa. Nó thường sẽ đoán như nơi người dùng đang tìm kiếm và cố gắng giải mã từ đó. Vấn đề là với các định dạng bị mất, bitrate không phải lúc nào cũng không đổi nên thời gian không chính xác. – Brad

+0

Vấn đề khác ở đây là máy chủ có hỗ trợ các yêu cầu phạm vi hay không. Bạn có thể hỗ trợ HTTP/1.1 tốt và không xử lý các yêu cầu Phạm vi. Trong thực tế, điều này là rất phổ biến, đặc biệt là khi mọi người đang viết mã riêng của họ để phục vụ truyền thông mà không nhận ra tất cả những gì họ cần để xử lý. – Brad

+0

Vâng, đó là một điểm tốt. Máy chủ cần có khả năng xử lý các tiêu đề dải cho cả hai bên để có hiệu ứng mong muốn. Tôi đã giả định bối cảnh là một máy chủ web điển hình như lighttpd hoặc nginx, nhưng nếu đó là mã máy chủ tùy chỉnh thì đó chắc chắn là một yếu tố cần xem xét – Harvtronix

1

Không, nó bắt đầu tải từ dấu thời gian nhất định, miễn là trình duyệt biết thời lượng của video.

Các vấn đề liên quan