zoukankan      html  css  js  c++  java
  • ffmpeg 转成MP3采样率8000

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.Diagnostics;
    using System.IO;
    using System.Threading;
    
    namespace Win
    {
        public partial class Form1 : Form
        {
            public static string url="";
            public Form1()
            {
                InitializeComponent();
            }
            static FileSystemWatcher watcher = new FileSystemWatcher();
            /// <summary>       
            /// 初始化监听       
            /// </summary>       
            /// <param name="StrWarcherPath">需要监听的目录</param>       
            /// <param name="FilterType">需要监听的文件类型(筛选器字符串)</param>       
            /// <param name="IsEnableRaising">是否启用监听</param>       
            /// <param name="IsInclude">是否监听子目录</param>        
            private static void WatcherStrat(string StrWarcherPath, string FilterType, bool IsEnableRaising, bool IsInclude)
            {
                //初始化监听           
                watcher.BeginInit();
                //设置监听文件类型           
                watcher.Filter = FilterType;
                //设置是否监听子目录           
                watcher.IncludeSubdirectories = IsInclude;
                //设置是否启用监听?           
                watcher.EnableRaisingEvents = IsEnableRaising;
                //设置需要监听的更改类型(如:文件或者文件夹的属性,文件或者文件夹的创建时间;NotifyFilters枚举的内容)          
                watcher.NotifyFilter = NotifyFilters.Attributes | NotifyFilters.CreationTime | NotifyFilters.DirectoryName | NotifyFilters.FileName | NotifyFilters.LastAccess | NotifyFilters.LastWrite | NotifyFilters.Security | NotifyFilters.Size;
                //设置监听的路径           
                watcher.Path = StrWarcherPath;
                //注册创建文件或目录时的监听事件           
                watcher.Created += new FileSystemEventHandler(watch_created);
                //注册当指定目录的文件或者目录发生改变的时候的监听事件  
                watcher.Changed += new FileSystemEventHandler(watch_changed);
                //注册当删除目录的文件或者目录的时候的监听事件           
                watcher.Deleted += new FileSystemEventHandler(watch_deleted);
                //当指定目录的文件或者目录发生重命名的时候的监听事件           
                watcher.Renamed += new RenamedEventHandler(watch_renamed);
                //结束初始化           
                watcher.EndInit();
            }
    
            /// <summary>       
            /// 创建文件或者目录时的监听事件      
            /// </summary>      
            /// <param name="sender"></param>       
            /// <param name="e"></param>       
            private static void watch_created(object sender, FileSystemEventArgs e)
            {
                //事件内容
                string fileName = e.FullPath;
                string targetFileName = "";
                WavConvertAmr.ConvertToMP3 toamr = new WavConvertAmr.ConvertToMP3();
                try
                {
                    if (!System.IO.Path.GetExtension(fileName).Equals(".mp3", StringComparison.CurrentCultureIgnoreCase))
                    {
                        targetFileName = e.FullPath.Substring(0, e.FullPath.LastIndexOf(".")) + ".mp3";
                        toamr.ConvertToAmr(System.Windows.Forms.Application.StartupPath, fileName, targetFileName);
                    }
                    //转换采样率
                    targetFileName = e.FullPath.Substring(0, e.FullPath.LastIndexOf(".")) + ".wav";
                    toamr.ConvertToAmr(System.Windows.Forms.Application.StartupPath, fileName, targetFileName);
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
            /// <summary>       
            /// 当指定目录的文件或者目录发生改变的时候的监听事件      
            /// </summary>       
            /// <param name="sender"></param>       
            /// <param name="e"></param>       
            private static void watch_changed(object sender, FileSystemEventArgs e)
            {
                //事件内容    
                //MessageBox.Show("发生改变");
            }
            /// <summary>       
            /// 当删除目录的文件或者目录的时候的监听事件       
            /// </summary>       
            /// <param name="sender"></param>             
            /// <param name="e"></param>      
            private static void watch_deleted(object sender, FileSystemEventArgs e)
            {
                //事件内容
            }
            /// <summary>       
            /// 当指定目录的文件或者目录发生重命名的时候的事件      
            /// </summary>      
            /// <param name="sender"></param>       
            /// <param name="e"></param>       
            private static void watch_renamed(object sender, RenamedEventArgs e)
            {
                //事件内容      
            }
            /// <summary>       
            /// 启动或者停止监听       
            /// </summary>       
            /// <param name="IsEnableRaising">True:启用监听,False:关闭监听</param>       
            private void WatchStartOrSopt(bool IsEnableRaising)
            {
                watcher.EnableRaisingEvents = IsEnableRaising;
            }
    
            private void button2_Click(object sender, EventArgs e)
            {
                Record re = new Record();
                re.Show();
            }
            private void button1_Click_1(object sender, EventArgs e)
            {
                //url = System.AppDomain.CurrentDomain.BaseDirectory.Replace("WavConvertAmr\Win\bin\Debug\", "") + textBox1.Text;
                try
                {
                    url = System.AppDomain.CurrentDomain.BaseDirectory.Replace("Debug\", "") + textBox1.Text;
                    WatcherStrat(url, "*", true, false);
                }
                catch (Exception ex)
                {
                    throw new Exception(ex.Message);
                }
                this.panel1.Visible = true;
                MessageBox.Show("启动成功!");
            }
    
            private void button2_Click_1(object sender, EventArgs e)
            {
                OpenFileDialog open = new OpenFileDialog();
                if (open.ShowDialog() == DialogResult.OK)
                {
                    string fileName = open.FileName;
                    string targetFileName = open.FileName.Substring(0, open.FileName.LastIndexOf(".")) + ".wav";
                    WavConvertAmr.ConvertToMP3 toamr = new WavConvertAmr.ConvertToMP3();
                    toamr.ConvertToAmr(System.Windows.Forms.Application.StartupPath, fileName, targetFileName);
                    MessageBox.Show("转换成功");
    
                }
            }
    
            private void panel1_Paint(object sender, PaintEventArgs e)
            {
    
            }
        }
    }
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.IO;
    
    namespace WavConvertAmr
    {
        public class ConvertToMP3
        {
            
            /// <summary>
            /// 将Wav音频转成Amr手机音频
            /// </summary>
            /// <param name="applicationPath">ffmeg.exe文件路径</param>
            /// <param name="fileName">WAV文件的路径(带文件名)</param>
            /// <param name="targetFilName">生成目前amr文件路径(带文件名)</param>
            public void ConvertToAmr(string applicationPath, string fileName, string targetFilName)
            {
                //string c = applicationPath + @"ffmpeg.exe -y -i " + fileName + " -ar 8000 -ab 128 -ac 1 " + targetFilName;
                string c = """ + applicationPath + @"ffmpeg.exe" + """ + " -i  " + """ + fileName + """ + " -ar 8000  -y  " + """ + targetFilName + """;
                Cmd(c);
            }
    
            /// <summary>
            /// 执行Cmd命令
            /// </summary>
            private void 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.RedirectStandardOutput = true;
                    process.StartInfo.RedirectStandardInput = true;
                    process.Start();
    
                    process.StandardInput.WriteLine(c);
                    process.StandardInput.AutoFlush = true;
                    process.StandardInput.WriteLine("exit");
                    StreamReader reader = process.StandardOutput;//截取输出流
                    //process.WaitForExit();
                }
                catch
                { }
            }
        }     
    }
  • 相关阅读:
    [quote]HowTo Format Date For Display or Use In a Shell Script
    [quote] standard Input and Output Redirection
    [quote] Re: [ECOS] printf and diag_printf go to nowhere 2
    [quote] Re: [ECOS] printf and diag_printf go to nowhere
    [quote] DMA engine in Linux Kernel
    [linux]How to set PATH in shell script, and keep it avaiable even after it exits
    use AWK to extract some lines according to some patterns in file
    [Reprinted] Howto Use Linux Watchdog
    Hadoop 1 ecosystem
    Java Comparable & Comparator
  • 原文地址:https://www.cnblogs.com/zhtbk/p/5116126.html
Copyright © 2011-2022 走看看