基於C#利用ffmpeg提取視頻幀


基於C#利用ffmpeg提取視頻幀

參考路徑: https://www.cnblogs.com/cdp1591652208/p/9005854.html

利用ffmepg提取視頻幀實際上是利用C#調用ffmepg命令行進行處理對應的視頻,然后輸出出視頻幀

 

復制代碼
GetPicFromVideo(@"視頻文件路徑", "705x576", "1"); static public string GetPicFromVideo(string VideoName, string WidthAndHeight, string CutTimeFrame) { string ffmpeg = @"E:\ffmpeg\bin\ffmpeg.exe";//ffmpeg執行文件的路徑 string PicName = VideoName + ".jpg";//視頻圖片的名字,絕對路徑 System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo(ffmpeg); startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden; startInfo.Arguments = " -i " + VideoName //視頻路徑 + " -r 1" //提取圖片的頻率 + " -y -f image2 -ss " + CutTimeFrame //設置開始獲取幀的視頻時間 + " -t 513 -s " + WidthAndHeight //設置圖片的分辨率 + @" 路徑\%d.jpg"; //輸出的圖片文件名,路徑前必須有空格 try { System.Diagnostics.Process.Start(startInfo); Thread.Sleep(5000);//線程掛起,等待ffmpeg截圖完畢  } catch (Exception) { return ""; }        
       //返回視頻圖片完整路徑 if (System.IO.File.Exists(PicName)) return PicName; return ""; }

ffmpeg下載安裝和簡單應用

先介紹一下ffmpeg:FFmpeg是一個自由軟件,可以運行音頻和視頻多種格式的錄影、轉換、流功能,包含了libavcodec —這是一個用於多個項目中音頻和視頻的解碼器庫,以及libavformat——一個音頻與視頻格式轉換庫。 名字由來:"FFmpeg"這個單詞中的"FF"指的是"Fast Forward"[2]。有些新手寫信給"FFmpeg"的項目負責人,詢問FF是不是代表“Fast Free”或者“Fast Fourier”等意思,"FFmpeg"的項目負責人回信說“Just for the record, the original meaning of "FF" in FFmpeg is "Fast Forward"...”

一、ffmpeg下載

先到http://ffmpeg.org/下載ffmpeg安裝文件

 

接着中間部分黑體字 Latest Zeranoe FFmpeg Build Version下面有系統標注,32位還是64位,並且都有三種版本,簡單介紹一下,都是我理解的想法,不太懂英文,大家見諒。 Static Versions是集成版,就是全都封裝在一個exe可執行文件里了。 Shared Versions是共享版,這個是總的執行程序和一些lib庫文件在一個文件夾里,應該是為了可以自定義庫吧,我猜的。 Dev Versions是開發版,里面完全是腳本,看樣子像Linux下的,這個真不懂。
大家按自己的系統位數建議選擇Static Versions集成版,只需要一個文件ok了,干凈方便。

 

二、ffmpeg安裝

a、解壓下載完的ffmpeg-20150407-git-c4b2017-win64-shared

解壓后如圖,(doc文件夾就是關於文檔,licenses是聲明,這個有個開源軟件協議,了解詳情請百度,presets文件夾里貌似是一些編碼的默認設置吧,我猜的,不懂,想了解還是百度吧,度娘真是萬能的)

b、將ffmpeg.exe的路徑配置到環境變量里的Path里

三、ffmpeg驗證

Alt+r,輸入cmd,在dos命令行輸入 ffmpeg

出現下列提示,即表示ffmpeg安裝成功

 

四、ffmpeg簡單應用

目前我是用來把錄制好的視頻轉換成圖片

ffmpeg.exe -i 路徑\待轉換的文件名.mp4 -r 30 -s 640*480 轉換后保存的路徑\文件夾名/%d.jpg 

ffmpeg.exe -i C:\Users\Administrator\Desktop\video\20150407_174405.mp4 -r 30 -s 640x480 C:\Users\Administrator\Desktop\video/%d.jpg

 

-i 是選擇被執行文件

-r 30 是轉換后視頻的幀率,就是每秒的幀數

-s 640*480 是轉換后視屏的分辨率





免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM