C# 使用ffmpeg.exe进行音频转换完整demo-asp.net转换代码

摘要:
C#使用ffmpeg。exe进行音频转换。完整的演示asp。上一篇文章中提到的net转换代码调用cmd。exe来执行ffmpeg。exe进行音频转换。稍后,我需要将此方法迁移到asp。net,但是asp.net和winform程序有很多不同。提醒我,应用程序池权限是以这种方式更改的,因此使用此应用程序池的所有网站都具有高权限。这很危险,你必须小心!!
C# 使用ffmpeg.exe进行音频转换完整demo-asp.net转换代码
 

上一篇说了在winform下进行调用cmd.exe执行ffmpeg.exe进行音频转换完整demo.后来我又需要移植这个方式到asp.net中,但是asp.net和winform程序有很多不同。

需要修改WavConvertToAmr的方法,支持asp.net

1、WavConvertToAmr修改执行权限:如果在windows server中可能会遇到权限问题,需要配置IIS权限:

   先从IIS中找到你的网站,在右键--【属性】中看看使用的应用程序池是哪个,然后【在应用程序池】目录下找到它,右键---【属性】

IT分享

         找到【标识】选项卡,再找到【预定义账户】,在后边的下拉菜单中选择“本地系统”就可以了!

IT分享

         这样一来,你的网站就可以随心所欲的执行cmd命令了,其实不仅仅是执行cmd命令,简直是至高无上的权限!

         提醒一下,这样更改的是应用程序池权限,因此所有使用这个应用程序池的网站都有很高的权限,这是相当危险的,还须谨慎使用!!

这个方法存在危险,也通过设置执行的用户名和密码来设置:

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,必须一个字符一个字符的添加  !

2、在asp.net中调用方式:

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:wwwrootcompany 浏览的页面路径为E:wwwrootcompany ewsshow.asp
在show.asp页面中使用
Server.MapPath("./")   返回路径为:E:wwwrootcompany ews
 Server.MapPath("/")    返回路径为:E:wwwroot
 Server.MapPath("../")   返回路径为:E:wwwrootcompany
 Server.MapPath("~/")   返回路径为:E:wwwrootcompany
 server.MapPath(request.ServerVariables("Path_Info")) 
 Request.ServerVariables("Path_Translated")  
上面两种方式返回路径为 D:wwwrootcompany ewsshow.asp

 

转载网址:

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

免责声明:文章转载自《C# 使用ffmpeg.exe进行音频转换完整demo-asp.net转换代码》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇MFC之目录结构及消息流转(一)常用标签属性及文本溢出处理下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

linux下使用ffmpeg将amr转成mp3

系统环境: CentOS Linux release 8.2.2004 (Core) 1. 首先安装系统编译环境 yum install -y automake autoconf libtool gcc gcc-c++ 2. 编译所需源码包 #yasm:汇编器,新版本的ffmpeg增加了汇编代码 wget http://www.tortall.net/pr...

IIS 平台NET无后缀名伪静态实现办法

使用URLRewrite重写链接地址时,当无后缀时,总是找不到文件,不能使用。例如:http://shop.iccoo.cn/7648/ 无后缀形式(当然这个是可以的啦,只是看下链接形式) 当有后缀时就是可以的,如:http://shop.iccoo.cn/7648/newslist.html 具体的设置收集查找之后如下(必须收藏): 1)首先新建一个应用...

Asp.Net WebAPI配置接口返回数据类型为Json格式

一、默认情况下WebApi 对于没有指定请求数据类型类型的请求,返回数据类型为Xml格式 例如:从浏览器直接输入地址,或者默认的XMLRequest,或者AngularJs的get请求等。 对于有循环引用的也会抛出异常““ObjectContent`1”类型未能序列化内容类型“application/xml; charset=utf-8”的响应正文。”...

VS2012+Win7网站发布详细步骤及常见问题

VS2012+Win7网站发布详细步骤    本机环境:            本文分三个部分介绍Web项目发布的常规方法,大神级别可以略过,主要是为了方便一些初学者。 第一部分:VS2012把项目发布到文件系统。 第二部分:IIS配置发布好的项目。 第三部分:常见问题处理。  第一部分:VS2012把项目发布到文件系统。  1、打...

C#取视频某一帧图片

首先下载 ffmpeg http://ffmpeg.org/  注意一定要从官网下载,其他地方可以会有问题 解压后在 bin 目录下找到 ffmpeg.exe   用到的使命是 -i 视频地址 -ss 第几帧 -f image2 图片存放地址 用cmd试一下,首先切换到ffmpeg.exe所在目录,输入命令,回车    最后上C#代码 using (...

asp.net core 系列 3 项目实战之:NetCore 的 Web 应用程序(参考自:Microsoft教程)

十年河东,十年河西,莫欺少年穷 学无止境,精益求精 概述:此教程介绍了生成 Razor Pages Web 应用的基础知识。具体分为如下部分 创建 Razor 页面 Web 应用 向 Razor 页面应用添加模型 基架(生成)Razor 页面 使用数据库 更新 Razor 页面 添加搜索 添加新字段 添加验证 首先,我们启用VS新建一个项目: 本篇主...