2010-10-12 53 views
16

我發佈了這個作爲評論在this related thread下。然而,他們似乎還沒有受到重視=(ffmpeg將avi分成已知幀速率的幀

我用

ffmpeg -i myfile.avi -f image2 image-%05d.bmp 

分裂myfile.avi到存儲.bmp文件幀。這似乎只是不大的工作。我的錄製視頻時,我記錄在1000fps的速度和視頻竟然是2min29sec長。如果我的數學是正確的,應該達到總149,000幀整個視頻。但是,當我跑

ffmpeg -i myfile.avi -f image2 image-%05d.bmp 

我只獲得4472個文件。我怎樣才能得到原來的149k幀?

我也試圖通過做

ffmpeg -i myfile.avi -r 1000 otherfile.avi 

我原來的AVI的幀速率轉換爲1000fps的,但這似乎並沒有解決我的問題。

回答

31
ffmpeg -i myfile.avi -r 1000 -f image2 image-%07d.png 

我不確定輸出150k bmp文件將是一個好主意。也許PNG是夠好的?

+0

這適用於我的視頻我記錄了我的筆相機 – silberbaum 2015-06-04 16:35:00

11

你的數學的第一部分是好的,2分29秒約爲149秒。以1000 fps製作149000幀。然而,你的輸出文件名只有5個位置,其中149000有6個位置,所以試試「image-%06d.bmp」。

然後是磁盤大小:你的圖像適合在磁盤上嗎?使用bmp,每張圖片都使用自己的大小。您可以嘗試使用jpeg圖片,它們的壓縮效果要好10倍。

另一個想法:如果ffmpeg沒有找到(合理的)幀速率,它會下降到每秒25或30幀。您可能需要指定它。這樣做的源和目標,請參見手冊頁(man ffmpeg在UNIX上):

To force the frame rate of the input file (valid for raw formats 
    only) to 1 fps and the frame rate of the output file to 24 fps: 
      ffmpeg -r 1 -i input.m2v -r 24 output.avi 

對於它的價值:我用ffmpeg -y -i "video.mpg" -sameq "video.%04d.jpg"我的視頻分割爲圖片。 -sameq是強制jpeg的質量合理,-y是爲了避免覆蓋問題。對於你:

的ffmpeg -y -r 1000 -i 「myfile.avi」 -sameq 「圖像%06d.jpg。」

+0

-sameq現已棄用 – 2017-04-16 18:01:57

0

我認爲,這裏有一個誤解:一個HS視頻系統的輸出不太可能具有1000fps的輸出幀速率,但是像30(或50/60)fps那樣相當正常。除了以這種速度超載大多數視頻播放器之外,以與錄製速度相同的速度顯示序列會起反作用。基本上:1秒@ 1000 fps輸入就像33秒@ 30 fps輸出。

在正常播放時,錄製的場景持續時間實際上是2:29分鐘(導致視頻在正常速率下~82分鐘),或者花費了4.5秒(4472幀),這是2:29分鐘?