Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/obgnail/video-subtitle-extractor
提取视频硬字幕。采用 PaddleOCR。
https://github.com/obgnail/video-subtitle-extractor
extractor ocr opencv python subtitles video
Last synced: about 2 months ago
JSON representation
提取视频硬字幕。采用 PaddleOCR。
- Host: GitHub
- URL: https://github.com/obgnail/video-subtitle-extractor
- Owner: obgnail
- License: mit
- Created: 2023-01-07T13:36:39.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2023-04-28T17:29:17.000Z (over 1 year ago)
- Last Synced: 2024-02-11T16:19:36.987Z (7 months ago)
- Topics: extractor, ocr, opencv, python, subtitles, video
- Language: Python
- Homepage:
- Size: 3.98 MB
- Stars: 4
- Watchers: 1
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# video subtitle extractor
![video_subtitle_extractor](assets/video_subtitle_extractor.gif)
## introduction
提取视频硬字幕。采用 PaddleOCR。
在解析前可以对视频进行`节选`(select_fragment),`框选范围`(select_roi),`阈值`(select_threshold) 操作,提高 OCR 效率。
三者操作都可以使用 use_fragment,use_roi,use_threshold 配置进入交互页面设置。也可以通过 time_start、time_end、roi_array、threshold 等配置参数直接设置。
```bash
python video_subtitle_extractor.py --path="./CyberpunkEdgerunners01.mkv" --use_fragment=True --use_threshold=True --use_roi=True --roi_time="3:24"
``````python
extractor = SubtitleExtractor(
video_path=r'./CyberpunkEdgerunners01.mkv',
time_start='03:01',
time_end='23:44',
roi_array=(24, 789, 1896 191),
threshold=201,
)
# extractor.select_fragment()
# extractor.select_roi()
# extractor.select_threshold()
subtitles = extractor.extract()
extractor.save(subtitles)
```## config
common:
- path:视频路径
- subtitle_max_show_second:字幕最长显示时间,默认 10s
- text_similar_threshold:字幕相似度阈值(大于此阈值判定为相似),默认 70
- output_format:输出字幕的格式,默认 lrcparser:
- parse_time_start:开始解析视频的时间。format: %H:%M:%S。
- parse_time_end:停止解析视频的时间。format: %H:%M:%S。
- parse_capture_interval:解析的采样率。默认每隔 0.5s 采样一次。
- parse_gray:解析视频时是否将视频切换为灰度图。默认 False。
- parse_resize:解析视频时是否将视频进行缩放处理。默认为 1。prepare:
- use_fragment:是否通过交互页面设置 parse_time_start 和 parse_time_end。默认为 False(如果 parse_time_start 和 parse_time_end 都没有设置,use_fragment 将设置为 True)
- fragment_reshow:选取片段后,是否重新展示。
- use_roi:是否通过交互页面框选字幕位置。默认为 False
- roi_time:出现字幕的时间。
- roi_reshow:框选字幕位置后,是否重新展示。
- use_threshold:是否使用阈值对视频进行处理。
- threshold_time:出现字幕的时间。
- threshold_reshow:使用阈值后,是否重新展示。ocr:详见 PaddleOCR 的配置
- ocr_lang
- ocr_use_angle_cls
- ocr_use_gpu
- ocr_use_mp
- ocr_enable_mkldnn
- ocr_gpu_mem
- ocr_det_limit_side_len
- ocr_rec_batch_num
- ocr_cpu_threads
- ocr_drop_score