Jestem nowy w php. Zainstalowałem ffmpeg w mojej lokalnej wersji. Czy możliwe jest wygenerowanie miniatury pliku FLV? Proszę pomóc ..FFMpeg - Tworzenie miniatury pliku wideo
Odpowiedz
Spróbuj
$ffmpeg = 'ffmpeg.exe';
//video dir
$video = 'video.flv';
//where to save the image
$image = 'image.jpg';
//time to take screenshot at
$interval = 5;
//screenshot size
$size = '320x240';
//ffmpeg command
$cmd = "$ffmpeg -i $video -deinterlace -an -ss $interval -f mjpeg -t 1 -r 1 -y -s $size $image 2>&1";
$return = `$cmd`;
Wyjaśnienie opcji polecenia:
-i filename (ścieżka do pliku źródła wideo za)
przeplot (konwertuje wideo z przeplotem na postać bez przeplotu)
-an (nagrywanie dźwięku jest wyłączone; Nie potrzebujemy go do miniaturek)
-p pozycja (dekodowane jest wejście wideo i rzucił aż datownik osiągnie pozycję, położenie naszego miniatury w sekundach)
-f wyjściowy format pliku
-t trwania (plik wyjściowy przestaje pisać po trwania sekund)
-r fps (ustawia liczbę klatek na sekundę; fps jest wyrażone w hercach (1/sekundę); używamy 1 tak, że łapiemy tylko jedną klatkę)
-y (nadpisuje plik wyjściowy, jeśli już istnieje)
-s WIDTHxHEIGHT (rozmiar ramki w pikselach)
Wskazówka: Umieść wartość ** - i ** po ** - ss **, aby znacznie przyspieszyć proces. –
Tak. Możesz uruchomić ffmpeg z PHP używając right parameters.
Używając ffmpeg-php, możesz użyć $ movie-> getFrame(), aby uzyskać ramkę, a $ frame-> toGDImage(), aby uzyskać GD image.
Jak korzystać z $ movie-> getFrame().? – user1006460
Poniższy skrypt ic stworzony przy użyciu PHP FFMPEG Library. można pobrać informacji wideo i miniatury stosując podane funkcje
<?php
class PHP_FFMPEG
{
function getVideoInformation($videoPath)
{
$movie = new ffmpeg_movie($videoPath,false);
$this->videoDuration = $movie->getDuration();
$this->frameCount = $movie->getFrameCount();
$this->frameRate = $movie->getFrameRate();
$this->videoTitle = $movie->getTitle();
$this->author = $movie->getAuthor() ;
$this->copyright = $movie->getCopyright();
$this->frameHeight = $movie->getFrameHeight();
$this->frameWidth = $movie->getFrameWidth();
$this->pixelFormat = $movie->getPixelFormat();
$this->bitRate = $movie->getVideoBitRate();
$this->videoCodec = $movie->getVideoCodec();
$this->audioCodec = $movie->getAudioCodec();
$this->hasAudio = $movie->hasAudio();
$this->audSampleRate = $movie->getAudioSampleRate();
$this->audBitRate = $movie->getAudioBitRate();
}
function getAudioInformation($videoPath)
{
$movie = new ffmpeg_movie($videoPath,false);
$this->audioDuration = $movie->getDuration();
$this->frameCount = $movie->getFrameCount();
$this->frameRate = $movie->getFrameRate();
$this->audioTitle = $movie->getTitle();
$this->author = $movie->getAuthor() ;
$this->copyright = $movie->getCopyright();
$this->artist = $movie->getArtist();
$this->track = $movie->getTrackNumber();
$this->bitRate = $movie->getBitRate();
$this->audioChannels = $movie->getAudioChannels();
$this->audioCodec = $movie->getAudioCodec();
$this->audSampleRate = $movie->getAudioSampleRate();
$this->audBitRate = $movie->getAudioBitRate();
}
function getThumbImage($videoPath)
{
$movie = new ffmpeg_movie($videoPath,false);
$this->videoDuration = $movie->getDuration();
$this->frameCount = $movie->getFrameCount();
$this->frameRate = $movie->getFrameRate();
$this->videoTitle = $movie->getTitle();
$this->author = $movie->getAuthor() ;
$this->copyright = $movie->getCopyright();
$this->frameHeight = $movie->getFrameHeight();
$this->frameWidth = $movie->getFrameWidth();
$capPos = ceil($this->frameCount/4);
if($this->frameWidth>120)
{
$cropWidth = ceil(($this->frameWidth-120)/2);
}
else
{
$cropWidth =0;
}
if($this->frameHeight>90)
{
$cropHeight = ceil(($this->frameHeight-90)/2);
}
else
{
$cropHeight = 0;
}
if($cropWidth%2!=0)
{
$cropWidth = $cropWidth-1;
}
if($cropHeight%2!=0)
{
$cropHeight = $cropHeight-1;
}
$frameObject = $movie->getFrame($capPos);
if($frameObject)
{
$imageName = "tmb_vid_"1212.jpg";
$tmbPath = "/home/home_Dir/public_html/uploads/thumb/".$imageName;
$frameObject->resize(120,90,0,0,0,0);
imagejpeg($frameObject->toGDImage(),$tmbPath);
}
else
{
$imageName="";
}
return $imageName;
}
}
?>
Funkcja
getThumbImage($videoPath); //pass path to video file //
stworzy liczbę miniatur w folderze określonym w funkcji. Możesz zmienić kod zgodnie z wymaganiami. Działa to, jeśli zainstalowałeś bibliotekę ffmpeg i php ffmpeg.
Patrz link http://tecserver.blogspot.in/2009/07/ffmpeg-video-conversion-tool.html
<?php
$W = intval($_GET['W']);
$H = intval($_GET['H']);
$pic = ''.htmlspecialchars($_GET['file']).'';
$name = 'wapadmin/'.str_replace('/','--',$pic).'.gif';
$location = 'http://'.str_replace(array('\\','//'),array('/','/'), $_SERVER [ 'HTTP_HOST'].dirname($_SERVER['PHP_SELF']).'/'.$name);
if(file_exists($name)){
header('Location: '.$location, true, 301);
exit;
}
$mov = new ffmpeg_movie($pic, false);
$wn = $mov->GetFrameWidth();
$hn = $mov->GetFrameHeight();
$frame = $mov->getFrame(480);
$gd = $frame->toGDImage();
if(!$W and !$H){
$a = "131*79";
$size = explode('*',$a);
$W = round(intval($size[0]));
$H = round(intval($size[1]));
}
$new = imageCreateTrueColor($W, $H);
imageCopyResampled($new, $gd, 0, 0, 0, 0, $W, $H, $wn, $hn);
imageGif($new, $name, 100);
header('Location: '.$location, true, 301);
?>
ten kod nie jest kompletny. powinieneś dodać $ mov = new ffmpeg_movie ("./ Wildlife.wmv"); zamiast "$ mov = new ffmpeg_movie ($ pic, false);" oznacza to, że używasz "Wildlife.wmv" dokładnie na twoim katalogu głównym blisko pliku .php. , a także powinieneś zmienić "imageGif ($ new, $ name, 100);" do "imageGif ($ new," yourname.gif ", 100);" utworzy plik o nazwie "yourname.gif" w pobliżu twojego pliku php. nadzieję, że ktoś pomoże –
Nie nie trzeba określać czasu 1. Aplikacja ffmpeg api udostępnia format obrazu2 i możliwość przekazywania -vframes 1.
$time = 3;
$infile = 'in.mp4';
$thumbnail = 'my_thumbnail.png';
$cmd = sprintf(
'ffmpeg -i %s -ss %s -f image2 -vframes 1 %s',
$infile, $time, $thumbnail
);
exec($cmd);
- 1. Uzyskiwanie migawki wideo dla miniatury
- 2. biegle-ffmpeg błąd tworzenie miniatur
- 3. FFmpeg Jak napisać wideo do pliku
- 4. jak rozpoznać kodek wideo pliku z ffmpeg
- 5. Tworzenie wideo z obrazów za pomocą ffmpeg libav i libx264?
- 6. Pasek postępu kodowania wideo ffmpeg
- 7. Programowe generowanie miniatury CAP dla małego wideo
- 8. FFMPEG- Konwersja wideo do obrazów
- 9. FFmpeg na żywo - pętla wideo?
- 10. FFmpeg - Scalanie wideo z przezroczystością
- 11. Android ffmpeg złe wyjście wideo
- 12. Generowanie miniatury dowolnego pliku audio
- 13. jak wygenerować miniaturę wideo w pliku node.js?
- 14. Jak usunąć jedną ścieżkę z pliku wideo za pomocą ffmpeg?
- 15. Kompresja wideo za pomocą FFMPEG i JNI
- 16. FFMPEG Nie można wyświetlić czasu trwania wideo
- 17. Czy ffmpeg odtwarza cały plik wideo w celu wyodrębnienia obrazu?
- 18. Dekodowanie wideo za pomocą ffmpeg dla android
- 19. FFMPEG - konwersja wideo bez utraty rozdzielczości
- 20. Uzyskiwanie wymiaru wideo z ffmpeg -i
- 21. Odtwarzanie wideo z JavaCV i FFmpeg
- 22. Przycinanie wideo z FFMpeg jest bardzo powolne.
- 23. Użyj FFMpeg, aby uzyskać środkową klatkę wideo?
- 24. Kodowanie wideo H.264 CBR z FFmpeg
- 25. ffmpeg-php, aby utworzyć miniaturkę wideo
- 26. Konwersja wideo z ffmpeg za pomocą GPU
- 27. generowaniu miniatury z wideo - Poprawa prędkości Performance - AVAsset - iPhone
- 28. Meteor.JS CollectionFS Miniatury wideo do grafiki (Magia grafiki)
- 29. Tworzenie wideo ze zdjęć
- 30. Tworzenie wideo AVMutableComposition Wydanie
możliwe duplikat [miniatur odtwarzacza wideo w php] (http://stackoverflow.com/questions/2913172/thumbnail-video-player-in-php) – mario
Możliwy duplikat [Generowanie podglądu obrazu z pliku wideo ?] (http://stackoverflow.com/questions/2043007/generate-preview-image-from-video-file) –