视频缩略图

Mur*_*lai 3 php video thumbnails

我正在一个人们可以提交视频链接的网站上工作.然后我就把它嵌入了.但是,我想获取视频的缩略图而不保存我服务器中的视频.因此,当我列出视频时,我可以使用缩略图而不是嵌入所有视频.

我的服务使用PHP.假设视频采用SWF格式.

我可以'抓住'缩略图吗?或标签中的任何内容?或者在PHP中,有什么东西我可以远程获取远程视频的缩略图(或帧)吗?

任何的想法?

Naw*_*Man 11

你可以使用'ffmpeg'.通过使用PHP来调用它.

shell_exec  ("ffmpeg -i \"$FILENAME.flv\" -ss 00:00:04 -f image2 \"$FILENAME.jpg\"");
Run Code Online (Sandbox Code Playgroud)

我很遗憾地说我没有测试过,所以先试试吧.

编辑:只是为了好玩,我把它变成了一个功能.这里是:

<?php
 
function GetThumbnailFileName($FileName, $ScreenShortSecond = 10) {
    $VDOLastModifiedDate = filemtime($FileName);
    $Thumbnail_FileName  = sprintf("%s-(%s::%02d).jpg", $FileName, $VDOLastModifiedDate, $ScreenShortSecond);
     
    if (!file_exists($Thumbnail_FileName)) {
        $FFMPEG_Command = sprintf(
            "ffmpeg -i \"%s\" -y -ss \"00:00:%02d\" -f image2 \"%s\" > /dev/null 2>&1",
            $FileName, 0 + $ScreenShortSecond, $Thumbnail_FileName
        );
        system($FFMPEG_Command);
    }
     
    if (!file_exists($Thumbnail_FileName))
        return null;
     
    return $Thumbnail_FileName;
}
 
$FileName  = "Test.flv";
$Thumbnail = GetThumbnailFileName($FileName);
if ($Thumbnail != null)
     echo "Thumbnail file is: \"$Thumbnail\"\n";
else echo "Fail creating a Thumbnail of \"$FileName\".";
 
?>

此功能还会缓存缩略图,并确保在修改VDO时重新创建更新缩略图.

请享用