首页 > 软件&技术 > 纯手工搭建基于MPC-HC的简易播放平台

纯手工搭建基于MPC-HC的简易播放平台

2009年9月5日 VempX 4,307次阅读 发表评论 阅读评论

现在有很多解码用的Package,比如完美解码。这种Package对于懒人真的是很方便,装一个基本上就万事无忧了。不过有些情况下我们需要自己手动搭建而不是使用这种Package,比如压制人员。

很多朋友曾经问过我,如果要手动搭建该怎么做。说实话,现在的几款主流播放器,自己都内置了很多滤镜,基本做到了不需要安装任何解码器就能通吃所有格式了。不过这篇文并非完全使用MPC-HC的内部滤镜,而是和安装第三方系统滤镜相结合。

本文仅针对需要手动搭建播放平台的解码用户,不考虑编码情况。

 

准备工作

主播放器:

Media Player Classic – Homecinema 1.3.1249
http://mpc-hc.sourceforge.net

视频滤镜:

Haali Media Splitter 1.9.42.1
http://www.free-codecs.com/download/Haali_Matroska_Splitter.htm
FFDShow
http://sourceforge.net/projects/ffdshow-tryout/files/
Real Alternative 1.90 Lite
http://www.free-codecs.com/download/Real_Alternative.htm

音频滤镜:

AC3Filter 1.63b
http://www.free-codecs.com/download/AC3_Filter.htm
CoreAAC 1.2.0.575 rev.3
http://www.free-codecs.com/download/CoreAAC_Directshow_filter.htm
CoreFLAC 0.4
http://www.free-codecs.com/download/CoreFLAC_Decoder_Encoder.htm
CoreVorbis 1.1.0.79
http://www.free-codecs.com/download/CoreVorbis.htm

其他工具:

AVISynth 2.5.8
http://www.free-codecs.com/download/AviSynth.htm
DirectVobSub(VSFilter)2.39
http://www.codecs.com/download/DirectVobSub.htm

 

方案

[分离器]:使用Haali分离MP4 MKV OGM,使用系统分离器分离MPG AVI。
[解码器]:软解 视频编码主要依靠ffdshow进行解码。硬解 H264 VC-1使用MPC-HC内置DXVA解码器。

 

安装

*首先确保系统内比较干净,如果装了其他Package和解码器请先全部卸载。没有特别说明均安装在默认路径。

1、安装AVISynth 2.5.8,一路Next即可。

2、安装Haali Media Splitter。设置如下图。(*1)

haali

3、安装FFDShow。设置如下图。一路下一步。

ffdshow

4、安装Real Alternative 1.90 Lite,一路Next即可。

5、安装上述所有音频滤镜和VobSub,均为一路Next。

6、安装MPC-HC(压缩版请解压),由于MPC-HC本身算是绿色软件,所以可以放到其他位置。

 

设置

1、配置MPC。
运行mpc-hc,选择菜单的View –> Language –> Chinese (simplified)把界面语言调节到简体中文
视图菜单 –> 选项
[播放器]:勾上右侧的在.ini中保存设置,这样所有的设置会保存在ini里,就算重装系统也不会丢失。
[格式]:单击右下方的Video按钮,关联所有视频文件。
[播放]:勾上自动装载字幕。
[输出]:DirectShow视频,XP/2003用户请选择VMR9(未渲染),Vista/Win7用户请选择EVR自定义设置。RealMedia视频和QuickTime视频都选择DirectX 9。VMR7/9(未渲染)与EVR CP设置中,表面选择3D surfaces,重设尺寸选择Bicubic A=-0.60 (PS 2.0)。
[内部滤镜]:源滤镜里只选择DVD Video Title Set与MPEG PS/TS/PVA。转换滤镜中选择LPCM。(*2)
[字幕]:要缓冲的子图像数量输入0,最大纹理分辨率选择Desktop。
[默认风格]:相对于视频帧的字幕位置前面打成对勾。
确定之后重启MPC,右键单击主界面,在右键菜单里选择渲染器设置 –> 重置 –> 优化值。Vista/Win7用户还需要去掉 渲染器设置 –> 展示 –> 禁止桌面混合 前的勾,否则播放视频的时候会关闭Aero效果。
右键菜单 –> 着色器 –> YV12 Chroma Upsampling,如果选项是灰色的话,就在播放视频的时候设置。

