社区
多媒体/流媒体开发
帖子详情
ISampleGrabber接口能否用于音频抓取??
xmusmart
2006-05-01 11:39:27
我知道ISampleGrabber可以用于视频采集,但是不知道能不能用于音频,请教高手们啦,谢谢!
...全文
206
4
打赏
收藏
ISampleGrabber接口能否用于音频抓取??
我知道ISampleGrabber可以用于视频采集,但是不知道能不能用于音频,请教高手们啦,谢谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
liming049
2006-05-06
打赏
举报
回复
可以在msn群:msn420@imqun.com得到答案的
xmusmart
2006-05-03
打赏
举报
回复
应该说数据怎么编码吧,应该用哪些函数?
xmusmart
2006-05-03
打赏
举报
回复
感谢你的回复,不胜感激!
请问一下,应用ISampleGrabber采集的数据该怎么压缩呢?
经过传送后,能否用waveoutwrite播放呢??
fenglianghuai
2006-05-02
打赏
举报
回复
可以。
1、先建类,例:
class CSampleGrabberCallback : public ISampleGrabberCB
{
public:
int nFrame;
CSampleGrabberCallback()
{
nFrame=0;
}
~CSampleGrabberCallback()
{
}
// Fake referance counting.
STDMETHODIMP_(ULONG) AddRef() { return 1; }
STDMETHODIMP_(ULONG) Release() { return 2; }
STDMETHODIMP QueryInterface(REFIID riid, void **ppvObject)
{
if (NULL == ppvObject) return E_POINTER;
if (riid == __uuidof(IUnknown))
{
*ppvObject = static_cast<IUnknown*>(this);
return S_OK;
}
if (riid == __uuidof(ISampleGrabberCB))
{
*ppvObject = static_cast<ISampleGrabberCB*>(this);
return S_OK;
}
return S_OK;
}
STDMETHODIMP SampleCB(double Time, IMediaSample *pSample)
{
if(bStop)return S_OK;
long Size=pSample->GetActualDataLength ();
BYTE * pBuf;
pSample->GetPointer(&pBuf);
return S_OK;
}
STDMETHODIMP BufferCB(double Time, BYTE *pBuffer, long BufferLen)
{
TRACE("BufferCB nFrame=%d\n",nFrame);
return S_OK;
}
};
2、然后设置回调
CSampleGrabberCallback g_CapCB;
CComQIPtr<ISampleGrabber>pGrabber;
CComQIPtr<IBaseFilter>pGrabberF;
JIF(AddFilterByCLSID(m_pGB, CLSID_SampleGrabber, L"Grabber", &pGrabberF));
pGrabberF->QueryInterface(IID_ISampleGrabber, (void**)&pGrabber);
AM_MEDIA_TYPE mt;
ZeroMemory(&mt, sizeof(AM_MEDIA_TYPE));
mt.majortype = MEDIATYPE_Audio;
mt.subtype = MEDIASUBTYPE_NULL;
mt.formattype = FORMAT_WaveFormatEx;
JIF( pGrabber->SetMediaType(&mt));
JIF(pGrabber->SetCallback(&g_CapCB, 0));
Windows远程桌面实现之三(电脑内部声音采集,录音采集,摄像头视频采集)
by fanxiushu 2017-08-09 转载或引用请注明原始作者 一,摄像头视频采集: 这里提到的摄像头数据采集,好像跟远程桌面...以至于只要把摄像头采集的数据格式跟之前采集到的桌面数据格式对接,基本就能实现摄像头数
directshow捕获摄像头数据
MessageBox(NULL, L"不能初始化
Sample
Grabber
媒体类型。", L"", MB_OK); return hr; } hr = m_pGB->AddFilter( pGrabBase, L"
Grabber
" ); if( FAILED( hr ) ) { MessageBox(NULL, L"Could not put
sample
grabber
in...
如何捕捉视频流并保存到文件
捕捉Filter一般都有两个或多个输出pin,他们输出的媒体类型都一样,比如预览pin和捕捉pin,因此根据媒体类型就不能很好的区别这些pin。此时就要根据pin的功能来区别每个pin了,每个pin都有一个GUID,称为pin的种类。...
Directshow中的视频捕捉
捕捉Filter一般都有两个或多个输出pin,他们输出的媒体类型都一样,比如预览pin和捕捉pin,因此根据媒体类型就不能很好的区别这些pin。此时就要根据pin的功能来区别每个pin了,每个pin都有一个GUID,称为pin的种类。...
window/Linux音视频采集 源码分享
但是其代码内部写死了视频设备名称,所以要根据自己的实际情况去修改下相应的代码,不然不能正常的工作。windows下由于ffmpeg不提供dshow采集设备枚举的功能(ffmpeg 2.6版本,后面的版本暂不清楚),导致其在很多...
多媒体/流媒体开发
2,543
社区成员
20,281
社区内容
发帖
与我相关
我的任务
多媒体/流媒体开发
专题开发/技术/项目 多媒体/流媒体开发
复制链接
扫一扫
分享
社区描述
专题开发/技术/项目 多媒体/流媒体开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章