我需要需要从视频/ Stream.So提取关键帧没有任何标准执行。 我正在使用公开简历。 (目前我提取帧每秒这是我需要慢来提高性能。) 因此,如果任何一个已经优化的实施,请在这里回复。关键帧提取从视频
关键帧提取从视频
回答
使用的ffmpeg,你可以用下面的代码中提取的所有关键帧:
ffmpeg -vf select="eq(pict_type\,PICT_TYPE_I)" -i yourvideo.mp4 -vsync 2 -s 160x90 -f image2 thumbnails-%02d.jpeg
接下来室颤的ffmpeg的命令行是描述FilterGraph动态。选择过滤器选择要通过输出的帧。过滤器的常量是“pict_type”和值“PICT_TYPE_I”。所以ffmpeg只是将关键帧传递给输出。
-vsync 2防止FFMPEG以产生用于每个关键帧多于一个拷贝。
-f图像2写入视频帧的图像文件。输出文件名由一个模式指定,可用于生成顺序编号的一系列文件。该模式可能包含字符串“%d”或“%0Nd”。
我会假设关键帧是一个框架,呈现的内容与以前的很不一样(它不是一个正式的定义,但它适合)。取帧我和I + 1。使用cv2.absDiff来计算帧和cv2.sumElems之间的差异以获得所有像素差的总和。为所有框架做这个i。这会将您的视频流减少到一维信号。在该信号中寻找峰值,并选择与这些峰值相对应的关键帧。
FFmpeg的解决方案应该很好地工作。
对于遇到选择过滤器'eq(pict_type \,PICT_TYPE_I)'问题的用户,您可能需要将过滤器设置为'eq(pict_type \,I)'。这被打破了一段时间,所以ffmpeg的某些版本可能无法识别该常量。修复可以看到here。
它终于为我工作的最后一个命令是:
ffmpeg -vf select='eq(pict_type\,I)' -i yourVideo.mp4 -vsync 2 -s 160x90 -f image2 thumbnails-%02d.jpeg
如果有毛病上面的代码,试试这个参数顺序相反。
ffmpeg -i yourVideo.mp4 -vf select='eq(pict_type\,I)' -vsync 2 -s 160x90 -f image2 thumbnails-%02d.jpeg
您可以使用ffprobe来提取关键帧。它是ffmpeg中的一个工具。
ffprobe in.mp4 -select_streams v -show_entries frame = key_frame,pkt_pts_time -of csv = nk = 1:p = 0 | FINDSTR “1”,
需要更多信息 – 2017-06-07 09:52:59
- 1. Java - 从视频中提取关键帧
- 2. 从SWF提取视频帧
- 3. 从视频中提取每秒1帧
- 4. 迅速从视频中提取帧3
- 5. 如何从视频java中提取帧?
- 6. JMF - 从视频文件中提取帧
- 7. iOS从视频中提取所有帧
- 8. ActionScript:从视频/ NetStream提取/修改帧
- 9. 迅速从视频中提取帧
- 10. 用matlab提取视频帧
- 11. 从视频中提取帧的标准为视频字幕
- 12. 从Youtube视频获取帧视频
- 13. 从视频中提取关键帧,用于对某些查询进行视频评分
- 14. iOS将视频帧提取为图像
- 15. FFmpeg的视频缩略图帧提取
- 16. Windows中的ffmpeg关键帧提取
- 17. 确定视频文件的(典型的?)关键帧频率
- 18. ffmpegX从视频中提取
- 19. 从视频获取帧内图像
- 20. 从Xuggler中的帧中获取视频
- 21. 从实时视频流获取帧
- 22. Swift - 从视频中获取所有帧
- 23. 使用OpenCV从.avi视频获取帧
- 24. 以编程方式从Flash中的视频中提取帧
- 25. 使用PHP或Flash从视频中提取帧
- 26. GStreamer如何从流中提取视频帧?
- 27. 如何从使用ffmpeg的视频中提取单个帧?
- 28. 如何从具有透明度的视频中提取帧?
- 29. ffmpeg:从视频中提取图像及其帧数?
- 30. 使用Delphi从m2t格式的视频中提取第一帧
如何在opencv中完成它? – Treper 2013-02-25 09:16:20
我得到'未定义常量或缺失'('在'PICT_TYPE_I'') – puk 2013-12-18 19:14:45
您好!这是一个有价值的命令,但是它的顺序是错误的,你也可能重新调整图像的大小。你应该先把-i video.mp4放到其他地方。它如下所示:ffmpeg -i“yourInputVideo.mp4”-vf select =“eq(pict_type \,PICT_TYPE_I)”-vsync 2 -f image2 thumbnail_%02d.jpeg – 2014-10-21 00:57:45