我正在使用一个名为 dbPoweramp 的程序从 Powershell 中转换音乐。我正在使用文档here,这是我在搜索时可以找到的所有内容。每当我使用程序本身进行转换时,我都会得到 100 % 的 CPU 使用率,并且它充分利用了所有八个线程。但是,每当我通过命令行启动时,我只会得到大约 13 % 的 CPU 使用率。显然没有必要手动启动程序,因为我在这里尝试
我也尝试使用 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)\Ilrate\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
}
提前谢谢!
我不认为编码器在一个以上的线程上运行。我认为它一次编码多达 8 个轨道,每个核心一个。在您的示例中,编码将连续发生,这意味着您一次只使用一个核心。FFmpeg 也会发生同样的情况。
我不是 Powershell 的家伙,但是如果你能让它一次运行多达 8 个进程,你就不会有这个问题。
本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处
评论列表(83条)