我正在尝试在ubuntu 16.04上使用QT 5.5打开相机。 我的主板是Jetson TX2 nvidia(arm64)。我正在使用qt的多媒体默认示例。 (我附上)。尝试启动相机时, 它总是打印出如下错误:
libv4l2: error set_fmt gave us a different result then try_fmt!
CameraBin error: "Device '/dev/video0' cannot capture in the specified format"
CameraBin error: "Internal data flow error."**
我的环境
我已经将我的libv4l2rds0版本从1.10.0-1更新到1.12.5-1。 但是效果不好。
在小部件讲师中
<pre>
Camera::Camera(QWidget *parent) :
QMainWindow(parent), ui(new Ui::Camera), camera(0), imageCapture(0), mediaRecorder(0)..
{
ui->setupUi(this);
//Camera devices:
QCameraInfo::availableCameras().size();
foreach (const QCameraInfo &cameraInfo, QCameraInfo::availableCameras()) {
if (cameraInfo == QCameraInfo::defaultCamera())
{
videoDeviceAction->setChecked(true);
}
ui->menuDevices->addAction(videoDeviceAction);
}
/*
skip...........
*/
setCamera(QCameraInfo::defaultCamera());
}
void Camera::setCamera(const QCameraInfo &cameraInfo)
{
delete imageCapture;
delete mediaRecorder;
delete camera;
camera = new QCamera(cameraInfo);
connect(camera, SIGNAL(stateChanged(QCamera::State)), this, SLOT(updateCameraState(QCamera::State)));
connect(camera, SIGNAL(error(QCamera::Error)), this, SLOT(displayCameraError()));
/*
skip...........
*/
camera->setViewfinder(ui->viewfinder);
connect(camera, SIGNAL(lockStatusChanged(QCamera::LockStatus,QCamera::LockChangeReason)),
this, SLOT(updateLockStatus(QCamera::LockStatus,QCamera::LockChangeReason)));
QCameraViewfinderSettings viewfinderSettings;
viewfinderSettings.setResolution(640, 480);
viewfinderSettings.setMinimumFrameRate(15.0);
viewfinderSettings.setMaximumFrameRate(280.0);
viewfinderSettings.setPixelFormat(QVideoFrame::Format_RGB32);
/*
skip...........
*/
camera->start();
}
<code>