Qt显示视频流——nginx+rtmp搭建直播服务器(二)

在Qtcreator下编译Nginx 在Qtcreator下编译Nginx操作系统环境:ubuntu16.04 32位目录在Qtcreator下编译Nginx 准备工作 1安装好Qt及其gcc相关的工具链 2创建文件夹NginxQtProject并进入目录NginxQtProject建立空工程NginxQtProject 3进入工程目录下载nginx源码压缩包当前的稳定版本为nginx-1121targz 解压并配置Nginx源码 1解 阅读详情

 

 

上次介绍的是使用ffmpeg推流,这次介绍的是使用nginx + rtmp搭建直播服务器。

环境:ubuntu 16.04

一、 安装nginx 和 rtmp模块

1. 下载安装 nginx 和 nginx-rtmp 编译依赖工具

sudo apt-get install -y curl build-essential libpcre3 libpcre3-dev libpcre++-dev zlib1g-dev libcurl4-openssl-dev libssl-dev

 

2. 创建编译所用目录

mkdir -p ~nginx_src

cd ~nginx_src

 

3. 下载nginx源码包并解压

wget http://nginx.org/download/nginx-1.11.8.tar.gz

tar -zxvf nginx-1.11.8.tar.gz

 

4. 下载 nginx-rtmp-module模块 源码包(RTMP模块源码包)并解压

wget https://github.com/arut/nginx-rtmp-module/archive/master.zip

unzip master.zip

 

5. 进入nginx目录设定编译参数

cd  cd nginx-1.11.8

./configure--prefix=/usr/local/dev_workspace/nginx --add-module=../nginx-rtmp-module-master --with-http_ssl_module

 

6. 编译安装

make

sudo make install

 

注意:如果没有安装第一步的依赖工具,可能出现以下错误:

 ./configure: error: the HTTP rewrite module requires the PCRE library.………………………………

 

7. 完成验证

操作如图:

640?wx_fmt=png

 

二、 修改nginx配置文件添加rtmp服务

 

1. 配置文件目录

/usr/local/dev_workspace/nginx/nginx.conf

 

2. 添加以下内容

 rtmp {      

        server {    

            listen 1935; #监听的端口

            chunk_size 4000;     

            application hls {

                live on;     

            }   

        }   

    }

 

注意:①直接配置文件增加   与http协议同级

②修改前先将原文件.bak备份

 

至此,nginx 及nginx-rtmp-module部分配置完成 。

 

 

三、安装Strobe Media Playback

1. 下载网址 https://sourceforge.net/projects/smp.adobe/

在/usr/local/dev_workspace/nginx/html下新建rtmp文件夹

解压好后将for Flash Player 10.1复制到rtmp文件夹下并重命名为strobe

cp -r for Flash Player 10.1/  /usr/local/dev_workspace/nginx/html/rtmp/strobe

 

2.在/usr/local/dev_workspace/nginx/html/rtmp下新建一个video.html

    程序如下:

 

<!DOCTYPE html>	
<html>	
<head>	
<title>Live Streaming</title>	
 	
<!-- strobe -->	
<script type="text/javascript" src="strobe/lib/swfobject.js"></script>	
<script type="text/javascript">	
  var parameters = {  	
     //src: "rtmp://{pi_address}/rtmp/live",	
   src: "rtmp://192.168.15.129:1935/hls/video",	
     autoPlay: false,  	
     controlBarAutoHide: false,  	
     playButtonOverlay: true,  	
     showVideoInfoOverlayOnStartUp: true,  	
     optimizeBuffering : false,  	
     initialBufferTime : 0.1,  	
     expandedBufferTime : 0.1,  	
     minContinuousPlayback : 0.1,  	
     poster: "images/poster.png"  	
  };  	
  swfobject.embedSWF(	
    "strobe/StrobeMediaPlayback.swf"	
    , "StrobeMediaPlayback"	
    , 1024	
    , 768	
    , "10.1.0"	
    , "strobe/expressInstall.swf"	
    , parameters	
    , {	
      allowFullScreen: "true"	
    }	
    , {	
      name: "StrobeMediaPlayback"	
    }	
  );	
</script>	
 	
</head>	
<body>	
<div id="StrobeMediaPlayback"></div>	
</body>	
</html>

 

注意:①"rtmp://192.168.15.129:1935/hls/video"该地址是ffmpeg推流

        到的虚拟目录,

      ②, 1024, 768 这两个参数是视频流的长和宽,根据Qt设置的

                WebView进行调整。否则只调整WebView是没有用的。

 

至此,nginx+rtmp以及Strobe Media Playback安装并且配置完成了。

下次将根据项目需要,给ffmpeg安装一些其他库,并且使用qt的webview通过Url显示视频流.

 

