[工具类]视频音频格式转换
生活随笔
收集整理的這篇文章主要介紹了
[工具类]视频音频格式转换
小編覺得挺不錯(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)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 保卫萝卜4周赛12.22攻略2023
- 下一篇: sqlserver常用数据类型(精炼版)