问题:如何在Qt5中获取192.168.1.1:8080/?action=stream中的视频流?

渺小的码农 2015-04-05 11:19:33
最近在做一个智能WIFI视频小车的客户端,用到Qt开发环境,视频通过摄像头采集,通过wifi模块做中转服务端构建网络,wifi模块中是一个openwrt系统,将视频信号通过Http协议发出,192.168.1.1:8080/?action=stream 网址可以查看到视频,现在想要通过Qt编写的客户端获得视频流,进行解析显示,现在不知道如何通过Qt中的接口,接收视频流?请指教!谢谢!请详细代码说明~
...全文
3496 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_36898781 2019-02-19
  • 打赏
  • 举报
回复
請問最後有解決了嗎? 最近也在學習QT 用Stream 但一直失敗...
DevoutPrayer 2018-12-15
  • 打赏
  • 举报
回复
用ffmpeg
  • 打赏
  • 举报
回复
楼主你这个读取的视频流如何在QT是显示呢?
qq_31651367 2017-03-27
  • 打赏
  • 举报
回复
你好,请问如何将接收到的数据剔除http header后用QPixmap在QLabel上绘图。能不能发下源码
  • 打赏
  • 举报
回复
引用 7 楼 chief5566 的回复:
#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    tcpSocket = new QTcpSocket(this);
    tcpSocket->connectToHost("192.168.1.1",8080);
    connect(tcpSocket,SIGNAL(readyRead()),this,SLOT(tcpDataReceive()));

}

MainWindow::~MainWindow()
{
    delete ui;
}


void MainWindow::tcpDataReceive()
{
    QByteArray data = QByteArray::fromHex(tcpSocket->readAll());
    qDebug() << data;
}

void MainWindow::on_pushButton_clicked()
{
    tcpSocket->write("GET /?action=stream\r\n\r\n");
}
用QTcpSocket,再将接收到的数据剔除http header后用QPixmap在QLabel上绘图。
tcpSocket->write("GET /?action=stream\r\n\r\n"); 这一句是什么作用呢?我试了试必须有这句才能接收到数据
  • 打赏
  • 举报
回复
楼主你好请问,问题解决了吗,最近也在做一个视频小车,但是视频传输这块不知道是怎样读取的
粉色发生 2016-01-19
  • 打赏
  • 举报
回复
你好,请问你解决了吗?
chief5566 2015-09-24
  • 打赏
  • 举报
回复
#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    tcpSocket = new QTcpSocket(this);
    tcpSocket->connectToHost("192.168.1.1",8080);
    connect(tcpSocket,SIGNAL(readyRead()),this,SLOT(tcpDataReceive()));

}

MainWindow::~MainWindow()
{
    delete ui;
}


void MainWindow::tcpDataReceive()
{
    QByteArray data = QByteArray::fromHex(tcpSocket->readAll());
    qDebug() << data;
}

void MainWindow::on_pushButton_clicked()
{
    tcpSocket->write("GET /?action=stream\r\n\r\n");
}
用QTcpSocket,再将接收到的数据剔除http header后用QPixmap在QLabel上绘图。
qq_27218611 2015-08-14
  • 打赏
  • 举报
回复
你知道怎么搞了嘛?我也需要用qt编写客户端,也是个wifi小车,要在客户端实时显示视频画面,方案跟你基本一样诶,只不过我最终还要将编写的客户端移植到2440板子上,不知道如何传视频,现在很急,楼主你方便分享给我一下你的方法吗
ronal7do 2015-04-07
  • 打赏
  • 举报
回复
QWebView是加载整个页面
Creator_莫言 2015-04-07
  • 打赏
  • 举报
回复
直接在界面上用一个QWebView,然后加载你上面的那个网址不可以吗?
donwmufromdying 2015-04-07
  • 打赏
  • 举报
回复
我一般用vlc来进行视频解码。rtsp
foruok 2015-04-06
  • 打赏
  • 举报
回复
视频流的获取,你可以直接使用QNetworkAccessManager,当做普通的http流来读取,也就是读文件。 如果你要播放,就使用QMediaPlayer,它支持流媒体播放。但前提是你的运行系统上有底层的多媒体框架,比如gstreamer,directshow,还需要安装各种codec,windows下可以用LAVFilters,linux下可以安装gstreamer的各种插件,什么ugly、good之类的都装上就行了。
zyq5945 2015-04-05
  • 打赏
  • 举报
回复
用Qt调用VLC试试。

679

社区成员

发帖
与我相关
我的任务
社区描述
智能路由器通常具有独立的操作系统,包括OpenWRT、eCos、VxWorks等,可以由用户自行安装各种应用,实现网络和设备的智能化管理。
linuxpython 技术论坛(原bbs)
社区管理员
  • 智能路由器社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