C# 使用ffmpeg.exe進行音頻轉換完整demo-asp.net轉換代碼

C# 使用ffmpeg.exe進行音頻轉換完整demo-asp.net轉換代碼

 

上一篇說了在winform下進行調用cmd.exe執行ffmpeg.exe進行音頻轉換完整demo.後來我又須要移植這個方式到asp.net中,可是asp.net和winform程序有不少不一樣。html

須要修改WavConvertToAmr的方法,支持asp.netc#

一、WavConvertToAmr修改執行權限:若是在windows server中可能會遇到權限問題,須要配置IIS權限:windows

   先從IIS中找到你的網站,在右鍵--【屬性】中看看使用的應用程序池是哪一個,而後【在應用程序池】目錄下找到它,右鍵---【屬性】asp.net

 

IT分享

 

         找到【標識】選項卡,再找到【預約義帳戶】,在後邊的下拉菜單中選擇「本地系統」就能夠了!網站

IT分享

 

 

         這樣一來,你的網站就能夠爲所欲爲的執行cmd命令了,其實不單單是執行cmd命令,簡直是至高無上的權限!spa

         提醒一下,這樣更改的是應用程序池權限,所以全部使用這個應用程序池的網站都有很高的權限,這是至關危險的,還須謹慎使用!!.net

這個方法存在危險,也經過設置執行的用戶名和密碼來設置:code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
    /// <summary>
         /// 執行Cmd命令
         /// </summary>
         private  string   Cmd( string  c)
         {
             try
             {
                 System.Diagnostics.Process process =  new  System.Diagnostics.Process();
                 process.StartInfo.FileName =  "cmd.exe" ;
                 process.StartInfo.UseShellExecute =  false ;
                
                 process.StartInfo.CreateNoWindow =  true ;
                 process.StartInfo.UserName =  "user" ;
                 //構造用戶密碼,假定密碼爲123,必須一個字符一個字符的添加  
                 System.Security.SecureString password =  new  System.Security.SecureString();
                 password.AppendChar( 'p' );
                 password.AppendChar( 'a' );
                 password.AppendChar( 's' );
                 password.AppendChar( 's' ); 
                 process.StartInfo.Password = password;  
                  
                 process.StartInfo.RedirectStandardInput =  true ;
                 process.StartInfo.RedirectStandardOutput =  true ;
                 process.StartInfo.RedirectStandardError =  true ;
                 process.Start();
                 process.StandardInput.WriteLine(c);
                 process.StandardInput.AutoFlush =  true ;
                 Thread.Sleep(1000);
                 process.StandardInput.WriteLine( "exit" );
                 process.WaitForExit();
                 //StreamReader reader = process.StandardOutput;//截取輸出流           
                 string  outStr = process.StandardOutput.ReadToEnd();
         
           process.Close();
           
                 return  outStr;
             }
             catch  (Exception ex)
             {
                 return  "error" +ex.Message;
             }
         }

注意:構造用戶密碼,假定密碼爲123,必須一個字符一個字符的添加  !orm

二、在asp.net中調用方式:server

1
2
3
4
5
6
7
8
    protected  void  Button1_Click( object  sender, EventArgs e)
     {
         string  fileName =  "d:\\2222.amr" ;
         string  targetFileName =  "d:\\2222.mp3" ;
         WavConvertAmr.WavConvertToAmr toamr =  new  WavConvertAmr.WavConvertToAmr();
         string  remsg = toamr.ConvertToAmr(Server.MapPath( "./ffmpeg/" ), fileName, targetFileName);
        
     }

將ffmpeg.exe放在網站的目錄ffmpeg的下面

IT分享C# 使用ffmpeg.exe進行音頻轉換完整demo-asp.net轉換代碼

在asp.net要注意ffmepg的路徑:

1
2
3
4
5
6
7
8
9
10
11
12
13
./當前目錄
/網站主目錄
../上層目錄
~/網站虛擬目錄
  若是當前的網站目錄爲E:\wwwroot   應用程序虛擬目錄爲E:\wwwroot\company 瀏覽的頁面路徑爲E:\wwwroot\company\news\show.asp
在show.asp頁面中使用
Server.MapPath( "./" )   返回路徑爲:E:\wwwroot\company\news
  Server.MapPath( "/" )    返回路徑爲:E:\wwwroot
  Server.MapPath( "../" )   返回路徑爲:E:\wwwroot\company
  Server.MapPath( "~/" )   返回路徑爲:E:\wwwroot\company
  server.MapPath(request.ServerVariables( "Path_Info" )) 
  Request.ServerVariables( "Path_Translated" )  
上面兩種方式返回路徑爲 D:\wwwroot\company\news\show.asp

 

 

轉載網址:

http://www. suxxxxxxxxchso.com/projecteactual/csharp-ffmpeg-demo-mp3-amr-mp4-asp.net.html

相關文章
相關標籤/搜索