最近有一个需求精准切割视频剪辑,使用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
视频可以正确的剪切,但是又出现了个很严重的问题!
部分视频的视频片段较长的时候,内存占用直接爆炸
虽然将视频转码剪切视频完成了需求,但是偶尔出现的内存占用问题还是很麻烦的。继续寻求别的方法。
考虑是否可以将视频的关键帧设置的很短,这样codec copy模式工作的时候便不会错位太多了
f

本文详细介绍了如何使用Python结合FFmpeg进行视频精准剪辑,包括使用OpenCV的限制、不同FFmpeg命令的优缺点以及内存优化策略。通过调整FFmpeg参数和结合OpenCV,实现了视频和音频的精确切割与合并,有效解决了内存占用问题。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



