initial
This commit is contained in:
61
extract_ts.py
Normal file
61
extract_ts.py
Normal file
@@ -0,0 +1,61 @@
|
||||
import cv2
|
||||
import pytesseract
|
||||
import re
|
||||
|
||||
# Set Tesseract executable path
|
||||
pytesseract.pytesseract.tesseract_cmd = r'/usr/bin/tesseract'
|
||||
|
||||
def extract_frame_and_timestamp(video_path):
|
||||
"""
|
||||
Extract a frame from the given video and identify its timestamp.
|
||||
|
||||
Args:
|
||||
video_path (str): Path to the video file.
|
||||
|
||||
Returns:
|
||||
None if the video cannot be opened or no timestamp is found.
|
||||
Otherwise, prints the extracted timestamp.
|
||||
"""
|
||||
|
||||
# Open the video capture
|
||||
cap = cv2.VideoCapture(video_path)
|
||||
|
||||
# Check if the video was opened correctly
|
||||
if not cap.isOpened():
|
||||
print("Error opening the video")
|
||||
return
|
||||
|
||||
# Iterate over frames until one with a timestamp is found
|
||||
while cap.isOpened():
|
||||
ret, frame = cap.read()
|
||||
|
||||
if not ret:
|
||||
break
|
||||
|
||||
text = pytesseract.image_to_string(frame)
|
||||
timestamp = _extract_timestamp(text)
|
||||
|
||||
if timestamp:
|
||||
print(timestamp.group())
|
||||
break
|
||||
|
||||
# Release the video capture
|
||||
cap.release()
|
||||
|
||||
def _extract_timestamp(text):
|
||||
"""
|
||||
Extract a timestamp from the given text.
|
||||
|
||||
Args:
|
||||
text (str): Text to search for timestamps.
|
||||
|
||||
Returns:
|
||||
The extracted timestamp as a string, or None if no timestamp is found.
|
||||
"""
|
||||
|
||||
pattern = r'\d{2}-\d{2}-\d{4}\s\d{2}:\d{2}:\d{2}'
|
||||
return re.search(pattern, text)
|
||||
|
||||
# Execute the program
|
||||
video_path = "/home/alex/Scaricati/2024_08_11_14_55_26.MP4"
|
||||
extract_frame_and_timestamp(video_path)
|
||||
Reference in New Issue
Block a user