今年打算在直播和视频上做点努力,所以通过直播录了不少视频,周末想剪一剪,但是一方面我不擅长剪视频,另一方面也没有合适的工具,所以颇费了一些周折。
后来发现 jumpcutter,按照其作者的设计,它可以识别视频中的 👍 和 👎,只保留 👍 的片段,剪掉 👎 的片段;并且可以自动剪掉没有声音的部分,这样视频可以很快完成初剪。
前面的功能很炫酷,不过对于我来说不太实用,后面的功能比较有价值,于是我试用了一下,记录过程如下:
# clone 代码到本地
git clone git@github.com:carykh/jumpcutter.git
# 安装依赖,位于 requirements.txt
pip3 install Pillow audiotsm scipy numpy pytube
# 然后就可以使用了
python3.9 jumpcutter.py --input_file left.mp4 --output_file ./1.mp4 --silent_threshold 0.06 --silent_speed 99
其它参数如下:
--input_file | 目标视频 |
--url | YouTube 视频,国内用户用途不大 |
--output_file | 输出视频 |
--silent_threshold | 静音阈值,即多小的声音可以认为是有声音的(浮点数,0~1,默认 0.03) |
--sounded_speed | 有声音的片段,以怎样的速率播放(浮点数,默认 1) |
--silent_speed | 静音的片段,以怎样的速度播放(浮点数,默认5,即 5 倍速度) |
--frame_margin | 在有声音的片段两边保留多少间隔(默认1) |
--sample_rate | 声音取样率 |
--frame_rate | 帧数 |
--frame_quality | 质量 |
比如前面我用的命令,就是认为小于 0.06 的声音为静音,静音播放速率 99(基本上直接跳过了)。
我处理了两段视频,感兴趣的同学可以试一试:
接下来我还想做两个功能,有了这两个功能视频处理后基本就能满足我的需求了:
- 找到“嗯”、“哦”、“那个”等无意义的语气助词,把它们干掉
- 识别“上一段不要”这样的语音命令,并且找到最合适的片段干掉
欢迎吐槽,共同进步