QT linux v4l2下多线程视频采集播放
来源:互联网 发布:石家庄百度盘古网络 编辑:程序博客网 时间:2024/06/06 15:01
一,按下图建立QT工程
二,绘制显示窗口
三,添加程序(由于v4l2程序过长就没贴出请到资源下载)
1,工作线程代码
video_thread::video_thread():QThread()
{
quit_flag = false;
}
video_thread::~video_thread()
{
this->quit();
quit_flag = true;
this->wait();
}
void video_thread::run()
{
m_video.init_video();//打开视频设备
while(!quit_flag)
{
m_video.get_data();//获取视频数据
unsigned char *rgb;
rgb = new unsigned char [m_video.buf.length*2];//根据yuyv像素点和rgb像素所站内存比分配rgb
m_video.yuvtorgbO(rgb,640,480);//yuyv转换成RGB
QImage img = QImage(rgb,640,480,QImage::Format_RGB888);
emit image_data(img);
msleep(150);
delete[] rgb;//不能在sleep前释放掉否则显示的图片会出现问题
}
m_video.release_video();//在线程释放前释放设备
}2.主线程程序
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
connect(ui->show_ptn,SIGNAL(clicked()),this,SLOT(start_thread()));
connect(ui->stop_ptn,SIGNAL(clicked()),this,SLOT(stop_thread()));
connect(ui->quit_ptn,SIGNAL(clicked()),this,SLOT(close()));
}
void MainWindow::start_thread()
{
video = new video_thread();
video->start();
connect(video,SIGNAL(image_data(const QImage &)),this,SLOT(show_picture(const QImage &)));
}
void MainWindow::show_picture(const QImage &img)
{
ui->show_label->setPixmap(QPixmap::fromImage(img));
}
void MainWindow::stop_thread()
{
delete video;
}
MainWindow::~MainWindow()
{
delete ui;
}3,程序截图
下载地址:点击打开链接
- QT linux v4l2下多线程视频采集播放
- Linux V4L2采集YUV视频并播放
- linux 视频采集v4l2
- Linux V4L2 摄像头视频采集
- Linux V4L2 摄像头视频采集
- Linux V4L2 摄像头视频采集
- Linux V4L2 摄像头视频采集
- Linux V4L2 摄像头视频采集
- Linux V4L2 摄像头视频采集
- Linux V4L2 摄像头视频采集
- Linux V4L2 摄像头视频采集
- Linux V4L2 摄像头视频采集
- Linux V4L2 摄像头视频采集
- Linux V4L2 摄像头视频采集
- Linux V4L2 摄像头视频采集
- 嵌入式LINUX环境下视频采集知识-V4L2,原理
- 嵌入式LINUX环境下视频采集知识-V4L2,原理
- 嵌入式LINUX环境下视频采集知识—V4L2原理
- github简单使用教程
- 设计模式-Observer(观察者模式)
- Imaging for windows 切分图片时报内存不足,无法显示图片
- HDU 1011 Starship Troopers
- 切换场景
- QT linux v4l2下多线程视频采集播放
- berkeley db DB_ENV->close()
- 基于PhoneGap的Windows Phone平台环境搭建教程
- git基本使用
- OLTP和OLAP
- poj 3264 RMQ 基本应用
- C++字符串数字相互转换
- hdu1595 dijkstra
- JavaScript调用dll的公用方法