Skip to content
Snippets Groups Projects
Commit d42aa655 authored by Georg Ehrke's avatar Georg Ehrke
Browse files

implement movie previews

parent 8b39a085
Branches
No related tags found
No related merge requests found
......@@ -7,7 +7,6 @@
* See the COPYING-README file.
*/
if(!is_null(shell_exec('ffmpeg -version'))){
class OC_Preview_Movie extends OC_Preview_Provider{
public function getMimeType(){
......@@ -15,28 +14,18 @@ if(!is_null(shell_exec('ffmpeg -version'))){
}
public function getThumbnail($path,$maxX,$maxY,$scalingup,$fileview) {
$thumbnails_view = new \OC_FilesystemView('/'.\OCP\User::getUser() .'/'.OC_Preview::THUMBNAILS_FOLDER);
// is a preview already in the cache?
if ($thumbnails_view->file_exists($path.'-'.$maxX.'-'.$maxY.'-'.$scalingup)) {
return new \OC_Image($thumbnails_view->getLocalFile($path.'-'.$maxX.'-'.$maxY.'-'.$scalingup));
}
// does the sourcefile exist?
if (!\OC_Filesystem::file_exists($path)) {
\OC_Log::write('Preview', 'File '.$path.' don\'t exists', \OC_Log::WARN);
return false;
}
// call ffmpeg to do the screenshot
shell_exec('ffmpeg -y -i {'.escapeshellarg($path).'} -f mjpeg -vframes 1 -ss 1 -s {'.escapeshellarg($maxX).'}x{'.escapeshellarg($maxY).'} {.'.$thumbnails_view->getLocalFile($path.'-'.$maxX.'-'.$maxY.'-'.$scalingup).'}');
// output the generated Preview
$thumbnails_view->getLocalFile($path.'-'.$maxX.'-'.$maxY.'-'.$scalingup);
unset($thumbnails_view);
$abspath = $fileview->getLocalfile($path);
$tmppath = OC_Helper::tmpFile();
$cmd = 'ffmpeg -y -i ' . escapeshellarg($abspath) . ' -f mjpeg -vframes 1 -ss 1 -s ' . escapeshellarg($maxX) . 'x' . escapeshellarg($maxY) . ' ' . $tmppath;
shell_exec($cmd);
$image = new \OC_Image($tmppath);
if (!$image->valid()) return false;
return $image;
}
}
OC_Preview::registerProvider('OC_Preview_Movie');
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment