2015-06-28 51 views
-1

在我的硬盤上的目錄中我有很多圖片:screenshot000001.bmp,screenshot000002.bmp .... screenshot001200.bmp如何將圖像實時批量轉換成mp4視頻文件?

我想要做的兩件事情:

  1. 對於使用測試cmd(命令提示符)並將圖像壓縮並轉換爲mp4視頻文件。

  2. 在我的程序中,我的程序實時截取屏幕截圖並將其保存到硬盤中,以實時壓縮它們並構建mp4視頻文件。

在第一部分我試圖鍵入CMD:

ffmpeg -f image2 -i screenshot%d.bmp -vcodec libx264 -b 800k video.avi 

,但我得到的是兩個錯誤:

[圖像2 @ 0000000004766380]能找到路徑沒有文件「截圖%d.bmp'和 索引在範圍0-4 屏幕截圖%d.bmp:沒有這樣的文件或目錄

我將ffmpeg.exe複製到目錄圖像是在 E:\截圖

對於第二部分該如何我採取實時截圖:

是啓動計時器按鈕單擊事件:

private void button1_Click(object sender, EventArgs e) 
     { 
      timer1.Start(); 
     } 

然後在打勾事件中:

ScreenShot shot = new ScreenShot(); 
    public static int counter = 0; 
    private void timer1_Tick(object sender, EventArgs e) 
    { 
     counter++; 
     shot.GetScreenShot(@"e:\screenshots\", "screenshot"); 
     if (counter == 1200) 
     { 
      timer1.Stop(); 
     } 
    } 

此行shot.GetScreenShot(@「e:\ screenshots \」,「screenshot」);將屏幕截圖保存到硬盤。 這裏每個屏幕截圖保存後,我想壓縮和實時構建mp4視頻文件。

我嘗試這樣做,得到了錯誤:

ffmpeg -f image2 -i screenshot%06d.bmp -vcodec libx264 -b 800k video.avi 

錯誤消息:

ffmpeg version N-73165-gf1e1730 Copyright (
    built with gcc 4.9.2 (GCC) 
    configuration: --enable-gpl --enable-vers 
isynth --enable-bzlib --enable-fontconfig - 
le-iconv --enable-libass --enable-libbluray 
enable-libdcadec --enable-libfreetype --ena 
ibilbc --enable-libmodplug --enable-libmp3l 
le-libopencore-amrwb --enable-libopenjpeg - 
able-libschroedinger --enable-libsoxr --ena 
ble-libtwolame --enable-libvidstab --enable 
--enable-libvorbis --enable-libvpx --enabl 
e-libx264 --enable-libx265 --enable-libxavs 
ble-decklink --enable-zlib 
    libavutil  54. 27.100/54. 27.100 
    libavcodec  56. 45.100/56. 45.100 
    libavformat 56. 38.102/56. 38.102 
    libavdevice 56. 4.100/56. 4.100 
    libavfilter  5. 18.100/5. 18.100 
    libswscale  3. 1.101/3. 1.101 
    libswresample 1. 2.100/1. 2.100 
    libpostproc 53. 3.100/53. 3.100 
[bmp @ 0000000002f77ce0] bad magic number 
    Last message repeated 3 times 
[image2 @ 0000000002f76380] decoding for st 
[image2 @ 0000000002f76380] Could not find 
bmp, none): unspecified size 
Consider increasing the value for the 'anal 
screenshot%06d.bmp: could not find codec pa 
Input #0, image2, from 'screenshot%06d.bmp' 
    Duration: 00:00:02.88, start: 0.000000, b 
    Stream #0:0: Video: bmp, none, 25 fps, 
Please use -b:a or -b:v, -b is ambiguous 
Codec AVOption b (set bitrate (in bits/s)) 
vi) has not been used for any stream. The m 
e (e.g. a video option with no video stream 
some encoder which was not actually used fo 
Output #0, avi, to 'video.avi': 
Output file #0 does not contain any stream 

回答

0

嘗試改變screenshot%d.bmpscreenshot%06d.bmp

我注意到,你使用的是Windows和.NET,但是如果你不介意安裝node.js,它有很好的工具來處理轉換過程,node-fluent-ffmpeg可以處理很多輸出你的選擇。

UPDATE:

好吧,這是利用視頻編碼器的可悲的現實 - 現在有更多的問題,其中大部分是在錯誤信息等中記載:

嘗試使用-b:v代替-b到指示視頻比特率。

[bmp @ 0000000002f77ce0] bad magic number 

很難說這是什麼意思,但我注意到ffmpeg在圖像格式方面相當挑剔。如果您可以嘗試將convert(ImageMagic)運行到圖像並將格式更改爲PNG或JPEG,則可能會更好。

相關問題