最后附上经典参考文献连接:

https://obsproject.com/forum/resources/how-to-set-up-your-own-private-rtmp-server-using-nginx.50/

 

 

欢迎大家关注公众号:

640?wx_fmt=png

 

FFMpeg-3、基于QT实现音视频播放显示 为什么要采用QT的OpenGL三维的来绘制,直接使用QopenWidget、QWight也是可以的,但是如果使用后面的那么其实图像显示和界面的按钮是一套东西,当点击按钮刷新的时候就会存在闪屏的情况。因为视频显示存在像素格式的转换问题,要从解码出来的YUV格式转化为显示需要的RGB格式,视频的每一帧图像这么多像素点都需要转换,这是一个很大的开销,如果这一部分效率不高,那么对整体的视频播放性能都是十分有影响的,而QTopenGL也是效率很高的,直接操作显卡。后台缓冲表面和前台表面的概念总是同时出现的。 阅读详情

相关推荐

流媒体建设及部署指导

例如,在处理RTSP请求时,ZLMediaKit采用了异步非阻塞的方式,这大大提升了服务器处理并发请求的能力,使得即使是面对大量用户的直播场景,也能保持良好的性能表现。无论是哪种协议,ZLMediaKit都致力于提供最佳的用户体验,通过灵活的配置选项,用户可以根据具体需求选择最合适的传输方式,确保每个场景下都能获得最优的播放效果。协议支持完善:支持的RTMP协议确保了直播内容的快速传输,同时还具备动态调整码率的功能,可以根据网络状况自动调节视频质量,从而在保证流畅播放的同时,也兼顾了画质的清晰度;

企业实战系列集 ●●● https://ximenjianxue.blog.youkuaiyun.com 2044

Qt5(C++)高级篇之1:HTTP网络编程实战

1.带领您深入学习QT5/C++:HTTP基础理论、GET抓取网页、POST提价数据、JSON解析、文本浏览器、图片浏览器,逐步提升Qt编程水平。2.所有章节均有理论知识介绍、接口讲解、实例代码讲解,讲解过程中不断穿插老师在开发过程中遇到的问题及解决方法(可以下载所有的电子课件与源码)。3.本阶段主要完成Qt高阶段的HTTP编程:所有章节均配备实战项目、边理论边实战    1. HTTP基础理论HTTP协议简介HTTP请求流程图HTTP协议概述HTTP工作原理基于 请求-响应 的模式无状态保存无连接HTTP请求方法HTTP状态码URLHTTP请求格式(请求协议)HTTP响应格式(响应协议)HTTP请求正文HTTPS协议简介HTTPS握手过程win10x64安装OpenSSL:不用编译源码什么是OpenSSLOPENSSL“心脏出血”漏洞Nginx作为HTTP服务器Tomcat作为HTTP服务器一、JDK环境变量配置二、Tomcat环境变量配置三、eclipse配置四、创建JSP项目2. Qt实现HTTP编程入门QNetworkAccessManager新建项目新建类配置文件添加network头文件CPP文件3. Qt实现HTTP的GET抓取网页头文件库文件Get4. Qt实现HTTP的GET/POST提交数据5. Qt处理HTTP的JSON解析jsp返回json格式的数据Qt处理jsp返回的Json数据6. Qt实现HTTP文本浏览器7. Qt实现HTTP文件下载器8. Qt实现HTTP图片浏览器9. Qt实现HTTP服务器  

基于Zigbee设计的楼宇环境监测系统_278

本项目设计了一套基于ZigBee无线通信技术的楼宇环境监测系统,实现对楼宇内温湿度、烟雾、一氧化碳浓度等环境数据的实时监测,以及火灾和防盗等安全隐患的预警。系统采用多节点组网结构,子节点采集环境数据并通过ZigBee协议上传至主节点,主节点通过蓝牙将整合后的数据传输至手机APP供用户查看。系统还集成了RTMP协议的视频监控功能,实现远程实时视频监控。通过手机APP,用户不仅可以查看环境监测数据,还能播放监控画面,全面掌握楼宇状态。整个系统以CC2530单片机为核心,采用模块化设计,具备高效、低功耗、易扩展等

390

Nginx+Qt的交互

我使用Nginx的主要目的:1.部署Web前端项目。(比如公司的介绍页面、一些产品说明书、新程序安装包的下载等一些对于用户来说是只读的数据的展示)。 2.作为真正的http服务器的前台,实现负载均衡。 Nginx作为对外的http接口(相当于前台+保安),实现一些负载均衡什么的会很有用(也就是数据转发)。 Qt(使用QtHttpserver)来作为真正的http服务端,进行数据的处理。 Nginx安装配置教程: https://www.cnblogs.com/taiyonghai/p/9402734.htm

