「原创声明:保留所有权利,禁止转载」
适用情况:
1、算是一个没有现成对齐算法比较取巧的方法,针对关键帧基本未变的情况,应该基本不会大变
2、原理为将关键帧提取出来,然后按照关键帧的帧数,定位具体位置进行视频切割
3、我们用于测试直播时测试视频类专项的前处理
提取关键帧信息 (需要分别提取两个文件的关键帧信息)
- 将文件关键帧存储成文件
ffmpeg -i source.mp4 -vf select='eq(pict_type\,I)' -vsync 2 -s 1920*1080 -f image2 img_key/core-%02d.jpeg
- 输出关键帧对应的帧数位置
ffprobe -select_streams v -show_frames -show_entries frame=pict_type -of csv sources.mp4 | grep -n I | cut -d ':' -f 1 > img_key/frame_indices.txt
按照关键帧精确时间点
【其中有个错误的尝试,直接使用帧数范围剪切,测试了下好像没法切掉开始的视频段
ffmpeg -i source.mp4 -vf trim=start_frame=501:end_frame=6212 -an source_key_cut.mp4
】
比如提取到文件 1 关键帧范围 a1,b1(指的第几帧),文件 2 关键帧范围 a2,b2
fps 可以从 ffprobe 命令中获取
ffmpeg -i source.mp4 -ss [a1/fps] -t [(b1-a1)/fps] -vcodec copy cut_source.mp4
ffmpeg -i 480.mp4 -ss [b2/fps] -t [(b2-a2)/fps] -vcodec copy cut_480.mp4
-ss 是起始时间点 -t 是持续时间
后续
1、还是得写算法对齐视频,或者配合图像识别算法自动对齐,手动不是长久之计
TesterHome 为用户提供「保留所有权利,禁止转载」的选项。
除非获得原作者的单独授权,任何第三方不得转载标注了「原创声明:保留所有权利,禁止转载」的内容,否则均视为侵权。
具体请参见TesterHome 知识产权保护协议。
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!