日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 综合教程 >内容正文

综合教程

[工具类]视频音频格式转换

發(fā)布時(shí)間:2023/12/24 综合教程 37 生活家
生活随笔 收集整理的這篇文章主要介紹了 [工具类]视频音频格式转换 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

寫在前面

在終端越來越多的情況下,對(duì)媒體文件的要求就需要統(tǒng)一了,由于一些移動(dòng)端的瀏覽器對(duì)flash兼容性不好,所以就需要考慮對(duì)視頻或者音頻格式進(jìn)行轉(zhuǎn)化了。

FFmpeg是一套可以用來記錄、轉(zhuǎn)換數(shù)字音頻、視頻,并能將其轉(zhuǎn)化為流的開源計(jì)算機(jī)程序。采用LGPL或GPL許可證。它提供了錄制、轉(zhuǎn)換以及流化音視頻的完整解決方案。它包含了非常先進(jìn)的音頻/視頻編解碼庫(kù)libavcodec,為了保證高可移植性和編解碼質(zhì)量,libavcodec里很多codec都是從頭開發(fā)的。

工具類

http://ffmpeg.org/download.html可以去這里進(jìn)行下載。

使用的時(shí)候,需要一下文件

    /// <summary>
    /// 轉(zhuǎn)換工具類
    /// </summary>
    public static class FFmpegUtility
    {
        /// <summary>
        ///根目錄
        /// </summary>
        public static string rootDirPath = AppDomain.CurrentDomain.BaseDirectory;
        /// <summary>
        /// ffmpeg路徑
        /// </summary>
        private readonly static string _strFFmpegPath = Path.Combine(rootDirPath, "ffmpeg.exe");
        /// <summary>
        /// 將音頻轉(zhuǎn)換為mp3的bat文件路徑
        /// </summary>
        private readonly static string _audioToMp3BatPath = Path.Combine(rootDirPath, "audiotomp3.bat");
        /// <summary>
        /// 獲取視頻第一幀圖片的bat文件路徑
        /// </summary>
        private readonly static string _videoImageBatPath = Path.Combine(rootDirPath, "videotomp4.bat");
        /// <summary>
        /// 組裝進(jìn)程信息
        /// </summary>
        /// <returns></returns>
        private static void BuildProcessStartInfo(string batPath, string sourPath, string savePath)
        {
            if (string.IsNullOrEmpty(batPath))
            {
                throw new ArgumentNullException("bat文件路徑不正確");
            }
            if (!File.Exists(batPath))
            {
                throw new Exception("bat文件不存在");
            }
            ProcessStartInfo processStartInfo = new ProcessStartInfo();
            processStartInfo.FileName = batPath;
            processStartInfo.WindowStyle = ProcessWindowStyle.Hidden;
            processStartInfo.Arguments = _strFFmpegPath + " " + sourPath + " " + savePath;
            processStartInfo.ErrorDialog = false;
            processStartInfo.CreateNoWindow = true;
            Process.Start(processStartInfo);

        }
        /// <summary>
        /// 將音頻文件轉(zhuǎn)換為mp3
        /// </summary>
        public static void ConvertAudioToMp3OrMp4(string sourcePath, string savePath)
        {
            if (!File.Exists(_audioToMp3BatPath))
            {
                File.WriteAllText(_audioToMp3BatPath, "%1 -i %2 %3");
            }

            BuildProcessStartInfo(_audioToMp3BatPath, sourcePath, savePath);
        }
        /// <summary>
        /// 將視頻文件轉(zhuǎn)換為MP4
        /// </summary>
        /// <param name="sourcePath">視頻文件</param>
        /// <param name="savePath">圖片保存的路徑</param>
        /// <param name="width">圖片寬度</param>
        /// <param name="height">圖片高度</param>
        /// <returns></returns>
        public static string GetVideoImage(string sourcePath, string savePath, int width, int height)
        {
            if (!File.Exists(_videoImageBatPath))
            {
                File.WriteAllText(_videoImageBatPath, "%1 -i %2 -y -f image2 -t 0.001 -s " + width + "x" + height + " %3");
            }
            BuildProcessStartInfo(_videoImageBatPath, sourcePath, savePath);
            return savePath;
        }

    }

測(cè)試

    class Program
    {
        static void Main(string[] args)
        {
            try
            {
                string exePath = AppDomain.CurrentDomain.BaseDirectory;
                string amrPath = Path.Combine(exePath, "1.amr");
                string mp3Path = Path.Combine(exePath, "23333333333333333.mp3");
                string mp4Path = Path.Combine(exePath, "o5.mp4");
                string mp4ImgPath = Path.Combine(exePath, "1111111111111111.png");
                FFmpegUtility.rootDirPath = exePath;
                FFmpegUtility.ConvertAudioToMp3OrMp4(amrPath, mp3Path);
                FFmpegUtility.GetVideoImage(mp4Path, mp4ImgPath, 500, 500);
                Console.WriteLine("轉(zhuǎn)換成功");
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            Console.Read();
        }

結(jié)果

總結(jié)

這里實(shí)現(xiàn)了amr轉(zhuǎn)MP3,獲取視頻的縮略圖。

總結(jié)

以上是生活随笔為你收集整理的[工具类]视频音频格式转换的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。