生成視訊任意幀的縮圖
阿新 • • 發佈:2019-01-10
/****************************************** * 根據ffmpeg生成視訊的縮圖 * ffmpeg的下載地址:http://download.csdn.net/detail/chao88552828/9249353 *****************************************/ /// <summary> /// 生成視訊縮圖 /// </summary> private void GenThupImage() { string ffmpegPath = @"C:\Users\Administrator\Desktop\ffmpeg\ffmpeg\bin\ffmpeg.exe";//為ffmpeg的全路徑 string oriVideoPath = @"E:\8_Ent\速度Y激情7_bd.mp4";//為視訊的全路徑 int frameIndex = 10;//為幀處在的秒數 int thubWidth = 80;//為縮圖的寬度 int thubHeight = 80; //為縮圖的高度 string thubImagePath = @"E:\2\2.jpg";//為生成的縮圖所在的路徑 string command = string.Format("\"{0}\" -i \"{1}\" -ss {2} -vframes 1 -r 1 -ac 1 -ab 2 -s {3}*{4} -f image2 \"{5}\"", ffmpegPath, oriVideoPath, frameIndex, thubWidth, thubHeight, thubImagePath); Execute(command); } /// <summary> /// 呼叫cmd命令 /// </summary> /// <param name="str"></param> private void Execute(string str) { System.Diagnostics.Process p = new System.Diagnostics.Process(); p.StartInfo.FileName = "cmd.exe"; p.StartInfo.UseShellExecute = false; //是否使用作業系統shell啟動 p.StartInfo.RedirectStandardInput = true;//接受來自呼叫程式的輸入資訊 p.StartInfo.RedirectStandardOutput = true;//由呼叫程式獲取輸出資訊 p.StartInfo.RedirectStandardError = true;//重定向標準錯誤輸出 p.StartInfo.CreateNoWindow = true;//不顯示程式視窗 p.Start();//啟動程式 //向cmd視窗傳送輸入資訊 p.StandardInput.WriteLine(str + "&exit"); p.StandardInput.AutoFlush = true; //獲取cmd視窗的輸出資訊 string output = p.StandardOutput.ReadToEnd(); p.WaitForExit();//等待程式執行完退出程序 p.Close(); }