POPPUR爱换

 找回密码
 注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

搜索
查看: 14597|回复: 42
打印 上一主题 下一主题

解决mkv不能硬解码问题。

[复制链接]
跳转到指定楼层
1#
发表于 2007-8-29 07:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
已经找到完美方法了。有人需要教程吗?
2#
发表于 2007-8-29 07:15 | 只看该作者
我要哦:loveliness:
回复 支持 反对

使用道具 举报

3#
发表于 2007-8-29 07:34 | 只看该作者
想说就说,
不想说就不要说。
回复 支持 反对

使用道具 举报

4#
发表于 2007-8-29 07:36 | 只看该作者
要啊要啊,该死的mkv直接导致我滴珍珠港木有办法看w00t)
回复 支持 反对

使用道具 举报

5#
 楼主| 发表于 2007-8-29 07:44 | 只看该作者
其实方法很简单,就三步,就是把mkv封装的重新组装成avi封装的就能完美播放拉。  我试了几个都没问题。 直接用PD的h264解码器就能播放,不用kmp都可以,我用的k lite 播放器+windows2003系统。
回复 支持 反对

使用道具 举报

6#
 楼主| 发表于 2007-8-29 07:45 | 只看该作者
Step 1 Take your MKV file run it throught mkv2vfr (command line mkv2vfr name.mkv name.avi)

Step 2 Take the MKV file again and run through mkvguiextract (load the mkv file, and just extract the audio)

Step 3 Take the AVI file and the AC3 and run though avi-mux gui (output settings - AVI ; make rec lists ticked, mp3 and add junk off)
回复 支持 反对

使用道具 举报

7#
 楼主| 发表于 2007-8-29 07:48 | 只看该作者
这下我的老P4都能流程看1080的大片了,哈哈,还可以刻dvd5的盘。 现在网上4G左右的基本都是mkv的x264,真不明白为什么不封装成avi.弄的想硬解还要自己重新封装一下。
回复 支持 反对

使用道具 举报

8#
发表于 2007-8-29 08:35 | 只看该作者
4g左右的都是resize过的,不是1080p的.
用PC播放mkv根本不需要再转成avi.....:wacko:
MKV根本不是编码,硬不硬解也跟MKV没有关系
回复 支持 反对

使用道具 举报

9#
 楼主| 发表于 2007-8-29 08:40 | 只看该作者
ls误解了,目前90%的mkv 264都没法开起dxva硬解, 这个问题存在很久了。现在发现转换成avi封装的就可以用dxva硬解码。 mkv是可以用pc播放没问题,但是只能用软解码的。还有4G的也有1080p的,只不过是压缩率高点,不用dxva硬解的话 至少要肉双核才流畅。
回复 支持 反对

使用道具 举报

10#
发表于 2007-8-29 10:27 | 只看该作者
原帖由 iiovk 于 2007-8-29 08:40 发表
ls误解了,目前90%的mkv 264都没法开起dxva硬解, 这个问题存在很久了。现在发现转换成avi封装的就可以用dxva硬解码。 mkv是可以用pc播放没问题,但是只能用软解码的。还有4G的也有1080p的,只不过是压缩率高点 ...


我同事用OC的3600+X2 + 1G DDRII667+690G看4G左右的H2.64电影也很流畅啊,用的是终极解码,没觉得不流畅,至于是硬解还是软解就不知道了,另外4G左右的H2.64的电影到底是什么分辨率的啊?也是1080P的?为什么我看好多1080P的大片都是18-30的呢?
回复 支持 反对

使用道具 举报

11#
发表于 2007-8-29 10:35 | 只看该作者
首先感谢搂住提出的解决思路,基于这种方法可以对一部分为mkv封装困扰的用户提供一个变通的解决方案。

但是问题在于这个变通损失了mkv封装所拥有的很多特性。
比如:
MKV可以封装超过2条的音轨,AVI容器最多允许两条;
MKV可以通过附件方式,封装外挂字幕所需要的字体以及图形附件
MKV可以支持Chapter,适用于制作分段选单
极其重要的一点,MKV支持基于timecode的VFR解决方案。

