Подскажите возможные пути решения с qt, то есть с выводом в в виджет. Камера так же имеет возможности управления зумом, просто вывести данные с помощью vlc либы не подойдет. Буду рад каждому предложения.
IP камера - нетривиальная задача, нужно снифить трафик и попытаться провести реверс-инжиниринг API. Учитывайте, что подобное решение не будет универсальным и сработает только с конкретной моделью ip-камеры конкретного производителя конкретной прошивки.
Универсальным решением является применение ВЕБ камеры в сочетании с библиотекой OpenCV, так как она реализует абстракцию для захвата видео. Данный пример написан на python, но не составит труда переписать его на C++
import cv2
def show_webcam(mirror=False):
cam = cv2.VideoCapture(0)
while True:
ret_val, img = cam.read()
if mirror:
img = cv2.flip(img, 1)
cv2.imshow('my webcam', img)
if cv2.waitKey(1) == 27:
break # esc to quit
cv2.destroyAllWindows()
def main():
show_webcam(mirror=True)
if __name__ == '__main__':
main()
Для вывода видео с камеры можно покадрово транслировать Mat в QPixmap, приводя его к unsigned char*
массиву, как сделано тут.
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QDialog *dialog = new QDialog();
QLabel *label = new QLabel(dialog);
FrameBroadcast *cast = new FrameBroadcast();
QObject::connect(cast, &FrameBroadcast::frameCaptured, [=](const QSharedPointer<Frame> &frame) {
int w = static_cast<int>(frame.data()->width);
int h = static_cast<int>(frame.data()->height);
QImage img(frame.data()->buffer,w,h,QImage::Format_RGBA8888);
label->setPixmap(QPixmap::fromImage(img));
label->resize(w,h);
qDebug() << "Update";
});
cast->startCapture();
dialog->show();
return app.exec();
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
В приложении есть QListView с именем listView1, который нужно заполнить из основного кода окна - maincpp
Не могу понять как он работает, что делают cinpeek(), !(cin >> a), cin