Почему ускоряется вывод видео - 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 секунд, которые должны быть.
Спасибо за любые советы!