2012-04-07 217 views
2

我在尋找一些庫或代碼,可以讓我將mp4視頻轉換爲mp3。 我希望它是免費的,並與最新的.NET框架(4)兼容。將mp4轉換爲mp3

此外,如果可能的話,我正在尋找一個免費的ffmpeg包裝,比我在沒有試用版或消息框的vb.net應用程序中可以獲得的包裝要好。

如果沒有免費的ffmpeg包裝,有人可以告訴我如何使用命令行和ffmpeg執行從mp4到mp3的轉換嗎?

回答

2

您可以使用以下代碼在vb.net中處理/執行ffmpeg命令。

Dim _out As String = "" 
Dim _process As New Process() 
_process.StartInfo.UseShellExecute = False 
_process.StartInfo.RedirectStandardInput = True 
_process.StartInfo.RedirectStandardOutput = True 
_process.StartInfo.RedirectStandardError = True 
_process.StartInfo.CreateNoWindow = True 
_process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden 
_process.StartInfo.FileName = "ffmpeg"; 
_process.StartInfo.Arguments = " -i input.mp4 -vn -f mp3 -ab 192k output.mp3"; 
_process.Start() 
_process.StandardOutput.ReadToEnd() 
_out = _process.StandardError.ReadToEnd() 
_process.WaitForExit() 
If Not _process.HasExited Then 
    _process.Kill() 
End If 
Return _out 

結果您將收到ffmpeg輸出和mp3音頻文件。爲了獲得更好的編碼性能和分析ffmpeg的輸出,我建議使用的ffmpeg包裝http://www.mediasoftpro.com/media-handler-pro.html

+0

我得到 '_process.Start()' 找不到文件 – CodexVideos 2012-04-08 18:24:58

+0

你必須爲ffmpeg的 – irfanmcsd 2012-04-08 18:37:27

+0

我沒有提供完整的路徑,我用打開文件對話框出錯獲取完整的文件路徑。 這是我的參數代碼: '_process.StartInfo.Arguments =「-i」&OpenFileDialog1.FileName&「-vn -f mp3 -ab 192k」&Application.StartupPath&「\ output.mp3」' – CodexVideos 2012-04-08 19:12:27

6

您可以啓動一個進程(System.Diagnostics.Process)並根據需要隱藏ffmpeg窗口。控制檯輸出可以重定向到一個StringBuilder或類似的。

有關轉換,你可以使用像

ffmpeg.exe -i input.mp4 -vn -f mp3 -ab 192k output.mp3 

-vn如果你的MP4文件沒有視頻不是必需的。