这里说说VFR可变帧率的问题,mkv支持VFR,AVI只能支持CFR固定帧率
大多数常见的电影文件,比如绝大多数Silu出品的HD电影,并不需要去关心帧率的问题,他们大部分是固定的24.00/23.976/29.970等帧率。对于这一类的mkv文件,按照LZ的方法使用mkv2vfr来还原为AVI播放基本上没有什么问题。
但是如果本来是VFR的MKV文件会怎么样呢。我们得到的是一个CFR的AVI文件和一个timecode文本文件。这时如果我们直接播放或者封装这个AVI的话得到的只是一个时间错误的AVI文件。因为我们没有用上那个timecode.如果要用上这个timecode必须用相应的软件封装为120fps模式的AVI文件才能获得正确的时间。而事实上PowerDVD的H.264解码器正确识别120fps模式的AVI内的视频流,视频会按照每秒120帧的速度被播放,都会自动drop掉Null Frame。要是遇到由AutoVFR生成的很复杂的VFR文件,问题更加严重。

一般的用户可能电影占大多数,我这里却是数千集的动画片,其中很大一部分都应用了mkv的各种特性,不是AVI所能解决的。
所以LZ的处理方法对我来说意义不大。:lol:

[ 本帖最后由 notfishcc 于 2007-8-29 10:53 编辑 ]
回复 支持 反对

使用道具 举报

12#
发表于 2007-8-29 10:43 | 只看该作者
只要分离器选择正确,100%都可以直接DXVA,不需要demux。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

13#
发表于 2007-8-29 11:04 | 只看该作者
我不认为这是一个单纯的分离器的问题。
一个特别的现象,我使用x264编码器编码有两年多了
最早一批生成的mkv出现的现象是滤镜显示dxva生效的,但是画面闪动,只有声音没有图像。
中期编码制作的mkv在1024X576和640X480的这两个分辨率上有80%左右的机会可以正确实现dxva输出画面声音都正常。
近期编码的mkv各种超过720p的分辨率完全无法播放,声音都没有。小于720p的dxva会自动失效,但是画面声音正常。

由此我估计,x264编码的设置与编码器的版本还有分辨率都有可能能影响硬件加速的效果。
回复 支持 反对

使用道具 举报

14#
发表于 2007-8-29 11:15 | 只看该作者
4G……1080P?

:wacko:

基本上不算hd吧……
回复 支持 反对

使用道具 举报

15#
发表于 2007-8-29 11:22 | 只看该作者
原帖由 notfishcc 于 2007-8-29 11:04 发表
我不认为这是一个单纯的分离器的问题。
一个特别的现象,我使用x264编码器编码有两年多了
最早一批生成的mkv出现的现象是滤镜显示dxva生效的,但是画面闪动,只有声音没有图像。
中期编码制作的mkv在1024X57 ...


你用的是x264 cli还是x264 vfw?

我这里用cli,编码为1080p都完全没问题。


x264.exe --bitrate 3000 --ref 3 --bframes 3 --b-pyramid --b-rdo --bime --weightb --subme 6 --trellis 1 --analyse all --8x8dct --threads 2 --thread-input --progress --no-psnr --output "xxxx.mp4" "xxxx.avs"
.avs文件内容如下:
# Created with Gordian Knot
#
# http://gknot.doom9.org

# PLUGINS
LoadPlugin("C:PROGRA~1GORDIA~1DGMPGDecDGDecode.dll")
LoadPlugin("C:PROGRA~1GORDIA~1AviSynthPluginsdecomb.dll")
#LoadPlugin("C:PROGRA~1GORDIA~1AviSynthPluginsKernelDeInt.dll")
LoadPlugin("C:PROGRA~1GORDIA~1AviSynthPluginsUnDot.dll")
#LoadPlugin("C:PROGRA~1GORDIA~1AviSynthPluginsdgbob.dll")
#LoadPlugin("C:PROGRA~1GORDIA~1AviSynthPluginsConvolution3d.dll")
#LoadPlugin("C:PROGRA~1GORDIA~1AviSynthPluginsFluxSmooth.dll")
#LoadPlugin("C:PROGRA~1GORDIA~1AviSynthPluginsTomsMoComp.dll")
#LoadPlugin("C:PROGRA~1GORDIA~1AviSynthPluginsVSFilter.dll")
#LoadPlugin("C:PROGRA~1GORDIA~1AviSynthPluginsSimpleResize.dll")

