求教 写视频播放器 文件为m4v格式 文件中保存的是MPEG4压缩后的视频流数据 可以直接播放吗?标题要长

VCLIFE 2010-09-20 04:53:08
多谢各位!
标题几乎描述了问题了。我现在采集到视频原始数据,并经过MPEG4的算法压缩,直接存入文件,这个应该是video stream,视频流文件,拿暴风影音是可以直接播放的,但是不可控制。

我查阅了网上vc写播放器的东西,发现跟编码解码无关,都是直接open play stop等等即可,所以我想这个应该是对播放的文件的格式是有要求的,比如有对应解码filter才可以。请各位帮我解惑

我上述的文件可以直接用VC play吗?

由于VC播放器写的不熟练,所以无法立马验证我的想法,所以想先跟有经验的人求证一下
...全文
898 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
VCLIFE 2010-09-24
  • 打赏
  • 举报
回复
KMPlayer无法播放,以下是KMPlayer播放的问题:

--------------------
[文件信息]
--------------------
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
VCLIFE 2010-09-24
  • 打赏
  • 举报
回复
[Quote=引用 22 楼 bokutake 的回复:]

你用KMPlayer打开它,然后右键看媒体属性,就可以知道到底是用的什么Filter。你最好用一个标准点的容器格式,比如.avi。另外.m4v这个格式一般都是特指iTunes苹果系的H.264格式。
[/Quote]
你好,我看到你们都在说容器格式。我想重新再说一下,我这个就是压缩后的MPEG-4数据直接存入文件了,没有符合任何容器的格式,所以我的后缀名实际上一没有实际意义对吗。我之所以起成.m4v是因为我的嵌入式设备上的播放器见到这个后缀会调用对应的解码filter来播放,在PC上不行。
VCLIFE 2010-09-24
  • 打赏
  • 举报
回复
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难道可以?
dengzikun 2010-09-23
  • 打赏
  • 举报
回复
Mpeg4 Decoder DMO是微软的解码器,Divx也是一个mpeg4解码器。
你的问题可能是缺少合适的MPEG4解码器Filter,或者是缺少合适的
文件解析Filter.

你多装几个解码器FILTER,试试看。

FFSHOW, K-LITE, elecard,arcsoft等,还有一些播放器。
这些里边带有很多解码器FILTER和文件DEMUX FILTER.
辰岡墨竹 2010-09-23
  • 打赏
  • 举报
回复
你用KMPlayer打开它,然后右键看媒体属性,就可以知道到底是用的什么Filter。你最好用一个标准点的容器格式,比如.avi。另外.m4v这个格式一般都是特指iTunes苹果系的H.264格式。
VCLIFE 2010-09-23
  • 打赏
  • 举报
回复
提示错误:
Could no construct a graph from this file.

- have you installed all necessary filters?
- Note that the 'Render File'menu option cannot render *.GRF files.

无法播放此文件,不支持此格式
我下载了个divx安装了

打开insert filters,看到dshow下有Mpeg4 Decoder DMO,这是dshow自带的MPEG4解码filter??
还有Divx MPEG4 DVD Video Decompressor这个应该不是解MPEG4视频流的filter吧

video Compressors:这个目录下有:
Divx;-)MPEG-4 Fast-Motion
Divx;-)MPEG-4 Low-Motion

我不知道哪个是可以别用来解码MPEG4视频流的filters

丁老大,给我解释下行不
VCLIFE 2010-09-23
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 dengzikun 的回复:]
网上有编译好的,当然也有源码。
[/Quote]
可不可以给个QQ,跟你请教点概念性的东西。这个帖子说到这里,我一直都没有底,我那个视频文件到底能不能用dshow+第三方decoder filter来解决。我的视频流文件是用三星的6410硬件加速器压缩的,现在到PC机上写播放器,用divx的解码filter不会出什么问题吧,标准的MPEG4规范,都应该遵循的吧。

我想先用GraphEdit验证下上述方法能不能实现,可是无法将文件加载进入,点rander midea file,直接显示不识别的文件格式。不会用。我的文件格式存成m4v的了
dengzikun 2010-09-23
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 vclife 的回复:]
引用 6 楼 dengzikun 的回复:
网上找个FFDSHOW之类的东西,里边包括了大部分能见到的音视频解码器。
至于DSHO……


FFDSHOW这是源码吧?最好是有第三方的插件,能注册解码filter被我dshow的程序调用。这样就好弄了
[/Quote]

