Почему ускоряется вывод видео - Python v4l2 Logitech C920

Я пытаюсь разработать программу захвата с Python и портативную библиотеку для Python v4l2. Иногда, когда я запускаю код, выходное видео имеет 15 секунд (видео должно иметь 30 секунд, как указано в коде ниже).

Вот код:

class captureThread (threading.Thread):

   def __init__(self, threadID, name):
        threading.Thread.__init__(self)
        self.threadID = threadID
        self.name = name

   def run(self):
        patientPath = 'Testes/' + patient
        if not os.path.exists(patientPath):
            os.makedirs(patientPath)

        video = v4l2capture.Video_device("/dev/video0")

        video.set_format(640, 480, fourcc='H264')
        video.create_buffers(30)
        video.queue_all_buffers()
        video.start()

        rawPath = 'video.raw'
        stop_time = time.time() + 30.0
        with open(rawPath, 'wb') as f:
            while stop_time >= time.time():
                select.select((video,), (), ())

                image_data = video.read_and_queue()
                f.write(image_data)

        video.close()

        outPath = 'video.mp4'
        osPath = 'ffmpeg -f h264 -i {0} -vcodec copy {1} -y'.format(rawPath, outPath)
        os.system(osPath)
        os.remove(rawPath)
        os.rename(outPath, "Testes/" + patient + "/video.mp4")

Случайно, иногда я запускаю код, и у видео есть правильные 30 секунд, которые должны быть.

Спасибо за любые советы!

0 ответов

Другие вопросы по тегам