Tommy 碎碎念

Tommy Wu's blog

Google
 

« 上一篇 | 下一篇 »

奇怪的 EzBuilder avs2wav.exe 錯誤
post by tommy @ 09 二月, 2010 00:08

最近發現在使用 EzBuilder 轉檔時, 常常出現 avs2wav.exe 的錯誤, 以前這類的錯誤是偶而才發生, 發生時我通常會把 codecs 的套件解除安裝再重裝一次就可以避免這個問題. 不過... 最近這個方法也沒有效果了.

不管怎麼弄, 似乎都會出現這個錯誤. 連剛裝起來的 XP VM 都一樣有相同的錯誤, 真不知道是那兒出的問題.

Google 找了一下,  發現有很多人都有相同的問題, 多數的人也都是說把 codec 重新安裝就可以, 不過... 看來這個方法現在不管用了.

先試著找看看有沒有比較新的 avs2wav 版本, 結果在這兒可以找到 avs2wav 1.1 版, 不過... 改用這個版本, 一樣有相同的問題.

所以決定放棄用 avs2wav, 試著找看看有沒有別的轉檔程式可以使用, 結果發現 AviSynth 有個 SoundOut 的 plugins, 應該可以用來取代 avs2wav 的功能.

簡單的測試一下, 產生一個簡單的 temp.avs 檔案如下:

LoadPlugin("SoundOut.dll")
DirectShowSource("test.rmvb",fps=29.97,convertfps=true)
SoundOut(output="cmd", filename="test.mp4", autoclose=true, addvideo=false, wait=1, overwritefile="Yes", type=0, executable="neroAacEnc.exe", prefilename="-br 96000 -ignorelength -if - -of")
return last

然後執行下頭的指令:

x264.exe temp.avs -o nul

就可以把聲音轉成別的格式的檔案了.

不過, 因為 EzBuilder 產生的 .avs 檔案, 並不會包含這些指令 (如果包含, 也許轉影像時會出問題吧?), 所以... 如果要讓 EzBuilder 可以正常執行, 我們必須也要產生另外一個 .avs 的檔案來處理. 所以我寫了 generate_sndout 這個小程式來處理.

首先, 把 SoundOut 的檔案抓下來, 把 SoundOut.dll 與 libsndfile-1.dll 這兩個檔案放到 EzBuilder 的 tool 目錄下頭. 然後也把 generate_sndout.exe 放到 EzBuilder 的 tool 目錄底下. 接著, 到你要使用的 EzBuilder profile 目錄下, 找到 bat_work.txt, 用編輯器打開來修改.

在執行 avs2wav.exe 的指令前面加上 rem 來避免執行到 avs2wav.exe:

rem "tool\avs2wav.exe" "temp\temp_avs_AvsNumberLoad.avs" -| "tool\neroAacEnc.exe" -ignorelength -br 96000 -if - -of "DoneFile\MainFileLoad.mp4"

然後在該指令後加上三行指令如下:

rem "tool\avs2wav.exe" "temp\temp_avs_AvsNumberLoad.avs" -| "tool\neroAacEnc.exe" -ignorelength -br 96000 -if - -of "DoneFile\MainFileLoad.mp4"
"tool\generate_sndout.exe" "%CD%\tool\SoundOut.dll" "temp\temp_avs_AvsNumberLoad_sndout.avs" "temp\temp_avs_AvsNumberLoad.avs" "output=\"cmd\", filename=\"DoneFile\MainFileLoad.mp4\", autoclose=true, addvideo=false, wait=1, overwritefile=\"yes\", type=0, executable=\"%CD%\tool\neroAacEnc.exe\", prefilename=\"-br 96000 -ignorelength -if - -of\""
"tool\x264.exe" "temp\temp_avs_AvsNumberLoad_sndout.avs" -o nul
del "temp\temp_avs_AvsNumberLoad_sndout.avs"

這樣子就可以利用 SoundOut 的功能來取代原本的 avs2wav.exe, 也就可以避免 avs2wav.exe 的錯誤了.

 


2010/02/10:

 

修改一下 generate_sndout 程式, 傳入整個 SoundOut() 的參數, 方便不同格式的使用. 所以上頭的指令也順便改了一下, 也把 encoder 加上路徑, 因為沒有完整路徑時, 有時 SoundOut 會找不到執行檔.

 

Del.icio.us Furl HEMiDEMi Technorati MyShare
迴響
暱稱:
標題:
個人網頁:
電子郵件:
authimage

迴響

  

Bad Behavior 已經阻擋了 1045 個過去 7 天試圖闖關的垃圾迴響與引用。
Power by LifeType. Template design by JamesHuang. Valid XHTML and CSS