美文网首页
快速制作三分屏课件

快速制作三分屏课件

作者: vcvit | 来源:发表于2017-04-01 08:38 被阅读550次

在网络发展到今天,知识的传递变得简单,各种网络学校也层出不穷,但是基础的模式还是不变,一个好的老师一套好的片子一段时间的教学

微软的三分屏课件

Microsoft Producer是很早一批制作三分屏课件的工具,不过这个软件应该在windows 2003年代就停止更新了。虽然网络类似工具不少,但是逐帧核对时间点,也是个很费时的事情,PowerPoint的播放计时功能也很难获取时间节点。

课件制作思路

1、拍摄讲者视频,制作video1
2、ScreenFlow录制屏幕PPT,制作video2
3、通过ffmpeg每秒截取video2的视频关键帧
4、通过图片相似度对比,清理多余文件,计算翻页时间点。

ffmpeg截取关键帧

Mac用户直接下载编译好的ffmpeg,放入 /usr/local/bin文件夹下即可使用

ffmpeg -i slide.mp4 -f image2 -vf fps=fps=1 out%d.png

相似图片算法

用计算直方图实现识别相似图片。把图片分隔成16个小块,然后分别比较,最后综合比较结果,从而提高比较的准确率。另外一些算法参考相似图片搜索的原理

from PIL import Image
import os

def calculate(image1,image2):
    g = image1.histogram()
    s = image2.histogram()
    assert len(g) == len(s),"error"

    data = []

    for index in range(0,len(g)):
        if g[index] != s[index]:
            data.append(1 - abs(g[index] - s[index])/max(g[index],s[index]) )
        else:
            data.append(1)
    
    return sum(data)/len(g)


def split_imgae(image,part_size):
    pw,ph = part_size
    w,h = image.size

    sub_image_list = []

    assert w % pw == h % ph == 0,"error"

    for i in range(0,w,pw):
        for j in range(0,h,ph):
            sub_image = image.crop((i,j,i+pw,j+ph)).copy()
            sub_image_list.append(sub_image)

    return sub_image_list

def classfiy_histogram_with_split(image1,image2,size = (256,256),part_size=(64,64)):
    image1 = image1.resize(size).convert("RGB")
    sub_image1 = split_imgae(image1,part_size)

    image2 = image2.resize(size).convert("RGB")
    sub_image2 = split_imgae(image2,part_size)

    sub_data = 0;
    for im1,im2 in zip(sub_image1,sub_image2):
        sub_data += calculate(im1, im2)

    x = size[0]/part_size[0]
    y = size[1]/part_size[1]

    pre = round((sub_data/(x*y) ),3 )
    return  pre    

清理多余文件

把所有相似度超过70%的图片直接删除,只保留唯一图片即可。但是,根据视频质量的差异,可能有的图片相似度要用到90%。

os.system('ffmpeg -i slide.mp4 -f image2 -vf fps=fps=1 out%d.png')


im1 = Image.open("out1.png")
for i in range(5000):
    try:
        im2 = Image.open("out%s.png" % str(i+2))
        diff = classfiy_histogram_with_split(im1, im2)
        print (diff)
        if diff > 0.7:
            os.remove("out%s.png" % str(i+2))
        else:
            im1 = Image.open("out%s.png" % str(i+2))
    except:
        pass

至此,基本可以省去大部分人工核对时间节点的问题,而且也能更好的处理PPT翻页的问题。但是这样做还有几点需要注意:

1、拍摄要求:ppt禁止翻页动画,否则会影响图片识别精度。
2、视频讲解过程不能停顿,后期如果剪辑会破坏时间线

相关文章

  • 快速制作三分屏课件

    在网络发展到今天,知识的传递变得简单,各种网络学校也层出不穷,但是基础的模式还是不变,一个好的老师,一套好的片子,...

  • 【插件】2019顶级PR分屏插件,一键轻松实现画面分屏

    分屏在综艺和旅行的Vlog里,可以经常看到其效果的存在如果单纯用Pr制作所谓的三分屏、九分屏、十六分屏等,其原理无...

  • 视频工具箱-分屏视频

    怎么把多个视频制作成【分屏视频】,朋友圈最吸睛小视频! 分屏视频

  • 制作课件

    下周五要进行说课公开课,课件还没准备,平日里上课很忙,只能把制作课件放到周末做。 新单位的公开课变着花样进行,第一...

  • 制作课件

    一、封面要严谨大方 教学PPT课件的封面是学生等待上课前使用的页面,一般来说是一个反映课程特点的页面,此页不需要太...

  • 1.1.1稿件制作三部曲

    了解了授课三部曲其实也就是知道了制作稿件即课件制作的三部曲! 首先,授课的开场白对应制作课件的前几页,开宗明义,告...

  • 互动教学经验-第9讲-PPT优秀插件及课件运用案例讲解

    如何快速的制作PPT课件,除了PPT本身强大的功能以外,合理运用插件也会让制作变得更加高效。WinXP下能使用OF...

  • 互动教学经验-第9讲-PPT优秀插件及课件运用案例讲解

    如何快速的制作PPT课件,除了PPT本身强大的功能以外,合理运用插件也会让制作变得更加高效。WinXP下能使用OF...

  • PPT优秀插件及课件运用案例讲解

    如何快速的制作PPT课件,除了PPT本身强大的功能以外,合理运用插件也会让制作变得更加高效。WinXP下能使用OF...

  • 7月大作业

    大作业周四我学习了ppt课件制作讲座,学到了很多的ppt制作相关理论和ppt课件制作技巧,真是收益非浅。课件在我们...

网友评论

      本文标题:快速制作三分屏课件

      本文链接:https://www.haomeiwen.com/subject/capbottx.html