如何制作flv视频的悬停预览?

时间:2013-02-13 00:50:00

标签: php ffmpeg thumbnails

我正在开发一个托管视频的网站;我确实安装了ffmpeg并且功能齐全。我知道如何从视频中提取单帧以用作显示图像,但我需要找到一种方法,当有人在视频上盘旋时,它会翻转几帧。我一直在寻找解决方案的日子,但似乎没有任何效果。有什么帮助吗?

1 个答案:

答案 0 :(得分:1)

有很多方法可以解决这个问题。如果您指的是播放器中的预览或缩略图的预览,我真的不明白;我将假设后者(但逻辑在任何情况下都保持不变) 从电影中提取帧后,最难完成的部分就完成了。你现在能做什么:

  1. 在悬停时,使缩略图加载“imagename + n”直到它达到404(或者您可以对要加载的帧数进行硬编码)
  2. 从您的框架中自动生成GIF,并在悬停时,使用gif交换静态图像
  3. 如果它是我们正在讨论的玩家,那么你可以使用与#1相同的逻辑:让它按顺序加载每一帧。
  4. 我很快fiddled something。 下面这个例子是伪代码,解释了小提琴

    HTML

    <div class="thumbnail">
       <div class="image">
        <img src="something" class="loaded"/>
       </div>
    </div>
    

    JS

    $('.thumbnail')
        .on('mouseenter',function(){next($(this));})
        .on('mouseleave',function(){stop($(this));})
    
    function next(){
       start timer
       on time, go to next thumbnail
       does it exist? then swap current thumbnail with next thumbnail and stop;
       does it not? check number of thumbnails loaded
         is it equal to 6? then we reached the end, loop back to start and stop;
         is it not? then add the new thumb and begin loading it
            while doing that, loop back to start;
    }
    
    function stop(){stop the timer}
    

    它不是很优雅,绝对不适用于多个缩略图(如果你不为每个缩略图本地存储变量,你可能会遇到问题,无论是使用数据属性还是使用闭包),但是想法。