序列模式

序列模式

我有一個資料夾,裡面裝滿了從 0 到任意數字的圖像,我需要將這些圖像轉換為影片。它們都是 .PNG 檔。這是我正在使用的命令:

ffmpeg.exe -f image2 -framerate 30 -pattern_type sequence -start_number 1 -r 30 -i "img%%04d.jpg" -s 1280x720 test.avi

當我運行這個時,我收到此錯誤:

[image2 @ 002be580] Could find no file with path 'img%04d.jpg' and index in the range 1-5

img%04d.jpg: No such file or directory

我可以改變什麼來讓它發揮作用?

答案1

序列模式

預設模式類型。img%d.jpg將期望img1.jpg,,img2.jpg等。​img%04d.jpgimg0001.jpgimg0002.jpg

ffmpeg -framerate 30 -i img%d.jpg -vf scale=1280:-1,format=yuv420p output.mp4

全域模式

glob 通配符模式類型非常靈活。如果 libavformat 是使用通配支援編譯的,則此模式類型可用。

ffmpeg -framerate 30 -pattern_type glob -i "*.png" -vf scale=1280:-1,format=yuv420p output.mp4

筆記

  • 請參閱FFmpeg image2 解復用器文檔了解更多。

  • scale篩選在此範例中,會將寬度變更為 1280,並將自動計算高度以保留寬高比。

  • 根據您的版本、輸入類型(例如 PNG)、編碼器(特別是 libx264)和編碼選項,ffmpeg可能會嘗試避免或最小化色度子取樣,但大多數非基於 FFmpeg 的播放器將無法正確解碼輸出。這format篩選將確保輸出使用與這些播放器相容的色度子取樣方案。

答案2

只有這對我在同一目錄中運行 cmd 有效:

ffmpeg -framerate 20 -i Animation%3d.jpg -r 5 -y fileout.mp4

對於名為 Animation000 到 999.jpg 的檔案。

這對我不起作用:

ffmpeg -framerate 20 -pattern_type glob -i "*.jpg" -vcodec libx264 out.mp4

它產生了錯誤:

選擇了模式類型“glob”,但此 libavformat 版本不支援通配 *.jpg:功能未實現

相關內容