# OpenCV USB Camera Video Writer fast playback, maybe stuck in YUV?

**URL:** <https://forum.opencv.org/t/opencv-usb-camera-video-writer-fast-playback-maybe-stuck-in-yuv/8676>\
**Category:** Python\
**Tags:** videoio\
**Created:** [May 7, 2022, 10:09am UTC](https://forum.opencv.org/t/opencv-usb-camera-video-writer-fast-playback-maybe-stuck-in-yuv/8676 "2022-05-07T10:09:54Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![vispers](https://avatars.discourse-cdn.com/v4/letter/v/9dc877/32.png) [@vispers](https://forum.opencv.org/u/vispers)\
**Post date:** [May 7, 2022, 10:09am UTC](https://forum.opencv.org/t/opencv-usb-camera-video-writer-fast-playback-maybe-stuck-in-yuv/8676/1 "2022-05-07T10:09:54Z")

</div>

Hi,  
I’ve an issue with fast playback of video in the files this captures. I’ve tried a number of things and maybe the USB camera is stuck in YUV mode? Maybe the method of writing the file is wrong! Also, the files only play back in VLC… Any ideas? I tried a lot of things…  
Thanks in advance!

```nohighlight
import _thread as thread
import time
import cv2
import sys
import os

SAVE_FOLDER = '../'
FC = cv2.VideoWriter_fourcc(*'MJPG')

def run_camera(cam_name, cam_index, show_video=False):

    while True:
        cap = cv2.VideoCapture(0)
        codec = 0x47504A4D
# cap.set(cv2.CAP_PROP_FORMAT, 10)
# cap.set(cv2.CAP_PROP_MODE, 1)
        cap.set(cv2.CAP_PROP_FOURCC, cv2.VideoWriter_fourcc(*'MJPG'))
        cap.set(cv2.CAP_PROP_FPS, 20)
        cap.set(cv2.CAP_PROP_FRAME_WIDTH, 1920)
        cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 1080)
        w1 = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
        h1 = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
        print(w1, h1)
        f1 = cap.get(cv2.CAP_PROP_FPS)
# f1 = 20
         
        if cap.isOpened():
            print(f"{str(datetime.now())} Camera {cam_name} is connected!")
            mon = datetime.now().month
            day = datetime.now().day
            hour = datetime.now().hour
            video_write = cv2.VideoWriter(os.path.join(SAVE_FOLDER, f'cam_{cam_index}_{mon}_{day}_{hour}.avi'),
                                           FC, f1, (w1, h1))

            while True:
                r1, frame1 = cap.read()

                if not r1:
                    break

                if hour != datetime.now().hour:
                    mon = datetime.now().month
                    day = datetime.now().day
                    hour = datetime.now().hour

                    video_write.release()
                    video_write = cv2.VideoWriter(os.path.join(SAVE_FOLDER, f'cam_{cam_index}_{mon}_{day}_{hour}.avi'),
                                                   FC, f1, (w1, h1))

                video_write.write(frame1)

                if show_video:
                    cv2.imshow(f'cam {cam_index}', frame1)
                    if cv2.waitKey(10) == ord('q'):
                        break
# else:
# time.sleep(0.02)

            video_write.release()

        else:
            print(f"{str(datetime.now())} Camera {cam_name} isn't connected! Please check connection.")

        cap.release()
        time.sleep(5)

if __name__ == ' __main__':
    if len(sys.argv) == 2:
        cam_num = int(sys.argv[1])
    else:
        cam_num = 1

    # run_camera(cam_name=0, cam_index=1)

    thread.start_new_thread(run_camera, (0, 1))
   # thread.start_new_thread(run_camera, (2, 2))
    while True:
        time.sleep(5)

```
