Я проверил ваш код, он работает для меня.
Я бы посоветовал:
- печатать один кадр каждые n, например (100)
- очистите отпечаток, чтобы вы могли видеть отпечаток рамки во время захвата
Итак, попробуйте изменить строку печати на:
if a%100 == 0: print(frame, flush = True)