这里写自定义目录标题
想做一个视频 ocr 字幕识别,看到论坛里有,结果没成功
这里借鉴的是该文章的代码
```python
from moviepy.editor import *
# 对视频进行裁剪与缩放
clip = VideoFileClip('G:/无量寿经/无量寿经第三回/1.MP4')
print("Ori FPS:{} Duration:{} Height:{} Width:{}".format(clip.fps, clip.duration, clip.w, clip.h))
cut_clip = clip.crop(y2=clip.h - 11, height=70)
cut_clip = cut_clip.set_fps(3)
print("Cut FPS:{} Duration:{} Height:{} Width:{}".format(cut_clip.fps, cut_clip.duration, cut_clip.w, cut_clip.h))
epoch = 10
step = cut_clip.duration / epoch
epoch = 10
step = cut_clip.duration / epoch
cut_clip.write_videofile("G:/无量寿经/无量寿经第三回/裁剪/1cropped.MP4")
# 截取多个片段
clips = []
index = 0
while index < epoch:
# 获取分段的起止时间
start = index * step
end = min(start + step, clip.duration)
if start < clip.duration:
sub_clip = cut_clip.subclip(start, end)
print("index: {} start: {} end: {}".format(index, start, end))
clips.append([start, sub_clip])
# 指定保存的子片段视频文件的名字
output_file = "G:/无量寿经/无量寿经第三回/裁剪/sub_clip_{}.mp4".format(index)
# 将子片段保存为视频文件
sub_clip.write_videofile(output_file, codec='libx264', audio_codec='aac')
else:
break
index += 1
裁剪视频,获得字幕处的位置,切片保存也是成功的。
但是识别代码运行后无任何反应
def process_frame_by_ocr(st, tmp_clip):
ocr = PaddleOCR(use_angle_cls=True, lang="ch", use_gpu=True)
frame_rate = 1 / 3
for cnt, cur_frame in enumerate(tmp_clip.iter_frames()):
cur_start = frame_rate * (cnt + 1) + st
try:
# det=True 表示在进行光学字符识别(OCR)之前,先对图像进行检测。
result = ocr.ocr(cur_frame, det=True)
if result is not None:
see = result[0][0][1]
cur_time = int(cur_start)
doc_json = {
'st': cur_time, "text": see}
ocr_text = json.dumps(doc_json, ensure_ascii=False