如何在GraphEdit中用ffdshow filter播放h264文件

tianma_25 2010-02-25 10:55:52
我成功安装了ffdshow,为什么在GraphEdit里点击File-->Render Media File,打开264文件,提示未找到可用于建立连接的介质筛选器组合?用其他方法插入ffdshow video decoder后手动连接,也提示同样的错误,这个怎么解决??
...全文
894 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
yxcumt6 2010-03-08
  • 打赏
  • 举报
回复
楼主可不可以分享一下代码,学习ing
chiwa737 2010-03-04
  • 打赏
  • 举报
回复
下载homecinema的filter肯定可以, unregister其他没用的filter
tianma_25 2010-03-01
  • 打赏
  • 举报
回复
我现在自己写了个source filter,在GraphEdit中可以连接上了,
Source Filter->ffdshow video decoder->Video Render,但是点播放没有图像啊,我在Source Filter的Pin类里实现了三个函数GetMediaType,DecideBufferSize,FillBuffer,我在FillBuffer里一次从文件读取一帧数据,读到尾后又从开始重新读。

我的问题有可能出在哪里,谁可以给我点建议不了?
tianma_25 2010-03-01
  • 打赏
  • 举报
回复
引用 5 楼 oexpress 的回复:
ffdshow video decoder默认是不能解码很H264码流的,要么就是你没有选择一个合适的vdemuxer,你的h264文件时什么格式的还是纯264bitstream?请使用corecodec公司的coreavc.ax,应该没有问题的


我的h264文件是.264格式的,应该是纯264bitstream,ffdshow不能解这种吗?
tianma_25 2010-03-01
  • 打赏
  • 举报
回复
引用 10 楼 oexpress 的回复:
ffdshow是不能完全解码aac的,好像只支持低profile把,你可以试验一下


试了下听不到声音,但是不知道是不是我的GetMediaType设的有问题啊,是这样设的

pMediaType->SetType(&MEDIATYPE_Audio);
pMediaType->SetSubtype(&MEDIASUBTYPE_AAC);
//MEDIASUBTYPE_AAC:0x000000FF,0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71
pMediaType->SetFormatType(&FORMAT_WaveFormatEx);
pMediaType->SetTemporalCompression(TRUE);

WAVEFORMATEX *pwf = NULL;
pwf = (WAVEFORMATEX*)pMediaType -> AllocFormatBuffer(sizeof(WAVEFORMATEX)+2);
if (pwf==NULL)return E_OUTOFMEMORY;

ZeroMemory(pwf,sizeof(WAVEFORMATEX)+2);
pwf->wFormatTag = 0xFF;
pwf->nChannels = 2;
pwf->nSamplesPerSec = 48000;
pwf->wBitsPerSample = 16;
pwf->cbSize = 2;
pwf->nBlockAlign = pwf->nChannels * pwf->wBitsPerSample / 8;
pwf->nAvgBytesPerSec = pwf->nSamplesPerSec * pwf->nBlockAlign;
((BYTE *)pwf)[sizeof(WAVEFORMATEX)+ 0] = 0x12;
((BYTE *)pwf)[sizeof(WAVEFORMATEX)+ 1] = 0x90;

有哪里不对吗?也是参考的网上的,我这AAC是HE-AAC的,如果按你说的ffdshow也解不了,那什么解码filter一定能解的?
CyberLogix 2010-03-01
  • 打赏
  • 举报
回复
ffdshow是不能完全解码aac的,好像只支持低profile把,你可以试验一下
tianma_25 2010-03-01
  • 打赏
  • 举报
回复
引用 8 楼 oexpress 的回复:
对于这种纯264bitstream,ffdshow是不能接受的,应该找个很是的demuxer,的先识别出他的mediatype和submediatype然后才能传给decoder filter,你尝试一下elecard mpeg demuxer filter,应该可以的


我试了coreavc.ax,它可以解出图像来,那再问下对于音频数据AAC呢,也是.aac的文件,ffdshow可以解吗?
CyberLogix 2010-03-01
  • 打赏
  • 举报
回复
对于这种纯264bitstream,ffdshow是不能接受的,应该找个很是的demuxer,的先识别出他的mediatype和submediatype然后才能传给decoder filter,你尝试一下elecard mpeg demuxer filter,应该可以的
tianma_25 2010-02-26
  • 打赏
  • 举报
回复
引用 3 楼 wangbinds 的回复:
插入Filter后直接连接,可不可以?


就是插入Filter后手动连接的,不可以,求救中!
凤朝凰 2010-02-26
  • 打赏
  • 举报
回复
插入Filter后直接连接,可不可以?
tianma_25 2010-02-26
  • 打赏
  • 举报
回复
引用 1 楼 rageliu 的回复:
pin连接不上还是不能render哦?


连接不上pin呢,我一连就弹出“未找到可用于建立连接的介质筛选器组合”,我用的是ffdshow Video Decoder,它有两个输入pin,一个In,一个In Text,我两个都试了,都不行啊? 我应该怎么弄,这跟Source Filter有关系吗,需要自己写个Source Filter吗?
CyberLogix 2010-02-26
  • 打赏
  • 举报
回复
ffdshow video decoder默认是不能解码很H264码流的,要么就是你没有选择一个合适的vdemuxer,你的h264文件时什么格式的还是纯264bitstream?请使用corecodec公司的coreavc.ax,应该没有问题的
rageliu 2010-02-25
  • 打赏
  • 举报
回复
pin连接不上还是不能render哦?
H264编码器标准草案发布时,很多人都觉得H.264太复杂,不宜实用。眨眼间3年过去了,以往的论断、疑惑被如今的现实冲洗的干干净净。一张7.92G的1小时50分的av,分辨720*480,用Ahead dvd ripper,现在用最新的ffdshow h264编码(4线程,码率1500k),需要1小时10分左右。cpu吃不完,占用率在50%左右。 采用H.264编码,将视频文件压缩转换为MP4/3GP/F4V/AVI格式.绿色软件,使用方便,压缩速度快,图像质量好. 本软件使用Windows系统注册解码器进行视频解码.Windows Media Player能够播放的视频格式,本软件都可以进行压缩.对于不支持的视频格式,可以安装解码包,如ffdshow, 影音风暴等. H264编码器功能: 1、四路视频实时预览,也可利用Web界面对多路直播信号远程集中管理进行配置管理, 2、领先的码率控制技术(CBR/VBR),使其能轻松运作于280Kbps~ 6000Kbps之间。 3、可变的GOP结构:I,IP,IBP,IBBP。 4、PCM音频信道。 5、指纹式植入的视频流的音频处理技术,使得视音频实时同步。 6、支持输出文件格式:FLV,MPEG-4,MPEG-2及HTTP,RTSP,UDP网络协议。 7、支持VBR及CBR压缩方式。 8、支持多种分辨率:FULL,D1等; 9、可将录制FLV格式文件再转换为MP4格式文件进行存储; 10、支持自动录制和手工录制; 11、能设定自动录制计划,时间设定为某月某周某日时分秒,自动进行录制; 12、每路直播信号,能设定不同时段的定时任务; 13、可设定录制文件保存路径; 14、支持网络存储,如NASNAS SAN等网络环境。 H264编码器截图:

2,554

社区成员

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

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