最近有一个需求精准切割视频剪辑,使用Python+OpenCV库可以做到帧为单位的精准切割视频,但是缺点是OpenCV保存的视频是没有声音的,而且保存的格式也只能为avi格式,比较不方便。
所以尝试使用FFmpeg来切割视频,首先使用的是
ffmpeg -y -ss start -t duration -i filenam -codec copy
但是剪切出来的视频因为视频关键帧前面和后面都会多出来一部分
根据网上资料,加入了-accurate_seek参数在-i前面和-avoid_negative_ts 1参数
ffmpeg -y -ss start -t duration -accurate_see -i filename -codec copy -avoid_negative_ts 1
但是发现视频头部的剪裁精度基本满意但是尾部还是不准
发现将-i参数放在-ss之前可以精准切割
ffmpeg -y -i filename -ss start -t duratio -codec copy
但正如官方所说,其速度非常非常非常慢……
经过查阅资料,发现ffmpeg在进行转码的时候会自动精准时间,即不使用-codec copy编码。
ffmpeg -y -ss start -t duration -I filenam -c:v libx264 -perset superfast -c:a copy
视频可以正确的剪切,但是又出现了个很严重的问题!
部分视频的视频片段较长的时候,内存占用直接爆炸
虽然