批量截取视频片断的实现

最近需要根据时间戳来批量截取avi和mkv视频的片断。

开始是手工操作,用的是avidemux,可以截取,但有两个问题。一是只截取视频,没有字幕,二是截取时软件只能在关键帧处截取,而不能根据指定的时间戳来截取。换了个mkvToolnix,同样只能在关键帧处截取。

而且批量处理很难。虽然文档上说avidemux支持脚本,但试了下不好用。比如api文档上说setMarkA只能传帧号作为参数,而不能传时间参数。而且试了试老是报错。

换了个SolveigMMVideoSplitter,支持按指定的时间精确截取(估计可能是在你指定的时间戳处自动加了关键帧)。而且它提供了一个SMM_BatchSplit.exe的程序,将批量任务用一个xml定义好,就可以批量处理。

于是先编程制作好xml,然后在命令行下执行SMM_BatchSplit.exe(也可在图形界面里操作),就可以批量操作。xml也不复杂,先在图形界面里生成一个作为模板,再根据需要编程修改一些参数即可。

posted @ 2021-02-27 11:22  平静寄居者  阅读(301)  评论(0编辑  收藏  举报