Я пытаюсь получить видеокадры для дальнейшей обработки с двух USB-камер под MAC OS X. Я использую Qt 5.3 (то же самое относится и к 5.2) и библиотеку QtMultimedia. Я могу подключиться к каждой из двух камер отдельно. Но когда я пытаюсь использовать оба одновременно — возникает ошибка для второго: «Ошибка камеры во время выполнения» — это то, что я вижу в выводе.
Ошибка возникает в плагине AVFoundation: https://qt.gitorious.org/qt/qtmultimedia/source/0e280e78e2fe0f0417ca284f6b0d7a536a970bfd%3asrc/plugins/avfoundation/camera/avfcamerasession.mm#L295
У меня установлено четыре ОС на другом оборудовании: MacOS 10.9, MacOS 10.8 и две MacOS 10.7
Странно, но две камеры работают нормально с 10,8 и одной из 10,7 машин. Другая машина 10.7 и машина 10.9 не позволяют подключиться ко второй камере с сообщением «Ошибка камеры во время выполнения».
Что это может быть?
Решение было найдено.
Не удалось подключить вторую камеру из-за ограничения пропускной способности USB. QCamera не позволяет выбирать разрешение и всегда подключается к максимально доступному (как обычно HD).
Мы могли бы воспроизвести то же поведение, написав собственные классы, основанные на AVFoundation. Затем мы уменьшили разрешение камер до меньшего (например, 320×240), и две-три камеры работали отлично.