分享

分享一个有趣的视频剪切的python代码

 LibraryPKU 2017-08-13

邮箱订阅了hacknews的新闻,每周都会受到一些有意思的链接,而这次看到一个非常有意思的小工具:Videogrep: Automatic Supercuts with Python,即用Python实现的一个视频超级剪切工具。

具体代码托管在github上,看了下文章内容,videogrep是先在视频的字幕文件里搜索匹配,可以指定匹配的内容,也可以用自然语言分析的算法得到字幕中一些内容,比如经常出现的一些文字,然后根据这些内容所在的时间段(字幕.srt文件里都有时间轴的)利用moviepy进行剪切,最后将剪切内容进行合并~想法真棒!可惜作者提供的三个视频都是放在youtube上,只能等下周去公司了在看了^_^

其用法在github上的README内写的非常详细,依赖的库都在requirements.txt中,用下面的命令可以搞定:

pip install -r requirements.txt

除了这些依赖,还要安装ffmpeg,然后在videogrep.py的第一行把ffmpeg对应的安装位置写上去:

FFMPEG_BINARY = '/usr/local/bin/ffmpeg' # moviepy的依赖

使用方法:

最基本最常用的用法:

python videogrep.py --input path/to/video_or_folder --search 'search phrase'

注意:字幕和视频需要具有一样的文件名,当然后缀除外。比如,像my_movie.mp4my_movie.srt这样就可以。

一些选项:

--input / -i 视频或字幕文件,或者包含多个文件的文件夹--output / -o 生成文件的名字,默认是“supercut.mp4”--search / -s 搜索元素--search-type / -st 搜索类型--max-clips / -m 切割视频片段的最大数--test / -t 显示搜索结果,不生成最后的切割结果--randomize / -r 将切割视频片段随机化--padding / -p 在每个切割视频片段的开头和结尾添加的毫秒数

其中搜索search有三个选项:

re: 正则表达式(这是默认的)pos: 部分语音搜索(使用pattern.search)。比如‘JJ NN’将返回所有包含形容词接名词的对话hyper: 上义词搜索。比如“身体部分”将抓取到所有和身体相关的对话。 (搜了一下`上义词`,大致意思是比较抽象的概括性的名词)

作者提供了三个视频结果,虽然还没看到,但觉得效果应该还是不错的,毕竟这个工具的思路是很具体的,直接从字幕入手确定分割片段,然后分割合并。我曾经也用过ffmpeg做过类似的工作,但需要自己确定剪切开始的时间和剪切的时长,相对来说还是有些费事。记得以前听过老师的一个分享,对于足球比赛视频,因为比分一般都是位置固定在视频的某处,可以用一些图像处理方法将比分分析出来,当检测到比分变化时就将这段视频剪切出来,就可以汇总出一场比赛的进球集锦了~~改天好好研究下~~

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多