- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
(起初,对不起我的英语)
我有一个像这样的 DirectShow 过滤器图:
这是我的代码:
HRESULT BuildGraph(IGraphBuilder *pGraph, LPCOLESTR srcFile1)
{
HRESULT hr = S_OK;
//graph builder
CComPtr<ICaptureGraphBuilder2> pBuilder;
hr = pBuilder.CoCreateInstance(CLSID_CaptureGraphBuilder2);
CHECK_HR(hr, L"Can't create Capture Graph Builder");
hr = pBuilder->SetFiltergraph(pGraph);
CHECK_HR(hr, L"Can't SetFiltergraph");
//add File Source (Async.)
CComPtr<IBaseFilter> pFileSourceAsync;
hr = pFileSourceAsync.CoCreateInstance(CLSID_GSN_FileSourceAsync);
CHECK_HR(hr, L"Can't create File Source (Async.)");
hr = pGraph->AddFilter(pFileSourceAsync, L"File Source (Async.)");
CHECK_HR(hr, L"Can't add File Source (Async.) to graph");
//set source filename
CComQIPtr<IFileSourceFilter, &IID_IFileSourceFilter> pFileSourceAsync_src(pFileSourceAsync);
if (!pFileSourceAsync_src)
CHECK_HR(E_NOINTERFACE, L"Can't get IFileSourceFilter");
hr = pFileSourceAsync_src->Load(srcFile1, NULL);
CHECK_HR(hr, L"Can't load file");
//add LAV Splitter
CComPtr<IBaseFilter> pLAVSplitter;
hr = pLAVSplitter.CoCreateInstance(CLSID_GSN_LAVSplitter);
CHECK_HR(hr, L"Can't create LAV Splitter");
hr = pGraph->AddFilter(pLAVSplitter, L"LAV Splitter");
CHECK_HR(hr, L"Can't add LAV Splitter to graph");
//add LAV Video Decoder
CComPtr<IBaseFilter> pLAVVideoDecoder;
hr = pLAVVideoDecoder.CoCreateInstance(CLSID_GSN_LAVVideoDecoder);
CHECK_HR(hr, L"Can't create LAV Video Decoder");
hr = pGraph->AddFilter(pLAVVideoDecoder, L"LAV Video Decoder");
CHECK_HR(hr, L"Can't add LAV Video Decoder to graph");
//add Infinite Pin Tee Filter
CComPtr<IBaseFilter> pInfinitePinTeeFilter;
hr = pInfinitePinTeeFilter.CoCreateInstance(CLSID_GSN_InfinitePinTeeFilter);
CHECK_HR(hr, L"Can't create Infinite Pin Tee Filter");
hr = pGraph->AddFilter(pInfinitePinTeeFilter, L"Infinite Pin Tee Filter");
CHECK_HR(hr, L"Can't add Infinite Pin Tee Filter to graph");
//add AVI Decompressor
CComPtr<IBaseFilter> pAVIDecompressor;
hr = pAVIDecompressor.CoCreateInstance(CLSID_GSN_AVIDecompressor);
CHECK_HR(hr, L"Can't create AVI Decompressor");
hr = pGraph->AddFilter(pAVIDecompressor, L"AVI Decompressor");
CHECK_HR(hr, L"Can't add AVI Decompressor to graph");
//add Color Space Converter
CComPtr<IBaseFilter> pColorSpaceConverter;
hr = pColorSpaceConverter.CoCreateInstance(CLSID_GSN_ColorSpaceConverter);
CHECK_HR(hr, L"Can't create Color Space Converter");
hr = pGraph->AddFilter(pColorSpaceConverter, L"Color Space Converter");
CHECK_HR(hr, L"Can't add Color Space Converter to graph");
//add Decklink Video Render
CComPtr<IBaseFilter> pDecklinkVideoRender;
hr = pDecklinkVideoRender.CoCreateInstance(CLSID_GSN_DecklinkVideoRender);
CHECK_HR(hr, L"Can't create Decklink Video Render");
hr = pGraph->AddFilter(pDecklinkVideoRender, L"Decklink Video Render");
CHECK_HR(hr, L"Can't add Decklink Video Render to graph");
//add Enhanced Video Renderer
CComPtr<IBaseFilter> pEnhancedVideoRenderer;
hr = pEnhancedVideoRenderer.CoCreateInstance(CLSID_GSN_EnhancedVideoRenderer);
CHECK_HR(hr, L"Can't create Enhanced Video Renderer");
hr = pGraph->AddFilter(pEnhancedVideoRenderer, L"Enhanced Video Renderer");
CHECK_HR(hr, L"Can't add Enhanced Video Renderer to graph");
//connect File Source (Async.) and LAV Splitter
hr = pGraph->ConnectDirect(GetPin(pFileSourceAsync, L"Output"), GetPin(pLAVSplitter, L"Input"), NULL);
CHECK_HR(hr, L"Can't connect File Source (Async.) and LAV Splitter");
//connect LAV Splitter and LAV Video Decoder
hr = pGraph->ConnectDirect(GetPin(pLAVSplitter, L"Video"), GetPin(pLAVVideoDecoder, L"Input"), NULL);
CHECK_HR(hr, L"Can't connect LAV Splitter and LAV Video Decoder");
//connect LAV Video Decoder and Infinite Pin Tee Filter
hr = pGraph->ConnectDirect(GetPin(pLAVVideoDecoder, L"Output"), GetPin(pInfinitePinTeeFilter, L"Input"), NULL);
CHECK_HR(hr, L"Can't connect LAV Video Decoder and Infinite Pin Tee Filter");
//connect Infinite Pin Tee Filter and AVI Decompressor
hr = pGraph->ConnectDirect(GetPin(pInfinitePinTeeFilter, L"Output2"), GetPin(pAVIDecompressor, L"XForm In"), NULL);
CHECK_HR(hr, L"Can't connect Infinite Pin Tee Filter and AVI Decompressor");
//connect Infinite Pin Tee Filter and Decklink Video Render
hr = pGraph->ConnectDirect(GetPin(pInfinitePinTeeFilter, L"Output4"), GetPin(pDecklinkVideoRender, L"In"), NULL);
CHECK_HR(hr, L"Can't connect Infinite Pin Tee Filter and Decklink Video Render");
//connect AVI Decompressor and Color Space Converter
hr = pGraph->ConnectDirect(GetPin(pAVIDecompressor, L"XForm Out"), GetPin(pColorSpaceConverter, L"Input"), NULL);
CHECK_HR(hr, L"Can't connect AVI Decompressor and Color Space Converter");
//connect Color Space Converter and Enhanced Video Renderer
hr = pGraph->ConnectDirect(GetPin(pColorSpaceConverter, L"XForm Out"), GetPin(pEnhancedVideoRenderer, L"EVR Input0"), NULL);
CHECK_HR(hr, L"Can't connect Color Space Converter and Enhanced Video Renderer");
return S_OK;
}
效果很好,但如果源是 1080p50,我想在 EVR 中将其显示为 PAL(720x576 25fps),在 Deklink 渲染器中显示为 1080i50。
我的问题:如何更改源的大小和帧速率? (我可以使用什么过滤器和接口(interface)...)
注意:我在谷歌上搜索并发现了很多关于在使用 IAMStreamConfig
接口(interface)捕获时更改视频帧率/大小的帖子,但我的源是文件并且文件源过滤器没有 IAMStreamConfig
界面。
最佳答案
video resizer dsp可用于缩小视频。但它是 DMO/MFT 而不是原生的 DirectShow 过滤器。但是为什么要在 EVR 之前缩小它呢?用IMFVideoPositionMapper::MapOutputCoordinateToInputStream您可以直接缩小显示。
随着Frame Rate Converter DSP您可以降低帧速率。这也是 DMO/MFT。
为什么要将隔行扫描的视频发送到 Decklink?我不知道有什么过滤器/dmo/mft 可以做到这一点。
关于c++ - 直接显示 : How to change Size and frame rate of video?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62936186/
ValueError Traceback (most recent call last) in 23 out
在 CSS 中,我从来没有真正理解为什么会发生这种情况,但每当我为某物分配 margin-top:50% 时,该元素就会被推到页面底部,几乎完全消失这一页。我假设 50% 时,该元素将位于页面的中间位
我正在尝试在 pyTorch 中训练我的第一个神经网络(我不是程序员,只是一个困惑的化学家)。 网络本身应该采用 1064 个元素向量并用 float 对它们进行评级。 到目前为止,我遇到了各种各样的
我有一个简单的问题。如何在 3 个维度上移动线性阵列?这似乎太有效了,但在 X 和 Y 轴上我遇到了索引问题。我想这样做的原因很简单。我想创建一个带有 block 缓冲区的体积地形,所以我只需要在视口
我正在尝试运行我购买的一本关于 Pytorch 强化学习的书中的代码。 代码应该按照本书工作,但对我来说,模型没有收敛,奖励仍然为负。它还会收到以下用户警告: /home/user/.local/li
我目前正在使用 this repo使用我自己的数据集执行 NLP 并了解有关 CNN 的更多信息,但我一直遇到有关形状不匹配的错误: ValueError: Target size (torch.Si
UIScrollView 以编程方式设置,请不要使用 .xib 文件发布答案。 我的 UIScrollView 位于我的模型类中,所以我希望代码能够轻松导入到另一个项目中,例如。适用于 iPad 或旋
我在我的 Ruby on Rails 应用程序(版本 4.3.1)中使用 Bootstrap gem。我最近发现了响应式字体大小功能 (rfs)。根据 Bootstrap 文档,它刚刚在 4.3 版中
这个问题不太可能帮助任何 future 的访客;它仅与一个小地理区域、一个特定时刻或一个非常狭窄的情况相关,而这些情况通常不适用于互联网的全局受众。如需帮助使这个问题更广泛地适用,visit the
size 之间的语义区别是什么?和 sizeIs ?例如, List(1,2,3).sizeIs > 1 // true List(1,2,3).size > 1 // true Luis 在 c
我想从 div 中删除一些元素属性。我的 div 是自动生成的。我想遍历每个 div 和子 div,并想删除所有 font-size (font-size: Xpx)和 size里面font tag
super ,对 Python 和一般编程 super 新手。我有一个问题应该很简单。我正在使用一本使用 Python 3.1 版的 python 初学者编程书。 我目前正在写书中的一个程序,我正在学
我无法从 NativeBase 更改缩略图的默认大小。我可以显示默认圆圈,即小圆圈和大圆圈,但我想显示比默认大小更大的圆圈。这是我的缩略图代码: Prop 大小不起作用,缩略图仍然很小。 我的 Na
我是pytorch的新手。在玩张量时,我观察到了两种类型的张量- tensor(58) tensor([57.3895]) 我打印了它们的形状,输出分别是 - torch.Size([]) torch
这是我的 docker images 命令的输出: $ docker images REPOSITORY TAG IMAGE ID CREATED
来自 PriorityQueue 的代码: private E removeAt(int i) { assert i >= 0 && i < size; modCount++;
首先,在我的系统上保留以下内容:sizeof(char) == 1 和 sizeof(char*) == 4。很简单,当我们计算下面类的总大小时: class SampleClass { char c
我正在编写一个游戏来查找 2 个图像之间的差异。我创建了 CCSprite 的子类 Spot。首先我尝试创建小图像并根据其位置添加自身,但后来我发现位置很难确定,因为很难避免 1 或 2 个像素的偏移
我有一个 Tumblr Site每个帖子的宽度由标签决定。 如果一篇文章被标记为 #width200,CSS 类 .width200 被分配。 问题是,虽然帖子的宽度不同,但它们都使用主题运算符加载相
这个问题在这里已经有了答案: What is the ideal growth rate for a dynamically allocated array? (12 个答案) 关闭 8 年前。 我
我是一名优秀的程序员,十分优秀!