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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

C语言ffmpeg合并多个视频,ffmpeg合并多个视频

發布時間:2023/12/10 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C语言ffmpeg合并多个视频,ffmpeg合并多个视频 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

///

///遍歷文件夾獲取所有視頻路徑///

///

private void TraverseFolder(string path,stringfilepath)

{

DirectoryInfo dInfo= newDirectoryInfo(path);

Dictionary dic = new Dictionary();

Dictionary dic2 = new Dictionary();

List list = new List();//遍歷該文件夾

foreach (FileInfo fileitem indInfo.GetFiles())

{if (fileitem.Extension == ".mp4")

{

dic.Add(fileitem.Name, fileitem.FullName);

}

}

list= dic2.OrderBy(p => p.Key).Select(p => p.Value).ToList();//遍歷獲取所有需要合并視頻的路徑(為了保證視頻合并后播放的順序是正確的,所有需要合并的視頻命名是有序的)

VideoCombine(list, filepath); //執行視頻合并操作

}///

///

///

/// 需要合并視頻路徑(含文件名和文件類型)集合

/// 合并后文件路徑(含文件名和文件類型)

public void VideoCombine(List list, stringDstFile)

{//DstFile=@"E:\新建文件夾\新視頻.mp4";

string strTmp = "";string strCmd = "";

StringBuilder sb= newStringBuilder();

sb.Append("-i \"concat:");foreach (var item inlist)

{

strTmp= item + ".ts";

strCmd= "-i" + item + "-c copy -bsf:v h264_mp4toannexb -f mpegts" + strTmp + "-y";

CombineImplement(strCmd);

sb.Append($"{strTmp}|");

}

sb.Remove(sb.ToString().LastIndexOf('|'), 1);

sb.Append($"\" -c copy -bsf:a aac_adtstoasc -movflags +faststart {DstFile} -y");var path =sb.ToString();

CombineImplement(path);

}public void CombineImplement(stringstrCmd)

{string exe = @"C\ffmpeg.exe";//轉換文件類型,由于不是所有類型的視頻文件都支持直接合并,需要先轉換格式

System.Diagnostics.Process p = newSystem.Diagnostics.Process();

p.StartInfo.FileName= exe;//要執行的程序名稱

p.StartInfo.Arguments = " " +strCmd;

p.StartInfo.UseShellExecute= false;

p.StartInfo.RedirectStandardInput= false;//可能接受來自調用程序的輸入信息

p.StartInfo.RedirectStandardOutput = false;//由調用程序獲取輸出信息

p.StartInfo.RedirectStandardError = false;//重定向標準錯誤輸出

p.StartInfo.CreateNoWindow = false;//不顯示程序窗口

p.Start();//啟動程序

p.WaitForExit();

p.Close();

p.Dispose();

}

總結

以上是生活随笔為你收集整理的C语言ffmpeg合并多个视频,ffmpeg合并多个视频的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。