asp.net实现调用ffmpeg实现视频格式的转换

视频格式转换的函数

 //视频转换
    public void VideoConvertFlv(string FromName, string ExportName)
    {

        string ffmpeg = HttpContext.Current.Server.MapPath("~/UploadFiles/FLV/ffmpeg.exe");
        FromName = HttpContext.Current.Server.MapPath(FromName);
        ExportName = HttpContext.Current.Server.MapPath(ExportName);
        string Command = " -i \"" + FromName + "\" -y -ab 32 -ar 22050 -b 800000 -s  480*360 \"" + ExportName + "\""; //Flv格式
        //string Command = " -i \"test.wmv\" -y -ab 32 -ar 22050 -b 800000 -s 320*240 \"2.flv\"";

        //string Command = "E:\\FFmpeg\\ffmpeg.exe -i E:\\ClibDemo\\VideoPath\\admin\\a.wmv -y -ab 56 -ar 22050 -b 500 -r 15 -s 320*240 " ExportName;
        System.Diagnostics.Process p = new System.Diagnostics.Process();
        p.StartInfo.FileName = ffmpeg;
        p.StartInfo.Arguments = Command;
        p.StartInfo.WorkingDirectory = HttpContext.Current.Server.MapPath("~/UploadFiles/FLV/");
        p.StartInfo.UseShellExecute = false;
        p.StartInfo.RedirectStandardInput = true;
        p.StartInfo.RedirectStandardOutput = true;
        p.StartInfo.RedirectStandardError = true;
        p.StartInfo.CreateNoWindow = false;
        //开始执行
        p.Start();
        p.BeginErrorReadLine();
        p.WaitForExit();
        p.Close();
        p.Dispose();
    }

调用视频格式转换

protected void btnSaveUploadVod_Click(object sender, EventArgs e)
    {
        string fileName = txtATitle.Text;//上传文件的名称的命名规则是标题
        bool flag = true;  //视频格式是否正确的标志
        if (fileName.Equals(""))
        {
            Response.Write("<script>alert(‘请先填写标题!‘)</script>");
        }
        else
        {
            filePathTemp = "UploadFiles/武夷概况/视频";
            string fpath = Path.Combine(Request.PhysicalApplicationPath, filePathTemp);
            UploadFile upFile = AspnetUpload.GetUploadFile("file2");
            if (upFile != null)
            {
                string sourceFileName = Path.GetFileName(upFile.get_FileName()); //取出上传的视频的文件名,进而取出该文件的扩展名
                string extendName = sourceFileName.Substring(sourceFileName.LastIndexOf(".") + 1);
                //上传后的文件名的命名规则是:标题+数字+后缀
                if (!isAllowedVodType(extendName))
                {
                    flag = false;
                }
                else
                {

                    VodWarehouseManage vodWarehouseBll = new VodWarehouseManage();
                    //先上传到服务器,然后转换格式,最后删掉原来非FLV格式的视频
                    //上传后的文件名的命名规则是:标题+后缀
                    string fileNameTemp = fileName + "." + extendName;
                    string savePath = filePathTemp + "/" + fileNameTemp;
                    upFile.SaveAs(Path.Combine(fpath, fileNameTemp));
                    if (!extendName.ToLower().Equals("flv"))
                    {//进行视频转换

                        //调用视频转换函数将其它格式的视频转为FLV格式的视频
                        string fromName = "~/" + savePath;
                        string exportName = "~/" + filePathTemp + "/" + fileName + ".flv";
                        // Response.Write("<script>alert(‘fromName=" + fromName + " and exportName=" + exportName + "‘)</script>");

                        //转换视频格式
                        VideoConvertFlv(fromName, exportName);

                        //删除非FLV格式的视频
                        vodWarehouseBll.DeleteFile(Path.Combine(fpath, fileNameTemp));

                        savePath = filePathTemp + "/" + fileName + ".flv";

                    }

                    //保存视频的信息
                    VodWarehouse vodWarehouse = new VodWarehouse();
                    vodWarehouse.VodSortId = 17;//1代表媒体的类型为武夷概况
                    vodWarehouse.VodPath = savePath;
                    vodWarehouse.AttachId = Int32.Parse(articleId.Value);//隐藏域中的值

                    if (vodWarehouseBll.SaveVodsInfo(vodWarehouse) == false)
                    {
                        Response.Write("<script>alert(‘保存视频的过程出错!‘)</script>");
                    }
                    else
                    {
                        //Response.Write("<script>alert(‘视频上传成功!‘)</script>");
                        //将上传的路径写入相应的上传文本框中 

                    }
                }
            }//end foreach

            if (flag == true)
            {
                this.upLoadVodResult.Text = "视频上传成功";
                this.vodPannel.Visible = false;
            }
            else
            {
                //this.upLoadVodResult.Text = "您选择的视频的格式不正确,请确保您的视频的格式是:flv/mov/wmv/avi/mp4";
                Response.Write("<script>alert(‘您选择的视频的格式不正确,请确保您的视频的格式是:flv/mov/wmv/avi/mp4!‘)</script>");
            }
        }
    }
