赞
踩
显示摄像头至窗口,推流指定窗口图像至服务器
ffplay -f dshow -i video="摄像头名字"
执行后获得以“摄像头名字”作为窗口标题的摄像头采集窗口
ffmpeg -f GDIgrab [-offset_x 10 -offset_y 20 -video_size 640x480] -i title="摄像头窗口标题" -vcodec libx264 -preset:v ultrafast -tune:v zerolatency -f flv "视频推流服务器地址"
ffplay "视频拉流地址"
可随时更新要推送的内容,只需在指定窗口更改显示内容即可。
非原始数据,通过二次采集,依附窗口且该窗口不能被关闭。
推流摄像头及服务器同时推流至本地,本地可使用本地流播放及远程拉流播放。
直接数据,无二次转码,且不用依附指定窗口
需要暂时关闭推流图像,无法临时更换指定推流图像,如暂时黑屏推送让摄像头不起作用。
使用API获得指定窗口句柄使其嵌入至主窗口中方法。
QProcess执行后嵌入窗口方法
QProcess* procCam = new QProcess;
//隐藏窗口显示执行
procCam->setCreateProcessArgumentsModifier([] (QProcess::CreateProcessArguments *args)
{
args->startupInfo->wShowWindow = SW_HIDE;
args->startupInfo->dwFlags = STARTF_USESHOWWINDOW | STARTF_USESTDHANDLES;
});
//启用ffplay显示摄像头
procCam->start("ffplay -f dshow -i video=\"USB2.0 PC CAMERA\"");
//启动后延时等待
procCam->waitForFinished(1000);
//获取窗口标识
WId wid = (WId) processFindHwnd(procCam->processId(), "SDL_app");
QWindow *pWin = QWindow::fromWinId(wid);
if(pWin)
{
//设置外部窗口嵌入容器
QWidget *pWid = QWidget::createWindowContainer(pWin, this);
//设置窗口位置
pWid->setGeometry(10,10,320,240);
}
//通过进程id获得窗口类
#include <windows.h>
HWND processFindHwnd(
quint64 procID, const char *lpszClassName, const char *lpszTitleName)
{
char szClassName[1024], szTitleName[1024];
HWND hWnd = GetTopWindow(GetDesktopWindow());
while (hWnd)
{
DWORD wndProcID = 0;
GetWindowThreadProcessId(hWnd, &wndProcID);
if (wndProcID == procID)
{
if(lpszClassName != nullptr || lpszTitleName != nullptr)
{
GetClassNameA(hWnd, szClassName, sizeof(szClassName));
GetWindowTextA(hWnd,szTitleName, sizeof(szTitleName));
if(lpszClassName != nullptr && lpszTitleName != nullptr)
{
if (strcmp(szClassName, lpszClassName) == 0 &&
strcmp(szClassName, lpszClassName) == 0)
return (HWND)hWnd;
}else if(lpszClassName == nullptr)
{
if (strcmp(szTitleName, lpszTitleName) == 0)
return (HWND)hWnd;
}else if(lpszTitleName == nullptr)
{
if (strcmp(szClassName, lpszClassName) == 0)
return (HWND)hWnd;
}
}else
return hWnd;
}
hWnd = GetNextWindow(hWnd, GW_HWNDNEXT);
}
return 0;
}
//Pro文件中添加
LIBS +=User32.LIB
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。