是否有FFmpeg的硬件加速版本(例如,使用GPU的版本)?
此外,是否有人使用FFmpeg支持GPU?可能用于缩放和转换视频格式?或者,例如,使用DirectShow进行图像缩放并在曲面上显示图像?如果是这样,任何人都可以提供小代码样本?
我想从网络摄像头拍摄视频,在帧上渲染一些文本并进行一些运动跟踪并将其传递给虚拟网络摄像头,以便可以轻松地进行流式传输.
我在stackoverflow上找到了一些答案,表明我应该使用DirectShow.根据DirectShow文档中的信息,DirectShow SDK是Windows SDK的一部分.所以我安装了最新的Windows SDK,但似乎它不包括DirectShow,因为下面没有DirectShow示例C:\Program Files (x86)\Microsoft SDKs\Windows.(stackoverflow的答案也相当古老 - 大约在2010年左右)
您能否建议一种方法使DirectShow工作(包括在Visual Studio 2015上运行的示例)或DirectShow的其他替代方法,这将有助于我创建虚拟网络摄像头?
我正在尝试在视频捕获/监控/流媒体应用程序中选择这两个API,我不确定哪个是最好的选择.
一点背景:
一些谷歌搜索给我的印象是
MF认为前进更好,但我担心如果MF没有"赶上"并且Directshow仍然是首选的API,那么最终会陷入技术死胡同.建议和建议,请...
好的,我已经在这2天了,需要最后一部分的帮助.
我有一台Microsoft LifeCam Cinema相机,我使用.NET DirectShowLib来捕获视频流.实际上我使用WPFMediaKit,但我现在直接处理直接显示库的源代码.
我的工作是: - 查看摄像机的视频输出 - 以ASF或AVI记录摄像机的视频输出(ICaptureGraphBuilder2支持的唯一2个MediaType)
问题是:我可以将其保存为.avi.这工作正常,分辨率为1280x720,但它将文件保存在RAW输出中.这意味着它大约是每秒50-60MB.方式太高了.
或者我可以将其切换为.asf并输出WMV,但是当我这样做时,捕获和输出都转到分辨率320x240.
在WPFMediaKit中有一个我改变的功能,因为很明显有微软LifeCam Cinema相机很多人都有这个问题.因此,不是创建或更改您迭代的AMMediaType,而是使用它来调用SetFormat.
///* Make the VIDEOINFOHEADER 'readable' */
var videoInfo = new VideoInfoHeader();
int iCount = 0, iSize = 0;
videoStreamConfig.GetNumberOfCapabilities(out iCount, out iSize);
IntPtr TaskMemPointer = Marshal.AllocCoTaskMem(iSize);
AMMediaType pmtConfig = null;
for (int iFormat = 0; iFormat < iCount; iFormat++)
{
IntPtr ptr = IntPtr.Zero;
videoStreamConfig.GetStreamCaps(iFormat, out pmtConfig, TaskMemPointer);
videoInfo = (VideoInfoHeader)Marshal.PtrToStructure(pmtConfig.formatPtr, typeof(VideoInfoHeader));
if (videoInfo.BmiHeader.Width == DesiredWidth && videoInfo.BmiHeader.Height == DesiredHeight)
{
///* Setup the VIDEOINFOHEADER with …Run Code Online (Sandbox Code Playgroud) 我想请你帮忙解决一下WebCamera问题.我使用过Nuget的图书馆; WebEye.Controls.Wpf.WebCameraControl(版本1.0.0).该URL为https://www.nuget.org/packages/WebEye.Controls.Wpf.WebCameraControl/
文章和说明可在以下网址获得:http://www.codeproject.com/Articles/330177/Yet-another-Web-Camera-control
由于项目限制,我为Linx平板电脑(Windows 10)开发了WPF应用程序,而不是通用Windows应用程序.我使用WebEye库连接到平板电脑上的网络摄像头并用它拍照.当我在平板电脑中握住平板电脑时,它可以正常工作,但是当我在平板电脑模式下握住平板 在纵向模式下,CameraPreview/VideoWindow会自动旋转-90度.
我尝试解决问题无济于事.
无论我做什么,相机预览总是-90度.
该库很简单,它没有很多属性来操作视频窗口.
webcontrol在XAML中.
<wpf:WebCameraControl x:Name="webCameraControl"
MouseDoubleClick="webCameraControl_MouseDoubleClick"
StylusButtonUp="webCameraControl_StylusButtonUp"
MouseUp="webCameraControl_MouseUp"
TouchUp="webCameraControl_TouchUp"
GotMouseCapture="webCameraControl_GotMouseCapture"
/>
Run Code Online (Sandbox Code Playgroud)
这就是我初始化WebCamera的方式.加载UserControl后,它将自动连接到平板电脑上的网络摄像头.请参见startViewing()函数.
private WebCameraId _cameraID = null;
private void UserControl_Loaded(object sender, RoutedEventArgs e)
{
startViewing();
}
private void startViewing()
{
List<WebCameraId> cams = (List<WebCameraId>)webCameraControl.GetVideoCaptureDevices();
if (cams.Count > 0)
{
_cameraID = (WebCameraId)cams[0];
webCameraControl.StartCapture(_cameraID);
}
}
Run Code Online (Sandbox Code Playgroud)
当应用程序检测到显示屏幕中的更改时,我试图强制控件正确旋转它.请参见DisplaySettingsChanged事件.
public ucWebCam()
{
InitializeComponent();
Microsoft.Win32.SystemEvents.DisplaySettingsChanged += SystemEvents_DisplaySettingsChanged;
}
private void SystemEvents_DisplaySettingsChanged(object sender, EventArgs …Run Code Online (Sandbox Code Playgroud) 我正在寻找一个跨平台的视频捕获库,用于访问网络摄像头.一个包含Linux上的V4L/V4L2,Windows上的DirectShow和Mac上的QuickTime.
C或C++是首选,但如果有更好的库选项,我可以使用Java或Python.
directshow quicktime cross-platform video-capture video4linux
directshow过滤器有哪些调试工具?目前,我有一个项目,编译和注册视频源过滤器,然后我在GraphEdit中设置图形.我在visual studio 2008中使用c ++.是否有可能以任何可以设置断点,检查变量等的方式将调试器附加到过滤器?除非有一种方法可以在某个地方记录诊断信息,我可以实时查看吗?
.NET interop将COM对象包装到.NET对象(运行时可调用包装器,RCW)中,这些对象隐藏了通常的接口查询.为了使用运行对象表注册表示过滤器图的COM对象,我需要其IUnknown接口的(本机)地址(请参阅如何对DirectShow图进行反向工程?).
所以问题是:如何在C#中获取COM对象的IUnknown指针?
我一直在通过DirectX,DirectShow等进行排序,无法确定哪个.NET C#库是最好的.
我正在制作一个全屏视频的艺术装置.我希望用户能够在视频播放时平移和放大视频,理想情况下不会跳过或打嗝.是否有一项微软技术作为一个显而易见的选择?
Hi Stack Overflow成员,
我是C#编程的新手.我正在开发基本的相机流媒体并仍然捕捉应用程序.一旦用户静止不动,我将使用VMR9的位图混合概念在叠加层上显示它.
我做了什么?
我面临什么问题?
Unable to case COM object of type 'DirectShowLib.VideoMixingRenderer9' to interface type 'DirectShowLib.IVMRMixerBitmap9'. This operation failed because the QueryInterface call on the COM component for the interface with IID '{ced175e5-1935-4820-81bd-ff6ad00c9108}' failed due to the following error: No such interface supported (Exception from HRESULT: 0X80040002 (E_NOINTERFACE)
这是ShowHideBitmap函数的代码块
//Declarations
private static IBaseFilter vmr9 = null;
private static IVMRMixerBitmap9 vmr9mixerBitmap …Run Code Online (Sandbox Code Playgroud)