2014-01-21 60 views
0

我正在使用名爲dbPoweramp的程序來轉換Powershell內的音樂。我正在使用文檔here,這是我在搜索時可以找到的所有文檔。無論何時我使用程序本身進行轉換,我都可以獲得100%的CPU使用率,並充分利用所有八個線程。但是,每當我通過命令行啓動時,我的CPU使用率只有13%左右。顯然,不得不手動啓動程序,因爲我要在這裏進行自動化。我曾嘗試搞亂-processors的論點,但它沒有任何區別。有沒有人有任何想法,爲什麼會這樣?使用dbPoweramp的低CPU使用率Powershell

我也嘗試使用FFMPEG來代替,但FFMPEG的CPU使用率同樣很低。如果任何人都可以發佈代碼,這將使FFMPEG利用全部八個內核都可以工作。

下面是執行實際轉換的代碼段,本質上它只搜索所有flac,m4a或mp3文件,然後自動將它們轉換爲可變比特率質量1 mp3用於流式傳輸。

$oldMusic = Get-ChildItem -Include @("*.flac", "*.m4a", "*.mp3") -Path $inProcessPath -Recurse #gets all of the music 

cd 'C:\Program Files (x86)\Illustrate\dBpoweramp' 

foreach ($oldSong in $oldMusic) { 
    $newSong = [io.path]::ChangeExtension($oldSong.FullName, '.mp3') 
    $oldSongPath = $oldSong.FullName 
    $newSongPath = "E:\Temp\$newSong" 
    .\CoreConverter.exe -infile= $oldSongPath -outfile= $newSong -convert_to= "mp3 (Lame)" -V $quality #converts the file 

}

提前感謝!

回答

1

我不認爲編碼器運行在多個線程上。我認爲它一次編碼8個音軌,每個音軌編碼一個。在你的例子中,編碼會連續發生,這意味着你一次只能使用一個核心。 FFmpeg也會發生同樣的情況。

我不是Powershell的傢伙,但如果你能讓它一次運行多達8個進程,你就不會有這個問題。

+0

現在我想到了,這是有道理的。我不確定我會如何做到這一點。我將不得不做更多的研究。 – Caulen