@friendlyQtBeginner I guess you should connect to videoFrameChanged() signal as described in documentation to make sure there actually is a frame when you call videoFrame:
"QVideoSink will provide individual video frames to the application developer through the videoFrameChanged() signal."
You can also call https://doc.qt.io/qt-6/qvideoframe.html#isValid to check whether you got a valid frame.