it-swarm.cn

多种格式的视频缩略图?

我有一些内部网培训视频多年来以多种格式(AVI,WMV,MOV,RealPlayer)制作,并希望提供类似预览功能的东西 - 可能是带有几个代表性屏幕的缩略图动画GIF,或者可能是缩略图表格我可以每隔几秒钟向用户显示一个图像。是否有一个我可以使用的简单图像工具可以创建这样的东西?

平台不可知会很棒,但它是一次性的(现在,哈哈),所以Windows,Mac或Linux都可以。谢谢。

4
artlung

我只是认为这应该在python中轻松完成,Google搜索“python video thumbnail”会导致此站点:

http://notbrainsurgery.livejournal.com/29773.html

你可以试试那里提供的酸性代码......

3
mbrochh

不能错过视频系统的圣杯,FFMPEG。它完成了您在在线视频中可能需要的所有内容 - 采用多种格式并转换为另一种格式,缩略图等。经过大量修改的FFMPEG工业变体使YouTube能够按照它的方式工作。

这是一个快速命令行tut for thumbnailing: http://blog.prashanthellina.com/2008/03/29/creating-video-thumbnails-using-ffmpeg/

还有许多其他功能。

2
bpeterson76

我已经回答了如何在Stack Overflow上做到这一点 这里 使用ffmpeg和PHP。

对于以代码为中心的答案感到很抱歉,但是通过编写一些实际代码可以轻松地完成批处理过程。

/**
* ExtractThumb, extracts a thumbnail from a video
*
* This function loads a video and extracts an image from a frame 4 
* seconds into the clip
* @param $in string the input path to the video being processed
* @param $out string the path where the output image is saved
*/
function ExtractThumb($in, $out)
{
    $thumb_stdout;
    $errors;
    $retval = 0;

    // Delete the file if it already exists
    if (file_exists($out)) { unlink($out); }

    // Use ffmpeg to generate a thumbnail from the movie
    $cmd = "ffmpeg -itsoffset -4 -i $in -vcodec mjpeg -vframes 1 -an -f rawvideo -s 320x240 $out 2>&1";
    exec($cmd, $thumb_stdout, $retval);

    // Queue up the error for processing
    if ($retval != 0) { $errors[] = "FFMPEG thumbnail generation failed"; }

    if (!empty($thumb_stdout))
    {
        foreach ($thumb_stdout as $line)
        {
            echo $line . "\n";
        }
    }

    if (!empty($errors))
    {
        foreach ($errors as $error)
        {
            echo $error . "\n";
        }
    }
}

没有比这更多的跨平台。

这是旗帜的细分:

  • -itsoffset标志是视频中拍摄快照的时间
  • -vcodec是输出类型(png更改为png等)
  • -vframes设置为1,因为你只提取一帧(IE是图像)
  • 您可能还需要添加-deinterlace

就是这样。没有那么容易。如果您正在为电影制作多个屏幕截图,只需更改-itsoffset标志即可。除此之外,它是一个完整的包,除非您选择添加更好的错误信息或抑制输出。

1
Evan Plaice

我认为 Flowplayer (这是非常好的文档和很多例子)或类似的东西是一个更好的解决方案作为你可能需要编辑或维护的片段。

一旦FlowPlayer配置正确,它可以在不加载完整视频的情况下提供拇指。配置它有点棘手,但一旦它工作,你就有了坚实的多平台解决方案。 (点击视频播放的拇指;-))

如果您选择flowplayer,您还应该看一下 video4all (使用html5和flowplayer作为后备)和 flowplayer-plugins

0
fwaechter