网上有编译好的,当然也有源码。
VCLIFE 2010-09-23
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 xianglitian 的回复:]

mepg4的东西我播放过
直接play即可
不过机器上要装暴风
也就是要有解码器
用的是当时网上很火的一个类DXGraph
是对directshow的封装
但是这个类不能放DVD和m2v
[/Quote]

感谢回复,我知道暴风可以直接播放,但是不可控制,所以我要自己写播放器。
所以必须提供给dshow用的解码filter才可以,这个filter有现成的吗?自己写的话很麻烦,还得研究MPEG4的解码算法。
向立天 2010-09-23
  • 打赏
  • 举报
回复
mepg4的东西我播放过
直接play即可
不过机器上要装暴风
也就是要有解码器
用的是当时网上很火的一个类DXGraph
是对directshow的封装
但是这个类不能放DVD和m2v
VCLIFE 2010-09-23
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 dengzikun 的回复:]
网上找个FFDSHOW之类的东西,里边包括了大部分能见到的音视频解码器。
至于DSHO……
[/Quote]

FFDSHOW这是源码吧?最好是有第三方的插件,能注册解码filter被我dshow的程序调用。这样就好弄了
VCLIFE 2010-09-23
  • 打赏
  • 举报
回复
[Quote=引用 20 楼 bokutake 的回复:]

你应该用个什么x264之类的解码器吧。
[/Quote]
m4v的格式实际是我定的,我让他是什么格式他就是什么格式。但是数据是经过MPEG-4压缩后存入的。有什么建议。我下了一堆的插件,还是无法播放这个东西
辰岡墨竹 2010-09-23
  • 打赏
  • 举报
回复
你应该用个什么x264之类的解码器吧。
辰岡墨竹 2010-09-23
  • 打赏
  • 举报
回复
.m4v应该是H.264格式的吧,用MPEG4编码器能解码么?
dengzikun 2010-09-23
  • 打赏
  • 举报
回复
不同的解码器对码流格式的兼容性可能不一样,可是一般MPEG4编码器输出的码流格式也不会太变态。
你先确认文件格式是否能正确解析,然后再解决解码的问题。

或者不要存文件,压缩输出码流,直接解码。
VCLIFE 2010-09-23
  • 打赏
  • 举报
回复
感觉网上说的一堆的MPEG-4解码器,跟我这个有些区别,那些解码器好像解的不是纯粹的MPEG-4压缩的视频流。那些解码器好像都对应固定的格式
VCLIFE 2010-09-23
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 dengzikun 的回复:]

理论上,只要安装了相应的FILTER,任何格式都能打开。
GraphEdit是基于DSHOW的,如果GraphEdit打不开,
那么基于DSHOW的程序也不行。
[/Quote]
那证明还是少装东西了。DIVX FFDSHOW都装了,还是不行。装了这些插件,按理media player也该能播放才对,现在media player也无法播放。我这种格式的文件能找到现成的filter吗?怀疑,难道非得去研究解码算法,自己写filter?
dengzikun 2010-09-23
  • 打赏
  • 举报
回复
理论上,只要安装了相应的FILTER,任何格式都能打开。
GraphEdit是基于DSHOW的,如果GraphEdit打不开,
那么基于DSHOW的程序也不行。
VCLIFE 2010-09-23
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 dengzikun 的回复:]

Mpeg4 Decoder DMO是微软的解码器,Divx也是一个mpeg4解码器。
你的问题可能是缺少合适的MPEG4解码器Filter,或者是缺少合适的
文件解析Filter.

你多装几个解码器FILTER,试试看。

FFSHOW, K-LITE, elecard,arcsoft等,还有一些播放器。
这些里边带有很多解码器FILTER和文件DEMUX FILTER.
[/Quote]
我又下了个ffdshow装上了,再用GraphEdit试,还是无法打开我的视频文件。

GraphEdit是不是只能打开微软支持的格式啊,是不是GraphEdit打不开,那写程序肯定也不行?
dengzikun 2010-09-22
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 vclife 的回复:]
我看到网上有DivX 的插件,如果将这个插件加入media player,这样media player是不是就可以播放mpeg4压缩的视频流文件

而且这个插件是不是在dshow也可知创建实例,然后预览文件

请高手帮我,先弄清楚概念性东西才可以编码
[/Quote]

网上找个FFDSHOW之类的东西,里边包括了大部分能见到的音视频解码器。
至于DSHOW编程,只能按照文档,找点资料,慢慢搞了。
加载更多回复(5)

19,468

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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