joyopirate的博客 2558

nginx_qt:nginx原始码调试项目,使用Qt Creator

nginx原始码调试项目,使用Qt Creator git clone https://github.com/ZhengweiHou/nginx_qt.git cd [当前项目根目录] . auto/configure --prefix=[当前项目根目录] 若有错误,自行安装相关依赖包 make 使用Qt Creator导入该项目,配置构建,开始构建,运行,调试吧!

Windows系统下LaTeX环境搭建与编辑器配置全攻略

本文详细介绍了在Windows系统下搭建LaTeX环境的完整流程,包括TeX Live的安装、TeXStudio编辑器的配置优化以及常见问题排查。特别针对中文用户推荐使用清华镜像源加速下载,并提供了XeLaTeX编译器配置、中文支持等实用技巧,帮助用户快速上手LaTeX文档编写。

weixin_42554408的博客 449

开源项目推荐:Qt有关的GitHub/Gitee开源项目(★精品收藏★)

Q:想请教下Qt5 之后推出的qml与之前qt4的ui 开发方式,有冲突吗?我公司开发桌面程序,是两种方式兼用?还是选择其中一种?A:桌面推荐使用QWidget,触摸式的嵌入式设备推荐使用QML。   Qt官网下载/文档 http://download.qt.io/ -- 官方exe下载 https://mirrors.tuna.tsinghua.edu.cn/qt/ -- 清华...

呓语煮酒的博客 1万+

EM算法求解混合伯努利模型

本文记录了EM算法求解混合伯努利分布的推导,并提供了matlab实验代码。

霁月难逢 彩云易散 6971

实时监控系统/直播系统(三)- 用RTMP推流到Nginx,并用VLC拉流显示到Qt界面

通过V4L2接口从摄像头采集YUYV格式的视频;用H264对视频数据进行编码;然后通过RTMP协议发送至支持了rtmp的nginx流媒体服务器;用客户端使用VLC从服务器拉流显示。

m0_74895388的博客 1792

NuPlayer 之 Renderer

触发postDrainAudioQueue_l()或postDrainVideoQueue()开始渲染。解码器输出数据 → NuPlayer::Decoder::onMessageReceived。音频数据存入mAudioQueue,视频数据存入mVideoQueue。• 每次写入后通过mNotifyConsumed通知解码器。• 通过AudioSink::write()写入音频设备。• 根据VSync信号和音频时钟调整渲染时机。• 通过Surface直接提交给显示系统。

aningxiaoxixi的博客 313

【2025最新版】ABAP 开发百科全书专栏文章目录(上)

本文汇总了一系列SAP ABAP技术文章,内容涵盖实用技巧合集、函数式编程实践(如Currying、reduce应用)、设计模式实现(如Visitor、Singleton)、动态代理与Mock技术、性能优化方案(如Lazy Loading)、日期处理与内存管理,以及ABAP与JavaScript的编程范式对比。还涉及CDS视图、Fiori字段追踪、单元测试优化等实战经验,深入剖析了ABAP底层机制(如Internal Session、Function Module实现原理),并提供了多种反模式改进方案。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 2477

从零构建一个流媒体直播服务器:Linux C++多线程网络编程实战

本文详细介绍了如何从零构建一个高性能流媒体直播服务器,涵盖Linux C++多线程网络编程的核心技术。通过Reactor模式、epoll ET非阻塞IO、线程池优化等实战方案,解决高并发连接、音视频同步等关键问题,并提供性能调优和监控运维的实用技巧,助力开发者掌握服务器编程精髓。

weixin_30340617的博客 391

ModuleNotFoundError: No module named‘langchain.schema.output parserlangchain.schema is not a package

电脑里现有的langchain库版本与import所需的不同,卸载原有langchain,重新下载最新的langchain。在步骤1后,若仍不可运行。在确保已重新下载新langchain后,重启python后,可正常运行。在版本号中填入所需的langchain版本号,可在requirements.txt查看。运行如下代码时,出现error。

weixin_45751925的博客 1713

ffmpeg推送直播流的技术进展

首先安装好NGINX并打开服务 然后安装好ffmpeg 然后参考:http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=28790518&id=5756446 下载并编译m3u8-segment,什么是m3u8:https://www.zhihu.com/question/...

weixin_30767921的博客 179

通过python+openCV实现对图片中箭头方向的判断

摘要: 针对YOLOv8算法在箭头方向识别效果不佳的问题,提出了一种基于OpenCV的解决方案。该方法通过图像预处理、轮廓分析、几何特征提取(凸包、质心、外接矩形)和方向向量计算,准确判断箭头的上下左右方向。代码示例展示了从图像读取到方向识别的完整流程,并提供了优化建议(如调整二值化阈值、处理多轮廓)。该方案在Windows11+Python3.12+OpenCV环境下验证有效,适用于需要简单几何特征分析的箭头方向检测场景。

