mpv插件实现视频的剪辑和拼接功能

最近在剪辑一些乒乓球视频,需要每一球都剪出来,再拼接在一起,但乒乓球一球就几秒钟,所以用final cut x pro那样的软件其实是需求过剩的,剪完一个视频眼镜好痛,难道就没有那种,一边看视频,一边按一个快捷键,定一个切点,每两个切点一个片段,最后自动拼接多好,然后剪出来的视频,画质无损的工具吗?

于是想到了FFmpeg,但是我总不能手动搞时间切点然后导入shell吧。

重新写一个播放器再基于它写各种视频转换插件是成本很高的,发现mpv播放器是支持lua插件的,那就直接借它的成果来用吧:)参考地址:https://mpv.io/manual/stable/#lua-scripting

思路:通过api得到视频的当前时间绑定键盘的快捷键,记录成时间列表,lua再通过shell将它导入一个文件里面保存,之后再根据时间列表生成一个shell文件,执行它,分割合并的任务就能完成了。

然后经过一天的努力,看mpv的文档写lua和shell,再一天的时间找bug和研究怎么让FFmpeg切的更准,插件终于差不多了。我只想说shell是一个好语言,它可以弥补lua在文件操作上的不足,但有时候也颇为古怪,赋值语句=号多打一个空格居然会导致赋值失败。。。

插件经使用mac osx是完美的,linux没有测,估计问题不大,windows不支持,因为得把shell脚本换成cmd脚本,有兴趣的同学,可以按照shell的写法改成cmd哦。

github地址:https://github.com/rushmj/mpv-video-cutter

mpv插件实现视频的剪辑和拼接功能

同文件夹生成剪辑并拼接的视频

mpv插件实现视频的剪辑和拼接功能