2、配置FFDShow
找到开始菜单内的FFDShow组,打开ffdshow 视频解码器设置。
[编码解码器]:这里面是选择让ffshow解码什么格式的地方。绝大部分保持默认即可,需要调整的如下。H.264/AVC用ffmpeg-mt,MPEG1和MPEG2用libmpeg2,MPEG2把下方的DVD解码勾上。WMV 1/7 2/8 3/9 VC-1都用wmv。
[DirectShow控制]:右面总共有三个勾,都勾上。(*3)
[输出]:勾上NV12。勾上HW反交错。(*4)
打开开始菜单内的ffdshow 音频解码器设置。
[编码解码器]:这里除了AVIS用AviSynth之外,其他通通选择未启用,我们不用ffdshow来做音频解码。

3、配置AC3Filter
在开始菜单内找到AC3Filter组,打开AC3Filter Config,会出现一个Warning,确定即可。
[System标签]:左侧只勾AC3 DTS DVD。

 

到此为止,基本上大功告成。以上只是软解方案,如果想使用硬解的话,就把ffdshow里的H264与VC1设置为未启用,然后打开MPC-HC内部的这两个滤镜DXVA版即可。

本文只是起一个抛砖引玉的作用,并不是说按照本文设置之后就能够顺利的播放所有格式。比如蓝光Remux中可能有EAC3或者TrueHD音轨,按照本文的设置,是无法播放这些次世代高清音频格式的。本文的主要目的是告诉大家一个自己手动搭建的方法,根据自己的需要寻找合适的解码器,选择合适的解码方案。

本文大部分为我本人的经验之谈,如果有错误请指正。

 

*1 这样设置,即不使用Haali分离MPG和AVI。我的个人经验,很多游戏的动画是用MPG封装的,如果在这里选了MPEG,那么系统默认MPG的分离器为Haali,很大几率会造成不兼容的问题。具体表现是游戏的OP播不了,或者播放出错之类的,所以不建议用Haali分离MPG,AVI同理。

*2 Haali的分离器无法分离m2ts文件内的LPCM音频,而MPC内建的则可以,所以源滤镜里要选上MPEG,并且转换滤镜里勾上LPCM。

*3  FFDShow内建了一批支持正常调用ffdshow做解码的程序名字。默认情况下,ffdshow看到如果是这些程序调用自己,就会通过。把所有的勾都勾上之后的效果,是当有ffdshow不认识的程序要调用自己的时候,ffdshow会弹出提示框让用户选择是否使用ffdshow。有些游戏在播放动画的时候,用ffdshow解码会出错,所以在玩游戏的时候弹出ffdshow请尽量选择永远不使用。

*4  GeForce8系列及以上和HD 2XXX系列及以上提供了一套硬件Deinterlace算法,品质是现有的算法所无法比拟的,通过这样设置,当在播放Pure interlaced视频的时候,就能够开启硬件反交错。

