Tommy 碎碎念

Tommy Wu's blog

« 上一篇 | 下一篇 »

奇怪的 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
commons icon [1] Re:奇怪的 EzBuilder avs2wav.exe 錯誤 [ 回覆 ]

我實際使用過之後發現這方法在32bit的x264上沒問題,可是用在64bit的x264上面就會失敗,能不能請教是哪邊出了問題呢?

commons icon [2] Re:奇怪的 EzBuilder avs2wav.exe 錯誤 [ 回覆 ]

你的 avisynth 與 soundout.dll, libsndfile-1.dll 是 x64 版的嗎? 官方的版本似乎都只有 x86, 不確定與 x64 的程式一起運作是否會正常.

commons icon [3] Re:奇怪的 EzBuilder avs2wav.exe 錯誤 [ 回覆 ]

avisynth我裝了64bit的patch,至於soundout.dll和libsndfile-1.dll我沒找到64bit版。
我在使用64bit x264+ezbuilder轉檔時視訊部份是正常的,轉到音訊時就會出錯,結果會出來一個無聲影片。

commons icon [4] Re:奇怪的 EzBuilder avs2wav.exe 錯誤 [ 回覆 ]

不好意思
雖然解決了
avs2wav.exe 的錯誤
但是又出現新的問題
按下轉檔之後 會出現 generate_sndout.exe 停止運作

commons icon [5] Re:奇怪的 EzBuilder avs2wav.exe 錯誤 [ 回覆 ]

如果你單獨執行 generate_sndout.exe 會有錯誤嗎?

commons icon [6] Re:奇怪的 EzBuilder avs2wav.exe 錯誤 [ 回覆 ]

沒有錯誤
不過會閃過一個黑色視窗
然後沒有執行任何程式

我的作業系統是W7 64-bit

commons icon [7] Re:奇怪的 EzBuilder avs2wav.exe 錯誤 [ 回覆 ]

還是一樣呢..
不斷的出現 generate_sndout.exe 已停止運作
還是沒辦法轉檔..

commons icon [8] Re:奇怪的 EzBuilder avs2wav.exe 錯誤 [ 回覆 ]

基本上, 我也在 x64 上頭用, 並沒有你說的問題.
如果你會寫程式, 你可以自己寫個程式來取代 generate_sndout.exe 的動作吧.

commons icon [9] Re:奇怪的 EzBuilder avs2wav.exe 錯誤 [ 回覆 ]

您好:
我也嘗試著想修正EZ在WIN7 64BIT下無法轉檔的問題
但是我沒有寫過程式,所以有些小問題想問您
1.temp.avs我寫好了之後該放到哪?
2.x264.exe temp.avs -o nul
以上這個指令是要在哪裡執行?
3.您寫得generate_sndout我無法開啟呢
是要有什麼程式嗎?
4.我應該是缺什麼步驟,導致我轉檔開始後一下就轉檔
完畢,畫面消失太快,我不到照片
以上

謝謝您

迴響
暱稱:
標題:
個人網頁:
電子郵件:
迴響

  

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