我有一个带字幕的视频文件result.mp4
。我想提取帧,但我希望字幕也在这些帧上,字幕作为单独的曲目在文件中
目前我使用此代码提取:
vidcap = cv2.VideoCapture("result.mp4")
success,image = vidcap.read()
count = 0
while success:
cv2.imwrite("frame%d.jpg" % count, image)
success,image = vidcap.read()
print('Read a new frame: ', success)
count += 1
这很好,但正如我所说,画面上没有字幕。只有当我将字幕硬编码到视频中时,我才能提取带有字幕的帧,这看起来不同,而且需要很多时间
opencv有没有一种方法可以使用单独轨迹上的子对象提取帧
供参考:
我使用此FFMPEG命令将.mp4
与.srt
合并:
ffmpeg -i ourvid.mp4 -i ourvid.srt -c:s mov_text -c:v copy -c:a copy result.mp4 -f srt
大约在一秒钟内完成
但是,如果我硬编码它:
ffmpeg -i ourvid.mp4 -vf "subtitles=ourvid.srt" result.mp4
它平均至少占用源视频长度的一半(在完成时间内)
基本上,我认为cv2无法做到这一点,但ffmpeg可以做到这一点,使用如下命令:
其中
x
和y
是提取帧的范围的开始和结束 所以我只是用,举个例子从我的python脚本运行它
不是很好的方法,但这是我到目前为止唯一找到的方法
相关问题 更多 >
编程相关推荐