我正在研究一个实时问题,我们需要消除视频中的冗余帧。(可能是带有歌词的视频)在我的示例中,歌词视频歌曲,我们不关心音频。只有包含歌词的帧。但问题是2行歌词,我以20秒结束,多个帧有相同的歌词。所以我对消除那些多余的帧很感兴趣。
在搜索过程中,我找到了这段代码,它可以通过这个- Python - Extracting and Saving Video Frames从视频中提取帧
import cv2
vidcap = cv2.VideoCapture('Compton.mp4')
success,image = vidcap.read()
count = 0
success = True
while success:
success,image = vidcap.read()
cv2.imwrite("frame%d.jpg" % count, image) # save frame as JPEG file
if cv2.waitKey(10) == 27: # exit if Escape is hit
break
count += 1你能告诉我从现在开始如何消除多余的帧吗?
发布于 2018-07-31 15:51:22
在使用pyscene detect删除视频流中的冗余帧方面,我有一些运气
我将添加您可能会感兴趣的relevant method -
内容感知检测器
内容感知场景检测器(-d content)的工作方式是大多数人认为电影中场景之间的“剪切”-给定两帧,它们属于同一场景还是不同场景?内容感知场景检测器发现两个后续帧之间的差异超过所设置的阈值的区域(开始的好值是阈值30)。
这使您可以检测包含内容的场景之间的剪切,而不是大多数传统场景检测方法的工作方式。通过适当设置阈值,此方法甚至可以检测到微小的、突然的变化,例如胶片中的跳转剪辑。
发布于 2018-07-31 09:58:22
如果您只需要帧(Jpeg),那么您可以使用ffmpeg视频过滤器选项,并以给定的帧率(Fps)提取帧。
ffmpeg -i "Compton.mp4" -vf fps=1 frame%04d.jpg -hide_banner
这将每秒提取一帧。你可以根据你的歌词在视频中的变化频率来调整它。
如果你想在python中使用它,那么ffmpeg-python是一个很棒的工具。
希望能有所帮助。
https://stackoverflow.com/questions/51604394
复制相似问题