『漫游』酷论坛>『影音数码技术学习交流』>[已解决!!][请教]使 ..
[已解决!!][请教]使用置顶的Direct264的一些问题
upyzl@2010-04-19 20:41
1. 为什么压制的时候会出现can't render?
2.为什么压制完成不能生成ww_encoded.mp4?
3.不能内嵌字幕(恐怕是第2个问题造成的)
以下*.bat全文(借助direct264gui100219b,把最后一行的删除tmp文件取消了)
引用
cd D:\Program Files\Direct264\bin\
reg add "HKEY_CURRENT_USER\Software\GNU\ffdshow" /v "rawv" /t "REG_DWORD" /d "0" /f
reg add "HKEY_CURRENT_USER\Software\GNU\ffdshow\default" /v "isResize" /t "REG_DWORD" /d "0" /f
reg add "HKEY_CURRENT_USER\Software\GNU\ffdshow\default" /v "isCropNzoom" /t "REG_DWORD" /d "0" /f
reg add "HKEY_CURRENT_USER\Software\GNU\ffdshow\default" /v "isDScaler" /t "REG_DWORD" /d "0" /f
x264.exe --versioninfo --pass 1 --crf 20 --profile high --preset slow --tune animation --deldup 12:0.8:400: --swapuv --stats "E:\ww_encoded.stats" --sub "E:\w_Track3.ass" --output NUL "E:\ww.mkv"
x264.exe --versioninfo --pass 2 --bitrate 750 --profile high --preset slow --tune animation --deldup 12:0.8:400: --swapuv --stats "E:\ww_encoded.stats" --sub "E:\w_Track3.ass" --output "E:\ww_tmp.mp4" "E:\ww.mkv"
reg add "HKEY_CURRENT_USER\Software\GNU\ffdshow_audio" /v "rawa" /t "REG_DWORD" /d "0" /f
reg add "HKEY_CURRENT_USER\Software\GNU\ffdshow_audio\default" /v "isVolume" /t "REG_DWORD" /d "0" /f
reg add "HKEY_CURRENT_USER\Software\GNU\ffdshow_audio\default" /v "volNormalize" /t "REG_DWORD" /d "0" /f
reg add "HKEY_CURRENT_USER\Software\GNU\ffdshow_audio\default" /v "ismixer" /t "REG_DWORD" /d "0" /f
reg add "HKEY_CURRENT_USER\Software\GNU\ffdshow_audio\default" /v "mixerOut" /t "REG_DWORD" /d "16" /f
ffmpeg -i "E:\ww_tmp.mp4" -vcodec copy -sn -vbsf h264_changesps=vfr -i "E:\ww.mkv" -acodec copy -y "E:\ww_encoded.mp4"
roozhou@2010-04-19 22:13
你确定mkv分离器装上了?dshow方式打开失败,于是使用lavf方式打开。
upyzl@2010-04-19 22:27
嗯
我装了完美解码
MKV分离器选择的是Haali
改Gabest?
还是说要在x264的那个目录放些什么dll文件?
roozhou@2010-04-19 22:50
dump.ax放了吗?
upyzl@2010-04-19 23:02
同目录下有这个文件
另外补充一下相关信息
原视频可以用MPC正常播放(含字幕)
待压制的ww.mkv仅有视频流(AVC)和音频流(AAC)
我用mmg把内封的字幕轨的勾去掉重新remux了(之前用megui习惯了)
主要是看direct264确实有些很好的特性,同时也是想学学用命令行裸压视频,所以想多会些东西
upyzl@2010-04-19 23:11
全部文件
roozhou@2010-04-19 23:12
不要用mpc-hc试,要用c:\program files\windows media player\mplayer2.exe试
如果要压内封字幕需要开启DirectVobSub
upyzl@2010-04-19 23:18
我晕
win7的那个路径下没有mplayer2.exe
考虑到压制内封字幕会比较麻烦
所以事先把ass字幕提取出来
input的视频则是无字幕的
这样应该不需用到DirectVobSub了吧?
另外如果要开启的话
应该怎么弄?
roozhou@2010-04-19 23:43
原来是win7啊,那还是去找个graphedit试吧。建议直接用命令行压,如果出错的话你可以看见错误代码,这样比较好判断原因。那个GUI还是有很多问题的。
另外--swapuv这个参数在dshow模式下完全无效,不知道怎么会加上的。
upyzl@2010-04-20 10:39
真的很不好意思,需要再次麻烦
自己只用过graphedit把wmv再封装成mkv
这里应该怎么试?直接播放mkv?
还有自己用GUI是为了导出bat
应该跟直接用命令行压是差不多的了吧?(命令行压是指直接从cmd里用参数吗?)
error code = 7是不是错误代码?(自己不知道什么意思……)
说实话如果不是roo兄你说到MKV分离器的问题,我真一点都不清楚
但分离器改为Gabest
问题是一样的
完美解码的设置每改一次,都会有注册相关的提示,我想这应该是写进注册表了的……
linuxyouxia@2010-04-20 10:45
Win7可以装win7codec之类的解码包
里面有禁用系统解码器之类的选项
roozhou@2010-04-20 11:36
error code = 7的应该是解码器不支持YV12输出。
请禁用系统的解码器,使用ffdshow并且在output中勾选YV12
younghuie@2010-04-20 12:23
我用win7 用的还比较上手 你要么用grf的办法 指定解码器 实际上为了方便我还都是这么操作的
http://forum.doom9.org/showthread.php?t=146910
这个工具可以吧系统自带的ms的解码器禁用
建议不要使用那个gui 用命令行比较方便
direct264有好多注意的地方,比如目录名和文件名不要太长。还可以用coreavc输出raw到ffdshow。
经测试。如果分辨率比较小的情况,比如把1080p压到480p,1stpass的时候coreavc不开cuda,fps能在60左右。开了cuda反而不超过30fps,估计哪个环节有瓶颈。
2ndpass建议开启cuda,subme用7的话,速度也是比较可观的,但好像就没超过30fps过,subme用10的话,速度还是比较慢的。
比较麻烦的一个事情是不能列队,因为我没用注册表去改ffdshow的一些设置,只能压一个片改一下设置。
安装一些解码器的时候也有点小讲究,尽量在你用来压片的windows用户名下安装。我用终极解码的,有时候改ffdshow设置比较麻烦。我搞了个批处理,你把下面的内容保存为bat文件,放在桌面,运行即可:
video.bat内容如下:
@echo off
cd C:\Program Files (x86)\Final Codecs\Codecs
C:\Windows\SysWOW64\rundll32.exe ffdshow.ax,configure
audio.bat内容如下:
@echo off
cd C:\Program Files (x86)\Final Codecs\Codecs
C:\Windows\SysWOW64\rundll32.exe ffdshow.ax,configureAudio
顺便送一个比较简单的批处理,至于exe文件的目录自己改,下面我1stpass不开coreavc的cuda,2ndpass打开cuda,1stpass得到2ndpass的Bitrate,当然你也可以指定。
@echo off
set ref=5
set filmname=thl.grf
set outputvideoname=The.Hurt.Locker.2008.Blu-ray.720p.x264.AAC.VFR-xxx
::color 3
mode con cols=145 lines=37
title USing direct264 commandline !!
echo.
set /p cq=Please Type in 1stpass 'Const.Quantizer' value :
rem 这里coreavc.ini从哪里来的,你可以先终极解码中设置不开硬解,然后把那文件拷贝出来,然后再设置开硬解再拷贝出来得到两个文件。
del C:\Users\jennie\AppData\Roaming\coreavc.ini
copy %~dp0encoder\cudano\coreavc.ini C:\Users\jennie\AppData\Roaming\
echo.
rem encoder是个文件夹名,我自己为了方便设置的,你大可不必。
%~dp0encoder\direct264\x264.exe --version
echo.
echo USING AUTOMATED -----= 1st CRF+2nd BITRATE =----- MODE !!
echo.
echo [ %date%%time% ] ENCODING CRF 1stPASS ......
@echo on
%~dp0encoder\direct264\x264.exe --versioninfo --preset slow --pass 1 --crf %cq% --profile high --level 4.1 --stats "%filmname%.stats" --thread-input --deblock -3:-3 --min-keyint 2 --scenecut 60 --bframes 3 --b-adapt 2 --b-pyramid strict --ref 1 --vbv-bufsize 50000 --vbv-maxrate 50000 --rc-lookahead 72 --aq-mode 2 --aq-strength 1.0 --merange 16 --me dia --subme 2 --partitions none --no-8x8dct --trellis 0 --direct spatial --no-dct-decimate --no-fast-pskip --qcomp 0.7 --ipratio 1.2 --weightp 2 --psnr --ssim --output NUL "%filmname%" 2>--------------------------------1stpass.txt
@echo off
for /f "tokens=7 delims=. " %%a in ('findstr encoded "1stpass.txt"') DO set bit=%%a
echo.
echo [ %date%%time% ] ENCODING BITRATE 2ndPASS ......
del C:\Users\jennie\AppData\Roaming\coreavc.ini
copy %~dp0encoder\cudayes\coreavc.ini C:\Users\jennie\AppData\Roaming\
@echo on
%~dp0encoder\direct264\x264.exe --versioninfo --preset slow --pass 2 --bitrate %bit% --profile high --level 4.1 --stats "%filmname%.stats" --thread-input --deblock -3:-3 --min-keyint 2 --scenecut 0 --bframes 3 --b-adapt 2 --b-pyramid strict --ref %ref% --vbv-bufsize 50000 --vbv-maxrate 50000 --rc-lookahead 72 --aq-mode 2 --aq-strength 1.0 --merange 32 --me umh --subme 10 --partitions p8x8,b8x8,i4x4,i8x8 --trellis 2 --direct spatial --psy-rd 1.00:0.10 --no-dct-decimate --no-fast-pskip --qcomp 0.7 --ipratio 1.2 --weightp 2 --psnr --ssim --output "%filmname%.mkv" "%filmname%" 2>--------------------------------2ndpass.txt
@echo off
goto :CONVERTAUDIO
:CONVERTAUDIO
echo.
echo [ %date%%time% ] Convert %filmname% To AAC 2ch 192 kbps
echo.
@echo on
%~dp0encoder\direct264\CTAACEncoder.exe -d -aid 0 -m 2 -c 2 -b 192000 -o "%filmname%.mp4" "%filmname%"
@echo off
goto :MUXER
:MUXER
echo.
echo [ %date%%time% ] Muxing MKV File ......
@echo on
%~dp0encoder\direct264\ffmpeg -i "%filmname%.mkv" -vcodec copy -sn -i "%filmname%.mp4" -acodec copy -y "%outputvideoname%.mkv" 2>--------------------------------ffmpeg.txt
@echo off
goto :END
:END
@echo off
::del "%filmname%.mkv"
::del "%filmname%.mp4"
echo.
echo Done !! Press ANY KEY to EXIT !
pause>nul
exit
抛砖引玉,参数随便糊弄的,只有更好,没有最好。你大可直接使用preset。
upyzl@2010-04-20 12:29
dshow render问题终于搞定了!!!
装了win7codecs后禁用系统解码器就可以了
但ass还是不能正确内嵌
意思就是
比如我这个例子vfr时间轴和相对位置都对了
但字体严重变形(不是宋体,我从来没见过那个字体……字号也特大………………)
命令行我就这么写了
引用
x264.exe --versioninfo --pass 1 --crf 20 --profile high --preset slow --tune animation --deldup 12:0.8:400: --stats "E:\ww_encoded.stats" --sub "E:\w_Track3.ass" --output NUL "E:\ww.mkv"
x264.exe --versioninfo --pass 2 --bitrate 750 --profile high --preset slow --tune animation --deldup 12:0.8:400: --stats "E:\ww_encoded.stats" --sub "E:\w_Track3.ass" --output "E:\ww_tmp.mp4" "E:\ww.mkv"
ffmpeg -i "E:\ww_tmp.mp4" -vcodec copy -sn -vbsf h264_changesps=vfr -i "E:\ww.mkv" -acodec copy -y "E:\ww_encoded.mp4"
younghuie@2010-04-20 12:31
恭喜搞定了 呵呵 内嵌字幕没测试过 呵呵
«123»共3页
| TOP