Podgląd filmu poprzez najechanie kursorem na pasek na stronie.

0

Krótki zarys problemu. Na stronie znajduje się określona ilość filmów prezentowana w taki sposób, że na każdy z nich przypada mały kwadratowy obrazek z jakimś jednym wybranym ujęciem a pod nim pasek o szerokości równej szerokości kwadracika. Użytkownik po kliknięciu na obrazek jest przekierowany do strony z odtwarzaczem. Po najechaniu kursorem na pasek wyświetlany jest kadr z filmu odpowiadający odległości od lewej strony paska. Czyli np. załóżmy, że internauta najechał kursorem na pasek w połowie jego długości - powinno to spowodować wyświetlenie się klatki z połowy filmu. I dalej, jeżeli najedzie całkiem przy prawej stronie paska wyświetli się ujęcie z końcówki filmu. Wiadomo, lewa strona początek, prawa koniec. Podobnie jest na youtube tylko, że taka opcja jest dostępna w odtwarzaczu.

Czy ktoś wie czego trzeba byłoby użyć do zrealizowania takiej opcji? Jakiekolwiek wskazówki są dla mnie bardzo cenne.

1

Trzeba wyodrębnić sobie klatki filmu do plików jpg, np. zapisujesz jedną klatkę co każde 5 sekund - dla lepszego rozbudowywania takiego kodu w razie potrzeby ponazywaj pliku numerem klatki, albo jako czas w sekundach - generalnie - niech nazwa w jakiś sposób odzwierciedla pozycję w filmie, a nie tylko numeruje kolejne klatki. Potem w javascripcie gdy user najeżdża myszą na pasek - pobierasz sobie ilość sekund Twojego filmiku, pobierasz długość paska przewijania w px, pobierasz pozycję kursora licząc od lewej strony paska - wyliczasz sobie wzorem bieżąca_pozycja/długość procentową pozycję filmiku, mnożysz przez łączną liczbę sekund - i dostajesz czas w sekundach w którym miejscu user najechał myszą. Teraz czas zaokrąglasz sobie do pięciu (zakładając metodę zapisu na serwerze klatki co 5 sekund) i serwerowi wysyłasz prośbę o zwrot obrazka w podanym czasie. Zwrócony obrazek wyświetlasz.

0

Dziękuję bardzo za pomoc. Rozumiem wszystko co napisałeś, chociaż wydaje mi się, że lepszym rozwiązaniem byłoby dzielenie nie co 5 sekund tylko np. co 2% filmu. W sytuacji gdy mamy do czynienia np. z filmem dwudziestosekundowym podział co 5 sekund dałby nam tylko 4 klatki a to jest zdecydowanie za mało. Rozumiem też, że aby uzyskać odpowiednie pliki jpg najlepszym rozwiązaniem byłoby zastosowanie wcześniej odpowiedniego programu, który podzieli film i "wypluje" pliki jpg, a potem wrzucenie ich na serwer. Czy może byłaby możliwość aby serwer sam "w locie" wyodrębniał klatki?

Czy ktoś może wie coś o oprogramowaniu zdolnym dzielić film na owe klatki w sposób wspomniany przez dzek69?

1

jak konwersja wideo to tylko ffmpeg ;)

nawet gotowiec jest: https://trac.ffmpeg.org/wiki/Create%20a%20thumbnail%20image%20every%20X%20seconds%20of%20the%20video

można robić w locie, można sobie przygotować - jak Ci wygodniej

prawdopodobnie szybciej będzie jednak przygotować sobie to wcześniej - bo tak to serwerowi będziesz kazał co chwila otwierać video i tworzyć klatki, zamiast zająć się zadaniami po kolei

0

No super, nie spodziewałem się, że tak szybko problem zostanie rozwiązany. Jeszcze raz dziękuję. Co do "tworzenia w locie" też tak myślałem właśnie, że mogłoby to być dla serwera męczące w szczególności kiedy byłoby dużo użytkowników.

1 użytkowników online, w tym zalogowanych: 0, gości: 1