Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP|ffmpeg]Tworzenie thumbnails z plików Video
Forum PHP.pl > Forum > PHP
fantek
Witam. Zainstalowałem na swoim dedyku

  1. ffmpeg version 0.8.10-4:0.8.10-0ubuntu0.12.04.1, Copyright (c) 2000-2013 the Libav developers
  2. built on Feb 6 2014 20:56:59 with gcc 4.6.3
  3. *** THIS PROGRAM IS DEPRECATED ***
  4. This program is only provided for compatibility and will be removed in a future release. Please use avconv instead.
  5. Hyper fast Audio and Video encoder
  6. usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...
  7.  
  8. Use -h to get full help or, even better, run 'man ffmpeg'


Posiadam pliki video i chciał bym za pomocą ffmpeg-php stworzyć z tych plików pliki thumbnails (przypuśćmy że jeden plik jpg w którym co 1 min będzie robić screena i zapisywać do tego jednego jpg) coś w ten deseń:
http://screenshots.de.sftcdn.net/de/scrn/7...ls-maker-22.jpg

W jaki sposób mam teraz wykożystać tego zainstalowanego ffmpeg ?

Damonsson
Wykorzystaj google może najpierw
fantek
Uwielbiam polskie fora zawsze "użyj Google" albo "gdzieś już to widziałem na forum" .


Jak bym znalazł satysfakcjonujący (czytaj: działający) wynik w google to bym tu kór... nie pisał. Pomogłeś w chu...
Niedziała!!!
  1. $ffmpeg = ‘encoder\ffmpeg’; //put the relative path to the ffmpeg.exe file
  2. $second = 15; //specify the time to get the screen shot at (can easily be randomly generated)
  3. $image = ‘thumbnails/sample.jpg’; //define the output file
  4. //finally assemble the command and execute it
  5. $command = "$ffmpeg -itsoffset -$second -i $video -vcodec mjpeg -vframes 1 -an -f rawvideo -s 150×84 $image";
  6. exec($command);

Niedziała exclamation.gif!
  1. $ffmpeg = 'ffmpeg.exe';
  2.  
  3. //video dir
  4. $video = 'video.flv';
  5.  
  6. //where to save the image
  7. $image = 'image.jpg';
  8.  
  9. //time to take screenshot at
  10. $interval = 5;
  11.  
  12. //screenshot size
  13. $size = '320x240';
  14.  
  15. //ffmpeg command
  16. $cmd = "$ffmpeg -i $video -deinterlace -an -ss $interval -f mjpeg -t 1 -r 1 -y -s $size $image 2>&1";
  17. $return = `$cmd`;


Niedziała wiele innych przykładów w google !.
johny_s
a to może przynajmniej jakiś błąd łaskawie zwraca?
fantek
Dobra działa (możliwe że podawałem złą ścieżkę do fmpeg)

Działający kod:
  1. $ffmpeg = '/usr/bin/ffmpeg';
  2.  
  3. //video dir
  4. $video = 'video.mp4';
  5.  
  6. //where to save the image
  7. $image = 'image.jpg';
  8.  
  9. //time to take screenshot at
  10. $interval = 5;
  11.  
  12. //screenshot size
  13. $size = '320x240';
  14.  
  15. //ffmpeg command
  16. $cmd = "$ffmpeg -i $video -deinterlace -an -ss $interval -f mjpeg -t 1 -r 1 -y -s $size $image 2>&1";
  17. shell_exec($cmd);


Jednak to rozwiązanie mnie nie zadowala gdyż ffmpeg robi zrzuty screenów z filmu odzielnie.

Jest jakieś rozwiązanie używając ffmpeg albo imagemagik aby wygenerować taki przykładowy thumbnail http://screenshots.de.sftcdn.net/de/scrn/7...ls-maker-22.jpg ?
thek
Ale takiego thumba nie dostaniesz "out of the box". Za coś takiego odpowiada osobny skrypt, który sprawdzi ile ma filmik, ile chcesz w wierszu i kolumnie klatek (i je zrobi), wyciągnie odpowiednią ilość, poskłada to do kupy z uwzględnieniem jeszcze danych wyciągniętych z samego pliku video. Niei spotkałem się z gotowym rozwiązaniem tego typu. Zapewne będziesz musiał sam napisać lub zlecić to komuś.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.