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 aptget install libmp3lamedev
sudo aptget install libx264dev
sudo aptget install libxvidcoredev
③推流命令参数
./ffmpeg -f video4linux2 -i /dev/video0 -f flv rtmp://localhost:1935/hls/ video
注意这里是推流到本机,推到其他地方对应更换ip
结果如图:
4. 使用Qt显示视频流
终于到这了,千呼万唤始出来!
①安装 flash 插件
sudo aptget update
sudo aptget install flashplugininstaller
② 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>
2>
欢迎大家关注公众号: