远程视频和缩略图 - 全部研究出来

时间:2011-03-27 08:05:26

标签: php video thumbnails

问候所有人,

我一直在努力为我的网站获取缩略图,并取得了相当不错的进展。我已经能够在本地创建图像缩略图,并且可以像我希望的那样在远程服务器上创建这些缩略图。

我遇到的问题是我无法对视频做同样的事情。我已经成功安装了以下每个以及它们的依赖项,并确认它们都在本地工作:

  1. ffmpeg(以及替代ffmpeg-PHP和ffmpegthumnailer)
  2. Imagick(目前正在为所有简单的“图像”缩略图创建工作,本地和远程)
  3. mplayer的
  4. 到目前为止,我一直无法找到允许我从远程服务器上自己的视频文件中捕获缩略图的方法。我尝试连接到远程视频文件的原因是因为这些视频的范围从5MB到300MB不等,我不想在本地复制整个电影只是为了创建缩略图。

    我遇到其中一个“可能”允许从rtmp流中捕获图像,我可以方便地访问...但没有任何结果。

    非常感谢任何想法,

    谢谢,

    Silver Tiger


    来自Silver Tiger的更新:

    看起来我通过第三方获得了替代方法。我使用Zendcoder将视频文件转换为可以在我的Web项目上可靠地运行的标准格式,作为其服务的一部分,他们将自动创建动态缩略图并将其上传到我的Amazon S3并转换为视频文件。

    危机避免了,但是以一种迂回的方式,而不是一个解决方案我可以作为一个“解决方案”提供给其他人不幸。

2 个答案:

答案 0 :(得分:0)

如果你安装了ffmpeg,那应该很容易。试试这样的事情

$movie = 'somefile.avi';  // video file
$time = '00:03:34';       // time where to take the snapshot
$cmd = "ffmpeg -i '{$movie}' -an -ss {$time} -an -r 1 -vframes 1 -y thumb.jpg";

$escCmd = escapeshellcmd($cmd);
system($escCmd);

答案 1 :(得分:0)

也许你可以在远程服务器上有一个脚本来调用?这样,缩略图就在远程服务器上生成,然后传递回前端服务器。

最简单的方法是安装apache(或任何你喜欢的)并在那里托管缩略图生成脚本。 然后您需要做的就是致电:

$imageData = file_get_contents('http://remotehost/generateThunmb.php?videoid=bleh');