Qt显示视频流——(三)

 

 

之前的两次我们已经搭建好了nginx+rtmp服务和ffmpeg推流工具,本次进行最后一步结合Qt显示视频流。

 

1. 接入硬件摄像头

我使用的是UVC摄像头,也可以接入笔记本电脑自带的相机。在终端上使用ls /dev/vide* 查看一下相机是否被识别,如果识别,则会返回/dev/video0。

如果向查看更具体的其他关于相机的信息,可以使用dmesg命令查看。

 

2. 启动nginx

cd /usr/local/dev_workspace/nginx/sbin

sudo ./nginx

 

可通过网页访问localhost检查nginx是否启动成功

 

3. 使用ffmpeg从相机得到视频并推流

 

①安装ffmpeg所使用的配置参数

  configuration: --enable-shared --prefix=/usr/local/dev_workspace/ffmpeg --enable-libmp3lame --enable-gpl --enable-version3 --enable-nonfree --enable-pthreads --enable-postproc --enable-ffplay --enable-libx264 --enable-libxvid --disable-x86asm

 

②安装ffmpeg所需依赖库

如果之前没安装过,一般都会缺这几个

sudo apt­get install libmp3lame­dev

sudo apt­get install libx264­dev

sudo apt­get install libxvidcore­dev

 

③推流命令参数

./ffmpeg -f video4linux2 -i /dev/video0 -f flv rtmp://localhost:1935/hls/video

注意这里是推流到本机,推到其他地方对应更换ip

 

结果如图:

640?wx_fmt=png

4. 使用Qt显示视频流

终于到这了,千呼万唤始出来!

 

①安装flash插件

sudo apt­get update

sudo apt­get install flashplugin­installer

 

② Qt程序

pro中添加webkitwidgets模块,ui中拖一个QWebView控件。

 

 

ui->webView->settings()->setAttribute(QWebSettings::PluginsEnabled,true);	
    ui->webView->settings()->setAttribute(QWebSettings::JavaEnabled,true);	
    ui->webView->settings()->setAttribute(QWebSettings::JavascriptEnabled,true);	
    ui->webView->settings()->setAttribute(QWebSettings::JavascriptCanOpenWindows,true);	
    ui->webView->settings()->setAttribute(QWebSettings::JavascriptCanAccessClipboard,true);	
    ui->webView->settings()->setAttribute(QWebSettings::DeveloperExtrasEnabled,true);	
    ui->webView->settings()->setAttribute(QWebSettings::SpatialNavigationEnabled,true);	
    ui->webView->settings()->setAttribute(QWebSettings::LinksIncludedInFocusChain,true);	
    ui->webView->settings()->setAttribute(QWebSettings::AcceleratedCompositingEnabled,true);	
    ui->webView->settings()->setAttribute(QWebSettings::AutoLoadImages,true);	

	
    ui->webView->page()->setLinkDelegationPolicy(QWebPage::DelegateAllLinks);	

	
    ui->webView->setUrl(QUrl("http://192.168.1.22/rtmp/video.html"));

 

注意下,这里的ip是服务的ip,ffmpeg与nginx可能是分离开的。

 

过程是艰辛的,但是结果是美好的:

 

1>

640?wx_fmt=png

 

2>

640?wx_fmt=png

 

 

欢迎大家关注公众号:

640?wx_fmt=png

 

  • 1
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值