Chcę losowo wyszukiwać różne punkty w ~ 30 minutowym wideo co 30 sekund. Rozmiar pliku będzie wynosił 100 MB. Kiedy szukam, odtwarzacz rozpoczyna ładowanie od tego momentu lub musi załadować cały plik, a następnie znaleźć w nim czas?Czy wyszukiwanie filmu HTML5 wymaga załadowania całego pliku?
Odpowiedz
To zależy od przeglądarki. Jeśli mówimy o nowoczesnej przeglądarce, to podczas wyszukiwania zwykle wysyłają one nowe żądanie http do serwera zawierającego nagłówek Range:
, wskazując "porcję" pliku, który chcą załadować. Dotyczy to tylko przeglądarki korzystającej z protokołu http 1.1 lub nowszego. Myślę, że jeśli przeglądarka obsługuje wideo html5, możesz być dość pewna, że będą korzystać z http 1.1. Należy jednak pamiętać, że klient zawsze będzie ładował coś, co jest. Jeśli więc poszukujesz 5 sekund w vidzie, zasadniczo zacznie on ładować całą rzecz, dopóki nie nastąpi kolejne szukanie.
HTTP/1.1 nie jest problemem ... wszystko obsługuje HTTP/1.1. Problem polega na tym, czy klient może określić, o jaki zakres wnioskować (nie zawsze jest to możliwe, szczególnie w przypadku problematycznych formatów). Często zdarza się, że klient "upuszcza igłę". Zna ogólny rozmiar pliku na podstawie początkowych nagłówków odpowiedzi i powinien wiedzieć, jak długo film jest wyświetlany w czasie na podstawie niektórych nagłówków formatu kontenera. Często będzie się domyślać, gdzie użytkownik szuka i spróbuje go zdekodować. Problem polega na tym, że w przypadku formatów stratnych, wartości bitrate nie zawsze są stałe, więc czas nie jest dokładny. – Brad
Inną kwestią jest to, czy serwer obsługuje żądania zasięgu. Możesz w prosty sposób obsługiwać protokół HTTP/1.1 i nie obsługiwać żądań zasięgu. W rzeczywistości jest to bardzo powszechne, szczególnie gdy ludzie piszą swój własny kod służący do obsługi mediów, nie zdając sobie sprawy z tego, czego potrzebują. – Brad
Tak, to dobra uwaga. Sever musi być w stanie obsługiwać nagłówki zasięgu dla obu stron, aby uzyskać pożądany efekt. Zakładałem, że kontekst jest typowym serwerem WWW, takim jak lighttpd lub nginx, ale jeśli jest to niestandardowy kod serwera, to jest to zdecydowanie czynnik do rozważenia – Harvtronix
Nie, zaczyna się ładowanie z podanego znacznika czasu, o ile przeglądarka zna czas trwania wideo.
- 1. Strumieniowanie/wyszukiwanie filmów HTML5
- 2. string.IndexOf wyszukiwanie całego słowa meczu
- 3. Czy HTML5 wymaga atrybutu działania dla formularzy?
- 4. Pierwsze prawdziwe HTML5 wysokość i szerokość filmu
- 5. Wyszukiwanie filmów w formacie HTML5 na iPadzie
- 6. Czy są tam jakieś dobre interfejsy API filmu/filmu?
- 7. Przekazywanie całego pliku do argumentów JVM
- 8. Ruby wymaga błędu "brak takiego pliku do załadowania", ale wyraźnie w ścieżce
- 9. Jak można wyodrębnić dźwięk z filmu w HTML5?
- 10. openCSV nie czyta całego pliku
- 11. Pliki przeciągnij i upuść HTML5 - prześlij po przesłaniu całego formularza
- 12. Interfejs API pliku HTML5 proste sprawdzenie, czy plik istnieje
- 13. Czy FormsAuthentication.SetAuthCookie() wymaga przekierowania?
- 14. Jak zmusić QtCreator do załadowania pliku pro.user?
- 15. xcode: wyszukiwanie według pliku
- 16. Android - użycie DexClassLoader do załadowania pliku APK
- 17. LoadError: brak takiego pliku do załadowania - zmechanizuj
- 18. UIImagePickerController do filmu Pozycja
- 19. Czy można git-checkout pojedynczej linii zamiast całego pliku?
- 20. Czy możemy użyć zmiennej Pythona do przechowywania całego pliku?
- 21. Wyszukiwanie zapisanego pliku na symulatorze?
- 22. Zrzut ekranu z całego ekranu przy użyciu html5/javascript?
- 23. Czy istnieje biblioteka MD5, która nie wymaga całego wejścia w tym samym czasie?
- 24. Czy Docker Hub wymaga przesłania całego obrazu za każdym razem, gdy dokonuję zmiany?
- 25. Python nie odczytuje całego pliku tekstowego
- 26. Czy Parallel.ForEach wymaga AsParallel()
- 27. Android.mk - kompilacja całego pliku źródłowego w katalogu
- 28. wyszukiwanie elastyczne, czy możliwa jest aktualizacja zagnieżdżonych obiektów bez aktualizacji całego dokumentu?
- 29. Szybsze wyszukiwanie w Lucene - Czy istnieje sposób na zachowanie całego indeksu w pamięci RAM?
- 30. C# wyszukiwanie dużego pliku tekstowego
na podstawie [this] (http://blog.grio.com/2012/08/how-to-seek-an-html5-video-at-a-specific-time-on-load.html) Wygląda na to, że możesz **, jeśli ** metadane wideo zostały załadowane, więc przeglądarka zna już rozmiar wideo, więc może poprosić serwer o rozpoczęcie ładowania z innej pozycji, ** i ** serwer wie, jak honorować częściowe żądania przesyłania danych. Najszybszym sposobem na poznanie, oczywiście, jest wypróbowanie testowego adresu URL i zobaczenie, co stanie się z twoją instalacją. –