搜索 社区服务 统计排行 帮助
  • 1677阅读
  • 8回复

[求助]求一个Directshow滤镜,能导入winamp的输入dll

楼层直达
级别: 侠客
注册时间:
2002-06-29
在线时间:
0小时
发帖:
718
[求助]求一个Directshow滤镜,能导入winamp的输入dll
相信大家对dirctshow体系已经十分熟悉了。大部分的播放器都是建立在此基础上。但是在处理音频上,winamp和他众多的dll型插件还是很有优势。
现在有一些方法把两者结合起来。最常用的是通过ffdshow.这本来是个不错的视频Dshow滤镜,现在它的音频滤镜可以支持winamp的DSP插件。任何一个普通播放器调用ffdshow解音频的时候就可以调用winamp的DSP插件。
从winamp出发也行,现在发行的零售版winamp自带的direct解码器能够把指定扩展名的文件直接交给系统注册表中的Dshow滤镜处理。而后把解码后的视频用它自带的输出滤镜渲染的同时,解码出来的PCM音频交给winamp自己参数设置中的插件——DSP和输出dll来处理。
这种方法比起用ffdshow多出来可以用out插件的部分。
还有一种就是用KMplayer。千万不要被它的内置界面所迷惑,虽然很像winamp,但是它是基于dshow系统的。
它支持的是winamp的输入和DSP插件和音频可视化插件。虽然这两个在KMP的设定处是在一个目录下的,但是KMP是用两种完完全全不同的方法来实现的。
先讲输入插件,如果放在dShow系统也就是音频解码器,所以KMP如果要将他转移的话怎么也得在解码滤镜里头吧??结果。KMP把它放在第一级的源滤镜!直接用winamp插件当源滤镜和分离滤镜和解码滤镜,一物三用。直接导致的是混杂视频文件中的音频流不能使用winamp的输入插件来解码!
因为我们都知道winamp体系不像dshow系统,有分离系统,可以把一个多媒体文件分成什么视频流、音频流、字幕流等N股流,然后单个处理后同时输出,可调节性非常强!
而winamp从一开始就定位在音频播放器,整个文件处理流程就是一条直线:输入——DSP——输出。而且每个处理部分只能处理一个插件。比如你有N个可以解码MP3的输入插件,并且同时启用着,它只会光顾按照由上至下的排列第一顺位的解码插件,并且解码出来后直接进入DSP后处理,再到输出插件。而不会把解码出的PCM或者用有分离功能的in插件分离出的mp3在输入部分再次处理。所以唯一的依靠是基于DSHow的播放器了。
而现在把winamp输入插件当源滤镜根本不能实现分离。 也就是说根本没有办法在播放视频电影时使用winamp的音频in插件来处理,只有依靠有dshow 的设计高手做一个容器了。这个容器本身是Direct的音频解码滤镜,而不是源滤镜和分离滤镜(因为电影格式纷繁复杂,必须有相应的专业滤镜来分离,不可替代的),而后可以用户指定载入的winamp输入插件(dll格式)来实现核心的解码功能。就像ffdshow一样,只是不止支持DSP插件,而是希望支持IN插件。
请高手出马,谢谢。
刚才发错了。发到了字幕区[/KH]

是叉叉^o^.
级别: 侠客
注册时间:
2002-06-29
在线时间:
0小时
发帖:
718
只看该作者 8楼 发表于: 2008-10-25
引用
最初由 roozhou 发布

明确告诉你,winamp里的解码器都是源滤镜,没有input pin;带input pin的都是dsp。偏爱winamp的解码器?说说理由吧。如果没有必要的原因没人会为你奇怪的爱好花时间的。


谢谢你!!
那就算了。本来就没有抱什么希望的。只是希望如果已经有人做过这个的话可以告诉我。还有KMP中的确有用做解码的dll,比如libmad.dll和libDTS.dll等,可以通过他的内置音频解码滤镜而非源滤镜调用。

是叉叉^o^.
级别: 精灵王
注册时间:
2008-04-08
在线时间:
44小时
发帖:
2855
只看该作者 7楼 发表于: 2008-10-24
引用
最初由 manyou013 发布


