2012-01-30 6:59
以前帮某群写的模板,自动在原文件下用建立"原文件名autoPSPEncodeTemp"并放置自动生成的avs、m4a、mp4等零时文件,编码完了的文件名是"源文件名-muxed.mp4",与源文件同目录,零时文件自动删除。自动载入源文件名同名的字幕,优先级是ass>ssa>srt>idx。用法就是直接把视频文件拖放到这个autoPSPenc.bat上就行了,没有需要手写的东西。
[syntax lang="winbatch" lines="f" filename="autoPSPenc.bat"]@echo off
::全自動PSP批量壓制腳本
cd "/d %~dp0tools"
:start
if not exist "%~dp1autoPSPEncodeTemp" md "%~dp1autoPSPEncodeTemp"
::encode audio
::avconv.exe -i "%~f1" -f wav -ac 2 -vn - | qtaacenc.exe --tvbr 27 --samplerate keep --ignorelength --highest - "%~dp1autoPSPEncodeTemp\%~n1-audio.m4a" && echo ===============%~nx1: audio encode finished.=============== && echo.
avconv.exe -i "%~f1" -f wav -ac 2 -vn - | neroAacEnc.exe -q 0.35 -ignorelength -if - -of "%~dp1autoPSPEncodeTemp\%~n1-audio.m4a" && echo ===============%~nx1: audio encode finished.=============== && echo.
::generate avs
if not exist "%windir%\system32\libfftw3f-3.dll" copy "libfftw3f-3.dll" "%~dp1autoPSPEncodeTemp\libfftw3f-3.dll"
echo SetWorkingDir("%~dp0tools\") > "%~dp1autoPSPEncodeTemp\%~n1_process.avs"
echo Import("LoadPlugin.avsi") >> "%~dp1autoPSPEncodeTemp\%~n1_process.avs"
echo DirectShowSource("%~1", fps=23.976, ConvertFPS=True, audio=False).AssumeFPS(24000, 1001).ConvertToYV12() >> "%~dp1autoPSPEncodeTemp\%~n1_process.avs"
if exist "%~dpn1.ass" echo TextSub("%~dpn1.ass") >> "%~dp1autoPSPEncodeTemp\%~n1_process.avs" && goto Endsub
if exist "%~dpn1.ssa" echo TextSub("%~dpn1.ssa") >> "%~dp1autoPSPEncodeTemp\%~n1_process.avs" && goto Endsub
if exist "%~dpn1.srt" echo TextSub("%~dpn1.srt") >> "%~dp1autoPSPEncodeTemp\%~n1_process.avs" && goto Endsub
if exist "%~dpn1.idx" echo VobSub("%~dpn1.idx") >> "%~dp1autoPSPEncodeTemp\%~n1_process.avs" && goto Endsub
:Endsub
echo Import("16x9.avsi") >> "%~dp1autoPSPEncodeTemp\%~n1_process.avs"
::encode video
::Slow 1st pass
x264 --profile main --level 3 --crf 20.5 --ref 3 --deblock 1:1 --keyint infinite --min-keyint 1 --bframes 4 --b-adapt 2 --b-pyramid none --weightp 0 --qcomp 0.5 --rc-lookahead 40 --ipratio 1.10 --aq-mode 2 --merange 16 --me umh --subme 7 --trellis 2 --psy-rd 0.20:0 --direct auto --sar 40:33 --psnr --ssim --log-file "%~dpn1_1st_pass.log" --log-file-level debug --pass 1 --slow-firstpass --stats "%~dp1autoPSPEncodeTemp\%~n1_1pass.stats" --output "%~dp1autoPSPEncodeTemp\%~n1-video.mp4" "%~dp1autoPSPEncodeTemp\%~n1_process.avs" && echo ===============%~nx1: 1st pass finished.=============== && echo.
::2nd pass
x264 --profile main --level 3 --bitrate 400 --ref 3 --deblock 1:1 --keyint infinite --min-keyint 1 --bframes 4 --b-adapt 0 --b-pyramid none --weightp 0 --qcomp 0.5 --rc-lookahead 40 --ipratio 1.10 --aq-mode 2 --merange 16 --me umh --subme 7 --trellis 2 --psy-rd 0.20:0 --direct auto --sar 40:33 --psnr --ssim --log-file "%~dpn1_2nd_pass.log" --log-file-level debug --pass 2 --stats "%~dp1autoPSPEncodeTemp\%~n1_1pass.stats" --output "%~dp1autoPSPEncodeTemp\%~n1-video.mp4" "%~dp1autoPSPEncodeTemp\%~n1_process.avs" && echo ===============%~nx1: 2nd pass finished.=============== && echo.
::mux
remuxer -i "%~dp1autoPSPEncodeTemp\%~n1-video.mp4" -i "%~dp1autoPSPEncodeTemp\%~n1-audio.m4a" -o "%~dpn1-muxed.mp4"
::delete temp files
del "%~dp1autoPSPEncodeTemp\%~n1_process.avs" "%~dp1autoPSPEncodeTemp\%~n1-audio.m4a" "%~dp1autoPSPEncodeTemp\%~n1_1pass.stats" "%~dp1autoPSPEncodeTemp\%~n1_1pass.stats.mbtree" "%~dp1autoPSPEncodeTemp\%~n1-video.mp4"
dir /a /b "%~dp1autoPSPEncodeTemp"|findstr .>nul 2>nul || rd "%~dp1autoPSPEncodeTemp"
::end
echo ==============="%~nx1" has been encoded to "%~n1-muxed.mp4".=============== && echo.
shift
if not "%~1"=="" goto start
echo All tasks Finished.
echo. & pause[/syntax]
然后某个需要的模板
[syntax lang="avisynth" lines="f" filename="16x9.avsi"]last=( last.height<=576 ) ? last : last.BT709ToBT601()
last=( last.width==704 && last.height==480 ) ? last : last.Spline36Resize(704,480)
#dfttest()
FFT3dGPU()
AddBorders(8,0,8,0)[/syntax]
[syntax lang="avisynth" lines="f" filename="LoadPlugin.avsi"]LoadPlugin("DirectShowSource.dll")
LoadPlugin("BT709ToBT601.dll")
LoadPlugin("VSFilter.dll")
LoadPlugin("FFT3dGPU.dll")
LoadPlugin("dfttest.dll")[/syntax]
其他需要的exe/dll自己准备,完整目录结构:
\autoPSPenc.bat
\tools\16x9.avsi
\tools\avconv.exe
\tools\BT709ToBT601.dll
\tools\dfttest.dll
\tools\DirectShowSource.dll
\tools\FFT3dGPU.dll
\tools\fft3dgpu.hlsl
\tools\libfftw3f-3.dll
\tools\LoadPlugin.avsi
\tools\neroAacEnc.exe
\tools\qtaacenc.exe
\tools\remuxer.exe
\tools\VSFilter.dll
\tools\x264.exe
有问题表找我,我自己都不用的……
つまんねー事聞くなよ!
I, personally, for me, believe (
obviously sometimes) that my
OS choice is right. That's me. I'm not telling you that you should believe it. Learn the facts, and the origins behind the facts, and make up your own damn mind. That's why you have one. (
source )
Follow me:
@06_taro
世 界 3 0 4 日 ——
为纪念伟大的宇宙史上最强压制
304 先生,联合国教科文组织决定,将每年的第304天,即平年的10月31日或者闰年的10月30日,定为世界304日。