上篇帖子的篇幅过长,不利于查看,所以又开一个帖子。这里对上帖子的东西也做一个总结。
重新描述问题:在wince环境下采集视频数据,并用三星的6410硬件加速器压缩原始数据,压缩算法是MPEG-4,压缩后的数据直接存入文件,保存为.m4v格式(此处格式是什么在PC机上没有区别)。注意此处存文件的时候,没有用任何的容器格式,就是视频流数据直接写入文件,不符合任何格式,所以也没什么文件头之类的信息,也导致无法被大部分的播放器打开。上述文件在PC上可以被强大的暴风影音打开播放,视频播放则无法控制。于是,需要自己写一个播放器来实现这个工作。准备用dshow来实现这个播放器,现在的问题就是关于MPEG-4解码的问题。如果能找到现成的dshow MPEG-4 解码filter,那么我的dshow程序多了。为了找到这个解码的filter,我安装了DIVX XVID等等一堆的插件,这些插件安装后,如果能正确解码我的视频文件,那么我用GraphEdit应该能打开此文件?又或者我用media player应该可以播放此文件,这样就证明dshow可以实现播放,不知道这个理解是否正确。看到CSDN的朋友的建议,我装了个MKPlayer试了试,无法打开视频文件来播放,不过倒是查出点视频文件的信息如下:
未找到可用于流呈现的筛选器组合,ERROR NUM:80040218
--------------------
[文件信息]
--------------------
C:\Documents and Settings\Nicky\桌面\Video_1.m4v
  General
    Complete name : C:\Documents and Settings\Nicky\桌面\Video_1.m4v
    Format : MPEG-4 Visual
    File size : 681 KiB
  Video
    Format : MPEG-4 Visual
    Format profile : Simple@L4a
    Format settings, BVOP : Yes
    Format settings, QPel : No
    Format settings, GMC : No warppoints
    Format settings, Matrix : Default (H.263)
    Width : 640 pixels
    Height : 480 pixels
    Display aspect ratio : 4:3
    Resolution : 24 bits
    Scan type : Progressive各位能不能从上述的信息帮我看出点什么道道。难道真的找不到对应可以解码的direcdshow filter?如果找不到,我是不是需要去找源码来做解码部分,又或是其他的方式,用FFDSHOW FFMPEG的库?等等,请指教

解决方案 »

  1.   

    Format : MPEG-4 Visual
    Format profile : Simple@L2
    Format settings, BVOP : Yes
    Format settings, QPel : No
    Format settings, GMC : No warppoints
    Format settings, Matrix : Default (H.263)网上查到这好像是MPEG-4 part2 压缩标准。能找到这样的解码插件吗?还有纠结的,以下是MSDN的东西:
    MPEG-4 Part 2 Video Decoder
    The MPEG4 Part 2 Video decoder decodes video streams that were encoded according to the MPEG4 Part 2 standard.You can create an instance of the MPEG4 Part 2 Video decoder by calling CoCreateInstance. To create an instance of the decoder that behaves as a DirectX Media Object (DMO), use the class identifier CLSID_CMpeg4sDecMediaObject. To create an istance of the decoder that behaves as a Media Foundation Transform (MFT), use the class identifier CLSID_CMpeg4sDecMFT.微软可以解码这个格式?但是GraphEdit都打不开,media player不能播,dshow难道可以?
      

  2.   

    就是MPEG4的视频马,很简单的,ffdshow就可以解码的,不行的话使用ffmpeg解码,在这WINCE上不是有个XVID等开源库里TCPMP播放器马,保证100%可以播放
      

  3.   

    你的意思让我找ffdshow源码去做吗?
    ffdshow可不可以安装以后,用他的解码插件在dshow里实现
      

  4.   

    感谢各位大神的帮助,终于找到要找的东西了
    K-lite里面有这个解码器....FUCK....终于长出一口气
      

  5.   

    你好,你弄好了播放mpeg-4格式的播放器了吗?
    是怎么弄的啊?我最近也在做这方面的东西,想要做个播放器
    但是网上大多数的代码是播不了的,不知道你是怎么实现的?