你可以用FFmpeg做到這一點:
https://trac.ffmpeg.org/wiki/Create%20a%20video%20slideshow%20from%20images
幀速率
從一系列數字的連續圖像,如img001.png,img002的創建視頻(使用編碼器libx264) .png,img003.png等
重要提示:系列中的所有圖像都需要爲相同的尺寸和格式。通過前 -i設置-r
您可以指定兩個幀速率。讀取輸入的默認值是-r 25,如果未指定-r,將會設置該值。
通過在-i之後或通過使用fps過濾器設置 -r來輸出視頻流的幀速率。如果你想輸入和輸出的幀速率是相同的,那麼只需要聲明一個輸入-r和 輸出將繼承相同的值。
通過使用一個單獨的-r(幀每秒),用於輸入和輸出可以控制在其上顯示各輸入的持續時間,並告訴FFMPEG要用於輸出文件的幀速率。如果輸入-r小於輸出下-r然後ffmpeg的將重複幀來達到所需輸出幀速率。如果輸入-r比輸出更高-r然後將ffmpeg的丟棄幀以達到所需輸出幀速率。
在這個例子中每個圖像具有在5秒的持續時間(每秒幀的1/5的倒數)。視頻流將通過相應複製幀具有30 fps的幀速率:
ffmpeg -r 1/5 -i img%03d.png -c:v libx264 -r 30 -pix_fmt yuv420p out.mp4
知道要使用命令行,你可以在C#中啓動它是這樣的:
if (File.Exists(outputFile))
File.Delete(outputFile);
var info = new ProcessStartInfo(exePath, yourParams);
info.CreateNoWindow = true;
info.WindowStyle = ProcessWindowStyle.Hidden;
info.UseShellExecute = false;
info.RedirectStandardError = true;
info.RedirectStandardOutput = true;
using (var proc = Process.Start(info))
proc.WaitForExit();