AnChenliang_1002的博客 703

Prometheus+Grafana+alertmanager+PrometheusAlert监控告警 实现飞书告警

以上 是以grafana做的邮件告警,但是感觉邮件很少人看。下面是以webhook 可以接入。启动alertmanager (设置 开机在启动)下载prometheusalter 配置文件。这里的告警是基于grafana上搭建的。我们启动PrometheusAlert。写完之后进行重启Prometheus。prometheus 的告警规则。测试 基于我们生产环境做的文档。然后在grafana上导模板。上导入模板就可以 直接引用。访问 grafana页面。重启一下grafana。

墨痕诉清风的博客 859

Nginx轻松入门(反向代理实现负载均衡和动静分离和虚拟主机)

Nginx版本 1.14.2 Tomcat版本 9.0.0 第1章 Nginx简介 1.1 Nginx发展介绍 Nginx (engine x) 是一个高性能的Web服务器和反向代理服务器,也可以作为邮件代理服务器。 Nginx 特点是占有内存少,并发处理能力强,以高性能、低系统资源消耗而闻名,Nginx官方测试为5万并发请求。与Nginx同类型的Web服务器还有Apache、Lighttpd(音...

weixin_45224770的博客 750

VTK API 详解(103):vtkGPUVolumeRayCastMapper - GPU加速体绘制

是 VTK 中基于 GPU 的高效体绘制映射器,利用现代显卡的计算能力,通过射线投射算法实现快速且高质量的三维体积渲染。相比 CPU 版本的,GPU 映射器性能大幅提升,支持更复杂的光照和渲染效果,是体绘制的主流选择。是 VTK 中性能优异的GPU体绘制映射器;适合大数据集和实时交互应用;配合灵活设置颜色、透明度和光照;建议在支持OpenGL的环境中使用。

yumeiguo的博客 295

Qt显示视频流——(三)

之前的两次我们已经搭建好了nginx+rtmp服务和ffmpeg推流工具,本次进行最后一步结合Qt显示视频流。1.接入硬件摄像头我使用的是UVC摄像头,也可以接入笔记...

Pou光明的博客 1万+

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

QOpenGLWidget显示视频流数据

使用QOpenGLWidget显示视频流数据。包含完整源码 支持I420、NV1、NV21、RGB32、RGB888、Grayscale8等格式的视频/图像显示

weixin_44371145的博客 4380

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

qt+opencv显示当前相机的视频流

参照于http://t.csdnimg.cn/LDhp0

m0_51459225的博客 580

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

qt+opencv显示视频流-简化版

【代码】qt+opencv显示视频流-简化版。

m0_51459225的博客 646

QT+Nginx Openssl证书双向认证

QT+Nginx Openssl证书双向认证主要有以下几点: 1.数字证书的生成 2.nginx证书的配置 3.Qt使用双向认证 一、数字证书的生成1.生成ca证书生成ca秘钥建议用2048位密钥,少于此可能会不安全或很快将不安全。openssl genrsa -des3 -out ca.key 2048 这个命令会生成一个2048位的密钥,同时有一个des3方法加密的密码,如果你不想要每次都输入

mynameisyangzhan的专栏 826

qt 实现RTSP&RTMP拉流,实时显示视频流

最近项目需求,要实现一个rtsp视频流,经过一番了解之后,最后选择两种方式进行测试对比,一个是基于ffmpeg编码实现rtsp拉流,另外一个则是基于VLC开源的qt第三方库,实在github上搜索到的 key: qt vlc。 首先粗略讲下ffmpeg编码怎么实现rtsp拉流呢?没有接触之前,感觉很高深的样子,其实并不然,ffmpeg内部基本都帮你实现了,类似打开摄像头一样的流程,使用avfor...

活到老、学到老 3万+

Qt Http服务器简单变成https服务器

近来被https搞晕了,由于需要微信小程序必须用到https协议,安全性比较重要喔!不过对于我们这个嵌入式产品也没什么安不安全。一开始qt http服务器还是好简单,因为就是TCP连接上面一个简单协议。后来听说发布小程序必须用到https+域名,估计好多刚开始往小程序里跑的小伙子都哭晕在测所。不过我不负责写小程序,我负责搞用qt 写个http的服务器。所以有后来的艰难例程!—! (你要知道我不懂网...

weixin_40939504的博客 1万+
上一篇: Qt 显示视频流——安装ffmpeg(一)
下一篇: Qt显示视频流——(三)
Pou光明
博客等级 码龄12年 3701粉丝 398原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值