
我有一個資料夾,裡面裝滿了從 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.jpg
img0001.jpg
img0002.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:功能未實現