谁知道怎么样利用《实务精选》 中的VodDemo例子来播放mpeg2媒体文件吗?

cococut 2006-07-07 11:58:49
我只能正常播放mpeg1文件,
我安装elecard demulpliter后,把客户端
guid = CLSID_MMSPLITTER;
改为
guid = CLSID_CLSID_MPEG2Demultiplexer;
后编译运行,发现
HRESULT hr = mGraph->ConnectDirect(inOutputPin, inInputPin, inMediaType);
这个函数连接失败,
hr 为 -2147220985
不知道哪里错啦,
有谁知道吗?
谢谢
...全文
319 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
cococut 2006-07-11
  • 打赏
  • 举报
回复
mCheckingSize = 3 * 1024 * 1024;
该成4 * 1024 * 1024;
5 * 1024 * 1024;
6 * 1024 * 1024;
7 * 1024 * 1024;
8 * 1024 * 1024;
10 * 1024 * 1024;
都不能播放,
我选的播放文件是《DirectShow实务精选》光盘源代码\Media\MPEG2_TS.mpg

陆老师,还要改哪里吗?
cococut 2006-07-11
  • 打赏
  • 举报
回复
陆老师,我的思路是是这样,
首先,我在grashedit里面render一个ts流文件,
发现它连Elecard demultspliter,然后再连解码器,可以播放,
在程序中我这样修改,比如:Elecard demulspliter,替换mpeg2_spliter,然后把SetSubtype(&MEDIASUBTYPE_MPEG2_TRANSPORT);
不过验证过,这样改,还是播放不了,
不知道还需要改那些地方!
happydeer 2006-07-11
  • 打赏
  • 举报
回复
要播放ts流,需要支持ts流的mpeg splitter。微软的mpeg2 splitter只能分离ps流。微软的mpeg2 demux可以分离ts流,但只能工作在push模式下。
cococut 2006-07-11
  • 打赏
  • 举报
回复
谢谢陆老,是只能播放ps,不能播放ts,我瞎搞几天,不过也因此熟悉了代码,
请问陆老师,要改成支持播放ts流mpeg2,怎么修改,给我说说思路!
happydeer 2006-07-11
  • 打赏
  • 举报
回复
难怪!voddemo只能播放mpeg2程序流,不能播放传输流。所以,MPEG2_TS.mpg肯定不能播放。
Bill1212 2006-07-10
  • 打赏
  • 举报
回复

用mGraph->Connect(inOutputPin, inInputPin);试一试
happydeer 2006-07-10
  • 打赏
  • 举报
回复
mpeg2可能在连接是要求预先接受的数据量较大。你可以看到CMediaController类中的注释

CMediaController::CMediaController(CFilterNetReceiver * inFilter)
{
// Before this filter connect downstream, firstly we must receive some data
// for connection checking.
// we can change its size according to actual requirements
mCheckingSize = 30 * 1024;
}


void CMediaController::SetSize(long inTotalSize, long inCheckOffset)
{
// Adjust some params
if (mStreamType == FT_MPEG2)
{
mCheckingSize = 3 * 1024 * 1024;
}
if (mCheckingSize > mTotalSize)
{
mCheckingSize = mTotalSize;
}
}

建议你将mCheckingSize的大小调得更大一点再试试。
cococut 2006-07-10
  • 打赏
  • 举报
回复
Bill1212(Bill)
试过,一样

2,543

社区成员

发帖
与我相关
我的任务
社区描述
专题开发/技术/项目 多媒体/流媒体开发
社区管理员
  • 多媒体/流媒体开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