时间: 2024-08-29 07:35:50

asp.net实现调用ffmpeg实现视频格式的转换的相关文章

C#使用FFmpeg 将视频格式转换成Gif图片示例

一.本次使用参数说明 /* * 参数说明: * -i 源文件位置 * -y 输出新文件,是否覆盖现有文件 * -s 视频比例 4:3 320x240/640x480/800x600 16:9 1280x720 ,默认值 'wxh',和原视频大小相同 * -f 等同'-formats',定义的可支持的文件格式'ffmpeg-formats',更多参考:https://ffmpeg.org/ffmpeg-formats.html * -vframes 数字类型,指定视频输出帧数 * -dframes

ASP.NET下调用ffmpeg与mencoder实现视频转换截屏

最近要做一个视频播放的系统,用到了ffmpeg和mencoder两个工具,查了一些资料,发现这方面的资料还挺多的,但是就是乱了一点,我自己从头整理了一下,和大家分享一下: 1.ffmpeg实现视频(avi,wmv等格式)转换为flv格式: /// <summary> /// 转换视频为flv /// </summary> /// <param name="fileName">上传视频文件的路径(原文件)</param> /// <p

ffmpeg转换参数和对几种视频格式的转换分析

我们在将多种格式的视频转换成flv格式的时候,我们关注的就是转换后的flv视频的品质和大小.下面就自己的实践所得来和大家分享一下,主要针对avi.3gp.mp4和wmv四种格式来进行分析.通常在使用ffmpeg进行视频转换的时候我们使用到的控制音视频的主要参数有如下:-ab      bitrate      设置音频码率-acodec  codec        使用codec编解码-ac      channels     设置通道,缺省为1-ar      freq         设置音

.Net调用ffmpeg对视频截图

2019/10/27, .Net c#代码片段 摘要:借助ffmpeg对视频/图片截图.生成缩略图,使用命令行调用ffmpeg工具,支持Linux和Windows 网上很多版本都是需要等待4s的做法,这里不需要等待固定4s 添加引用对系统判断: using System.Runtime.InteropServices; /// <summary> /// 借助ffmpeg生成缩略图 /// </summary> /// <param name="originalFi

ffmpeg 音频视频格式转换

ffmpeg是Linux中转换音频视频文件的常用工具. mp4 to mp3: ffmpeg -i $ID.mp4 -acodec libmp3lame -ac 1 -ar 16000 $ID.mp3 ffmpeg -i $ID.mp4 -vn -ab 128k -ar 16000 -y $ID.mp3 -i: 表示输入的音频或视频 -ac: channel 设置通道3, 默认为1 -ar: sample rate 设置音频采样率 -acodec: 使用codec编解码 -ab: bitrate

Java也疯狂-分享利用ffmpeg做视频转换的工具

朋友需要经常将视频统一转换为mp4格式,市面上的工具很多,但是转换的体积.自动化程度等都不好,于是花了一个小时给朋友写了个给予ffmpeg的批量转换工具,功能简单但是很实用,也正好给学习Java的同学一些参考,其中使用到了swing.简单的多线程(基于Timer).内部类嵌套实现.线程下如何实现多线程数据的显示.windows的一些操作(读取环境变量.调用外部程序等),ffmpeg是一个非常有用的工具,尤其对于开发者而言.程序运行的效果如下 话不多说,直接上完整代码,复制可以运行(需要ffmpe

java视频格式转换代码

http://blog.163.com/zzf_fly/blog/static/20958915820127217443816/ package com.gkzx.online.action; import java.io.File;import java.io.IOException;import java.io.InputStream;import java.util.Date;import java.util.List; import org.apache.struts2.ServletA

bash shell,调用ffmpeg定期截图

#!/bin/bash #获取当前目录中所有m3u8文件,并 var=$(ls |grep '.m3u8'|cut -d '.' -f1) #死循环 while [ 1 = 1 ] do #循环每个文件 for stream in $var do #获取当前最新视频文件 ts=$(ls -t|grep "$stream") for file in $ts do #存储M3U8文件文件名作为图片文件名,截图为220*120,截取第一帧,存储在当前目录的screen文件夹 img=$(ls

迅捷视频转换器如何做到mp4转换为mov视频格式而不损失画质呢?

MOV是一种大家熟悉的流式视频格式,在某些方面它甚至比WMV和RM更优秀,并能被众多的多媒体编辑及视频处理软件所支持,用MOV格式来保存影片是一个非常好的选择.它无论是在本地播放还是作为视频流格式在网上传播,都是一种优良的视频编码格式.小编来教大家使用迅捷视频转换器 转换mov视频格式http://app.xunjiepdf.com/video并且不损失画质的方法 1.首先百度搜索 迅捷视频转换器http://www.xpgod.com/soft/53462.html下载安装,安装地址除C盘外,