bass库就是bass_winamp吗?
那么这和我说的有什么关系?怎么利用bass实现我说的滤镜功能?
在KMP中的确内置了许多bass的dll,但是大部分是源滤镜,一部分是只有自己的KMP audio codec才能调用的。仿佛都跟我说的功能不符

小弟真的才疏学浅,请高手指教啊

明确告诉你,winamp里的解码器都是源滤镜,没有input pin;带input pin的都是dsp。偏爱winamp的解码器?说说理由吧。如果没有必要的原因没人会为你奇怪的爱好花时间的。
级别: 侠客
注册时间:
2002-06-29
在线时间:
0小时
发帖:
718
只看该作者 6楼 发表于: 2008-10-24
引用
最初由 roozhou 发布
楼上连bass库都不知道吗


bass库就是bass_winamp吗?
那么这和我说的有什么关系?怎么利用bass实现我说的滤镜功能?
在KMP中的确内置了许多bass的dll,但是大部分是源滤镜,一部分是只有自己的KMP audio codec才能调用的。仿佛都跟我说的功能不符

小弟真的才疏学浅,请高手指教啊

是叉叉^o^.
级别: 侠客
注册时间:
2002-06-29
在线时间:
0小时
发帖:
718
只看该作者 5楼 发表于: 2008-10-24
引用
最初由 roozhou 发布
我不知道这么做有什么意义,举个有实际意义的例子吧。

我觉得必须是这样的情况才有用:某xxx编码的音频封装在yyy容器中,dshow有yyy的分离器但没有xxx的解码器,winamp某插件zzz可以解码xxx但不能分离yyy。这样的东西存在吗?就算存在,我又怎么去把zzz里解码的部分找出来?要知道zzz本身看做一个黑盒,进去的不是xxx的frame而是封装好的数据流,出来的是pcm。


没错。就是这样的情况,但是不是没有dshow下xxx的解码器,只是可能我更偏爱winamp的解码器。你的考虑完全是放在能不能播放上的,dshow应对能不能播放的问题当然比winamp完美地多。但我是在可以播放的前提上得到更多不同的体验。

是叉叉^o^.
级别: 精灵王
注册时间:
2008-04-08
在线时间:
44小时
发帖:
2855
只看该作者 4楼 发表于: 2008-10-23
楼上连bass库都不知道吗
级别: 侠客
注册时间:
2002-06-29
在线时间:
0小时
发帖:
718
只看该作者 3楼 发表于: 2008-10-23
引用
最初由 roytam1 发布
DCBassSource + bass_winamp


DCBassSource是一个音频源滤镜,bass_winamp 是什么?
您能说的详细点吗?
谢谢

是叉叉^o^.
级别: 圣骑士
注册时间:
2003-04-13
在线时间:
21小时
发帖:
1669
只看该作者 2楼 发表于: 2008-10-23
DCBassSource + bass_winamp

有事請pm我!   我的廢棄日記 ← 請多多光臨! <(_ _)>

----------------------

-E-D-2-K-----歡-迎-加-為-好-友-!-------
[KOR][TLF][eDtoon][CHN]rt87
[eDtoon][popgo][dmhy][TLF][CHN][KOR][ARC]roytam1
------------------------------
我的Winamp正在播放的歌曲:
级别: 精灵王
注册时间:
2008-04-08
在线时间:
44小时
发帖:
2855
只看该作者 1楼 发表于: 2008-10-22
我不知道这么做有什么意义,举个有实际意义的例子吧。

我觉得必须是这样的情况才有用:某xxx编码的音频封装在yyy容器中,dshow有yyy的分离器但没有xxx的解码器,winamp某插件zzz可以解码xxx但不能分离yyy。这样的东西存在吗?就算存在,我又怎么去把zzz里解码的部分找出来?要知道zzz本身看做一个黑盒,进去的不是xxx的frame而是封装好的数据流,出来的是pcm。
快速回复

限150 字节
上一个 下一个