分类: 软件&技术 标签: , , ,
  1. Andrew
    2010年2月10日00:30 | #1

    这几天把我折腾够戗,我受不了了,还是按照您的这个方案装了,期间出了一点小问题,ffdshow里有一个ffdshow、DScaler的路径,居然还指向的以前K-lite中自带的ffdshow文件夹路径,可我早已经把它卸载了。
    现在一切良好,没有任何问题,反应速度快,没有未响应的情况出现了。播放那个1080P的变形金刚,视频方面就是开头花屏1、2秒,之后一切正常(不过由于机器配置,还是有些正常的“慢动作”感,这就没办法了)。音频就比较郁闷了,用ffdshow或ac3 Filter,都是放几秒之后,就没声了,过一会儿又响几声,来回这样(我又郁闷了,之前可是音频不卡视频卡,现在反过来了……),不过这样我也满意,反正我也很少下这种几十G的1080P……
    另外还有两个问题:
    1、播放这个Transformers.HDDVD.REMUX.1080P.H264.DDPlus.DD51-SiLU.disk6.ts时,调用的好像是MPC Video Decoder(是不是MPC内部滤镜?)我可都是按照你的步骤一步一步来的,这样正确么?难道不是调用ffdshow么?
    2、在 [内部滤镜]:源滤镜里只选择DVD Video Title Set与MPEG PS/TS/PVA。转换滤镜中选择LPCM。 这一步中,转换滤镜那里是 只选择LPCM,还是 保持默认并且把LPCM也勾上(默认就是勾着的)?
    我在按照默认设置情况下(转换滤镜中AC3是选中的,还有好多其它的,看不懂),在外面改ffdshow或ac3 filter都会没反应,MPC-HC仍然调用MPC自带的那个去解AC3。。。我就把转换滤镜中的AC3去掉了,才正常。所以麻烦您大概解释一下这个源滤镜和转换滤镜的意思。

    感谢感谢,真的很感谢,这两天真的很麻烦您了。

  2. Andrew
    2010年2月10日00:36 | #2

    对了,还有字幕问题,现在全屏时,字幕很清晰,就是有点小,以前用K-lite时,全屏后字幕会自动变大,还原后字幕也会自动变小,而且比例很舒服,请问这个要怎样设置?

  3. 2010年2月10日00:42 | #3

    MPC Video Decoder是mpc-hc的内部滤镜,mpc-hc内部滤镜的优先级默认情况下是最高的,如果勾了它mpc-hc就会优先用它。

    源滤镜你可以把它理解为分离器,转换滤镜你可以理解为解码器。我推荐你把mpc-hc里面那几个内置的音频解码器都勾上就行了,省的麻烦。

    字幕问题的话,你去mpc-hc设置里的字幕项,把右边的最大纹理分辨率改成desktop,然后默认风格项里调整一下右上角的相对于视频帧的字幕位置,看看变化,找找满意的效果~

  4. Andrew
    2010年2月10日00:46 | #4

    呃,终究还是有状况出现。
    播放[FFSKY][FF13_THE_MOVIE][EP01][X264_720P_AAC].mp4时,音频也是停一会儿放一会儿。。。用MPC自带的和CoreAAC放都是一样。。。

    [迈克尔·杰克逊:就是这样].This.Is.It.2009.720p.BluRay.x264.DTS-WiKi.mkv,音频也有停顿。

    [雪盲].Whiteout.BDRip.480P.x264.AC3-CHD.mkv 一切正常

    唉,标准稍微高一些,就会出现问题,看来我的机器太老了。

  5. 2010年2月10日09:59 | #5

    你的这个状况还真是诡异
    不过播放有问题无外乎分离器 解码器的原因,虽然也可能是渲染器但是几率比较小
    你还是尝试着更换一下解码方式的组合来看看效果吧

  6. Andrew
    2010年2月10日10:17 | #6

    我没办法了,几个720P的高码率的片子(1080的就不说了),都是画面正常(有些画面有点跳),但是声音(AAC和AC3的)不同步,而且时断时续,解码器MPC内置的、ffdshow、ac3 filter、CoreAAC都试过了,效果一样。但如果用WMP播放这些片子,就什么问题都没有。而且我以前是KMP+Real Alternative,方这些片子也没事。唉。。。

  7. Andrew
    2010年2月10日22:27 | #7

    终究……我还是一个菜鸟……我把所有解码器都卸了,打算安装暴风影音,就算赌一把。。。忽然想起KMP作者的新作,PotPlayer……装上试了一下,唉,真的,我都想去献血了。。。声音、画面、字幕,完美了。。。除了程序自身的BUG(还处于BETA阶段),其它都没得说。所有滤镜都是用的它内置的。改天我再补习补习,研究一下,这到底是为什么……(貌似有种做广告的嫌疑 :2:

  8. 匿名
    2010年2月19日18:55 | #8

    输出NV12直接显卡硬解就应该可以了,不需要ffdshow软解吧?
    YV12 Chroma Upsampling一定要选上,他的质量有人对比过和madvr不相上下。
    可惜NV12从A卡输出luma conversion会产生色块(因为没有dither关系),所以偶用ffdshow直接输出rgb32然后高质量rgb转换+dither。其实最佳方法应该是显卡不做任何色阶伸张或压缩,直接输出0-255 (0-16黑235-255保留高光),然后由电视clip

  9. 匿名
    2010年2月20日14:38 | #9

    MPCHC+K-Lites基本够用了 :7:

  10. Andrew
    2010年2月28日22:02 | #10

    过年好,十五好!
    好久不来了,今天又遇到个问题,我在用PotPlayer或MPC-HC播放MPG格式的文件时,会自动快放,改用WMP就没事,这是咋回事……

  11. 匿名
    2010年3月15日13:39 | #11

    @Andrew
    偶到感觉不是播放器的原因 播放器终究只是个外壳 播放还得调用解码器
    potplay也不是说得那么好
    缺陷还是很多 最主要的是作者最关注的是pot的聊天功能 毕竟是主打 :3:

  12. 匿名
    2010年3月15日13:43 | #12

    为什么不直接用ffdshow音频解码呢?
    感觉除了ac3 其他的音频插件直接用ffdshow替代还简单点 呵呵 :9:

  13. 匿名
    2010年3月15日17:43 | #13

    另外问下朋友mpchc升级直接覆盖就好了吧?

    还有就是那个配置文件会被覆盖掉么? :16:

  14. 匿名
    2010年3月18日11:09 | #14

    @匿名
    直接覆盖就好了,INI文件不会被覆盖.. :7:

  15. 匿名
    2010年3月25日15:17 | #15

    win7 下,用 mpc-hc,渲染器和 h264 解码器(ffdshow->ffmpeg-mt)使用您文中的设置,播放 h264 编码的片子,颜色总是不对,黑色不是纯黑,我不想使用任何着色器,能不能设置做到纯黑?

  16. wtyrambo
    2010年3月29日21:09 | #16

    @匿名

    驱动里设置YC扩张

  17. Anaheim
    2010年5月10日13:10 | #17

    奇怪,最近更新了FFD后,播放时打开的MPC总是FFD自带的那个精简版本……
    用自己装的MPC关联文件后第1次打开文件没问题,再开文件就又换回FFD自带的MPC了

  18. 2010年5月10日13:12 | #18

    ffdshow什么时候自带过mpc了

  19. Anaheim
    2010年5月10日13:23 | #19

    开始以为是FFD的,结果看了下是REAL的,于是把自己装的MPC整个都移过去替换它自带的MPC了……
    不知为何好好的就自己关联到它自带的MPC去了

  20. Anaheim
    2010年6月21日23:19 | #20

    发现个新问题,换装了X64的FFD后发现AVI播不了了……
    不管是XIVD还是未编码的RGB都播不了,然后去设置XVID时发现控件丢失,囧rz啊
    不知为何会丢失,我先换回32位的FFD看看

评论分页
1 2 277
  1. 本文目前尚无任何 trackbacks 和 pingbacks.
:9: :8: :7: :6: :5: :4: :3: :2: :1: :18: :17: :16: :15: :14: :13: :12: :11: :10:

*
请输入图片中的字符以验证你并非垃圾机器人.
反垃圾图像