# SOURCE
mpeg2source("xxxx.d2v")

# TRIM
#trim(startframe,endframe)

# IVTC
#Telecide(order=1,guide=1).Decimate()
# or use
#IVTC(44,11,95)
#GreedyHMA(1,0,4,0,0,0,0,0)

# DEINTERLACING (1)
FieldDeinterlace()
#FieldDeinterlace(blend=false)
#TomsMoComp(1,5,1)

# DEINTERLACING (2)
#KernelDeInt(order=1,sharp=true)
# or maybe
#DGBob(order=1,mode=0)

# DEINTERLACING (3) - special requests
#GreedyHMA(1,0,0,0,0,0,0,0)
#Telecide()
#SeparateFields()

# CROPPING
crop(0,0,1920,1080)

# SUBTITLES
#VobSub("FileName")

# RESIZING
LanczosResize(1920,1072)

# DENOISING: choose one combination (or none)
Undot()

# 1) little noise
#Temporalsoften(2,3,3,mode=2,scenechange=6)
#mergechroma(blur(1.3))
#FluxSmoothST(5,7)

# 2) medium noise
#Temporalsoften(3,5,5,mode=2,scenechange=10)
#Convolution3d("moviehq")
#FluxSmoothST(7,7)

# 3) heavy noise
#Temporalsoften(4,8,8,mode=2,scenechange=10)
#Convolution3d("movielq")
#FluxSmoothST(10,15)

# BORDERS
#AddBorders(left,top,right,bottom)

# COMPRESSIBILITY CHECK
# !!!!Snip Size now has to be 14 for use in GKnot!
#SelectRangeEvery(280,14)

# FOOL CCEnc
#empty = BlankClip()
#AudioDub(last,empty)
回复 支持 反对

使用道具 举报

16#
发表于 2007-8-29 11:22 | 只看该作者
……说真的,我还没见过MKV封装导致不能DXVA的……
回复 支持 反对

使用道具 举报

17#
发表于 2007-8-29 11:23 | 只看该作者
请教mkv文件播放时如何加载音轨。
回复 支持 反对

使用道具 举报

18#
 楼主| 发表于 2007-8-29 11:24 | 只看该作者
终于知道为什么不能dxva了,问题都出在字幕上。 转换成avi封装的不带字幕就能dxva,外挂了字幕就不行了,mkv都是内侄强制字幕的,怪不得不能dxva .
回复 支持 反对

使用道具 举报

19#
发表于 2007-8-29 11:26 | 只看该作者
原帖由 iiovk 于 2007-8-29 11:24 发表
终于知道为什么不能dxva了,问题都出在字幕上。 转换成avi封装的不带字幕就能dxva,外挂了字幕就不行了,mkv都是内侄强制字幕的,怪不得不能dxva .

内置强制字幕是什么意思……
回复 支持 反对

使用道具 举报

20#
发表于 2007-8-29 11:28 | 只看该作者
我的也是cli

--pass 2 --bitrate 850 --stats ".stats" --ref 16 --mixed-refs --no-fast-pskip --bframes 3 --b-pyramid --b-rdo --bime --weightb --direct auto --filter 1,1 --subme 7 --trellis 2 --analyse all  --8x8dct --vbv-maxrate 60000 --me umh --threads 4 --thread-input --progress --no-psnr --no-ssim --output "D:DVDripS_20.mkv" "D:DVDripS_20.avs"
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

广告投放或合作|网站地图|处罚通告|

GMT+8, 2024-11-2 20:22

Powered by Discuz! X3.4

© 2001-2017 POPPUR.

快速回复 返回顶部 返回列表