python视频处理字幕_利用Python提取视频中的字幕(文字识别)

本文介绍了一个Python项目,通过视频帧截图、图片处理和百度API,实现视频中字幕的提取并保存为TXT文档。文章详细讲解了裁剪视频、灰度处理、文字识别和去重排序等步骤。
摘要由CSDN通过智能技术生成

我的CSDN博客id:qq_39783601,昵称是糖潮丽子~辣丽

从今天开始我会陆续将数据分析师相关的知识点分享在这里,包括Python、机器学习、数据库等等。

今天来分享一个Python小项目!

文字识别

项目背景

通过获取百度API实现视频文字识别。

需求阐述

将.MP4格式视频裁剪成一帧一帧的图片再将图片中的字幕摘取出来,保存成一个文档。

进入正题喽!!!

思路

1.将视频按帧截取成图片

2.将上一步截取的图片再进行裁剪,只保留字幕部分,然后在进行灰度处理

3.调用百度api识别文字

4.输出成txt

首先导包

# base64是一种将不可见字符转换为可见字符的编码方式

import base64

# opencv是跨平台计算机视觉库,实现了图像处理和计算机视觉方面的很多通用算法

import os

import cv2

import requests

from aip import AipOcr

# 百度AI的文字识别库

base64 base64是一种将不可见字符转换为可见字符的编码方式。

opencv 是跨平台计算机视觉库,实现了图像处理和计算机视觉方面的很多通用算法。

AipOcr 百度AI的文字识别库。

注意:这里from aip import AipOcr刚开始可能会报错,原因可能是aip和baidu-aip根本不是同一个包,如果想要import的时候,都是使用:import aip 之后pip install baidu-aip就没报错了。

代码详情

裁剪视频

def tailor_video():

# 要提取视频的文件名,隐藏后缀

sourceFileName = 'material'

# 在这里把后缀接上

video_path = os.path.join("G:/material/", sourceFileName + '.mp4')

times = 0

# 提取视频的频率,每10帧提取一个

frameFrequency = 10

# 输出图片到当前目录video文件夹下

outPutDirName = 'G:/material/video/' + sourceFileName + '/'

if not os.path.exists(outPutDirName):

# 如果文件目录不存在则创建目录

<
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python可以使用一些库来提取视频字幕,以下是其的一些方法: 1. 使用pydub库来提取音频文件,再使用SpeechRecognition库来识别并转换为文字。这个方法需要一个视频文件和其支持的音频格式。 ```python from pydub import AudioSegment import speech_recognition as sr video_path = 'path/to/video.mp4' audio = AudioSegment.from_file(video_path, format='mp4') audio.export("audio.wav", format="wav") r = sr.Recognizer() audio_file = sr.AudioFile('audio.wav') with audio_file as source: audio = r.record(source) text = r.recognize_google(audio, language='en-US') print(text) ``` 2. 使用pip install SpeechRecognition 和pip install moviepy 安装所需的一个库和Python package。该方法也是从视频提取音频,然后使用moviepy获取其视频字幕。需要提供视频文件并安装所需的库。 ```python import speech_recognition as sr from moviepy.video.io.VideoFileClip import VideoFileClip r = sr.Recognizer() video_path = 'path/to/video.mp4' clip = VideoFileClip(video_path) # 提取音频 clip.audio.write_audiofile('audio.wav') sound = AudioSegment.from_file('audio.wav', format='wav') # 获取字幕 def transcribe_audio(sound): transcript = '' with sr.AudioFile(sound) as source: audio_text = r.record(source) try: transcript = r.recognize_google(audio_text) except sr.UnknownValueError as e: print(e) return transcript transcription = transcribe_audio('audio.wav') print(transcription) ``` 3. 使用OpenCV库来提取字幕Opencv库是一款面向计算机视觉的开源计算机视觉库。在这里它被用来获取视频字幕,并使用tesseract进行OCR处理。 ```python import cv2 import pytesseract video_path = 'path/to/video.mp4' vidcap = cv2.VideoCapture(video_path) frames = [] success, image = vidcap.read() count = 0 success = True while success: frames.append(image) success, image = vidcap.read() count += 1 for frame in frames: text = pytesseract.image_to_string(frame, lang='eng') print(text) ``` 这里只提供了一些用Python提取视频字幕的方法,您可以根据您自己的需求,选择其的某一种方法来完成相应的任务。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值