OpenCV স্থাপন
pip install opencv-python
# Linux: sudo apt-get install python3-opencv
অ্যালগরিদম
- ভিডিও ফাইল খুলুন (
cv2.VideoCapture)। - সব ফ্রেম পড়ে একটি লিস্টে সংরক্ষণ করুন।
- লিস্টটি রিভার্স করুন।
- রিভার্সড লিস্ট থেকে ফ্রেমগুলো দেখান।
সম্পূর্ণ কোড
import cv2
def play_video_reverse(video_path):
cap = cv2.VideoCapture(video_path)
if not cap.isOpened():
print("Error: Could not open video.")
return
frames = []
while True:
ret, frame = cap.read()
if not ret:
break
frames.append(frame)
cap.release()
if not frames:
print("No frames found.")
return
print(f"Total frames: {len(frames)}. Playing in reverse...")
# উল্টো চালানো
for frame in reversed(frames):
cv2.imshow('Reverse Video', frame)
# 25ms ডিলে (≈40 FPS), 'q' চাপলে বের হবে
if cv2.waitKey(25) & 0xFF == ord('q'):
break
cv2.destroyAllWindows()
# ব্যবহার
if __name__ == "__main__":
play_video_reverse("input_video.mp4") # আপনার ভিডিও ফাইল পথ দিন
মেমরি-দক্ষ সংস্করণ (জেনারেটর)
বড় ভিডিওর জন্য সব ফ্রেম র্যামে রাখা সম্ভব নয়। ফাইল থেকে পিছনের দিকে সিক (seek) করে পড়া যায়, কিন্তু OpenCV-এ এটি ধীর এবং কখনো কখনো অনির্ভরযোগ্য। বড় ভিডিওর জন্য:
- ফ্রেমগুলো ডিস্কে ছবি হিসেবে সংরক্ষণ করুন।
- ফিরে উল্টো ক্রমে লোড করুন।
- বা
ffmpegব্যবহার করে রিভার্সড ভিডিও তৈরি করুন:ffmpeg -i input.mp4 -vf reverse output.mp4
OpenCV VideoCapture প্রপার্টি
cap = cv2.VideoCapture('video.mp4')
print("Width:", cap.get(cv2.CAP_PROP_FRAME_WIDTH))
print("Height:", cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
print("FPS:", cap.get(cv2.CAP_PROP_FPS))
print("Frame count:", cap.get(cv2.CAP_PROP_FRAME_COUNT))
print("FourCC:", cap.get(cv2.CAP_PROP_FOURCC))
সাধারণ সমস্যা
| সমস্যা | সমাধান |
|---|---|
| ভিডিও খুলছে না | পথ চেক করুন, কোডেক সাপোর্ট (H.264, MJPEG) নিশ্চিত করুন |
| ফ্রেম কাউন্ট ০ | কিছু কন্টেইনারে ফ্রেম কাউন্ট মেটাডেটা থাকে না; লুপে পড়ুন |
| প্লেব্যাক ধীর | waitKey মান সামঞ্জস্য করুন, রিসাইজ করুন |
| অডিও নেই | OpenCV অডিও প্লে করে না; ffmpeg বা pygame.mixer ব্যবহার করুন |