FFmpeg 將圖片/照片 轉換成影片

FFmpeg 將圖片/照片 轉換成影片

FFmpeg 將圖片/照片 轉換成影片


資料來源: https://www.mobile01.com/topicdetail.php?f=510&t=4251956


在達到指定時間長度(1分30秒)時完成輸出:

ffmpeg -loop 1 -i image.jpg -r 30 -t 00:01:30 output.mp4


在音訊結束後完成輸出檔案:

ffmpeg -loop 1 -i image.jpg -r 30 -i song.flac -shortest output.mp4


讀取連續輸入圖片

你可以使用 * 字元或是 %Numd 來讀取多個圖片,Num 為數字的位數。

例如:
  “%d”: 0, 1, 2, 3 ……
  “%3d”: 000, 001, 002, 003 ……
在 CMD/BAT 中,由於 % 已既有特殊用途,若要表示 % 則必須寫為 %%

例1: -i “foo-%3d.jpg”
將會依序讀取輸入 foo-000.jpg, foo-001.jpg, foo-002.jpg, foo-003.jpg ……

例2: -i “foo-*.jpg”
此代表檔名為 “foo-” 開頭的 JPG 檔,並依檔名排序讀取


將連續圖片轉為視訊,輸出影片 30 fps,每張圖片轉為1影格(顯示 1/30 秒):

ffmpeg -i foo-%%3d.jpg -r 30 output.mp4


將輸入 FPS 設為 1/10,輸出影片 30 fps,讓每張圖片轉為連續 300 影格(顯示 10 秒):

ffmpeg -r 1/10 -i foo-%%3d.jpg -r 30 output.mp4


從管道中讀取輸入:

type "foo-*.jpg" | ffmpeg  -f image2pipe -r 1/10 -i pipe:.jpg -r 30 output.mp4


循環讀取連續輸入圖片

假設你有一組圖片
foo-00.jpg, foo-01.jpg, foo-02.jpg, foo-03.jpg …… foo-15.jpg (最後一張)

循環讀取:
foo-00.jpg, foo-01.jpg, foo-02.jpg, foo-03.jpg …… foo-15.jpg, foo-00.jpg, foo-01.jpg ……


在達到指定時間長度(1分30秒)時完成輸出:

ffmpeg -loop 1 -r 1/10 -i foo-%%2d.jpg -r 30 -t 00:01:30 output.mp4


在音訊結束後完成輸出檔案:

ffmpeg -loop 1 -r 1/10 -i foo-%%2d.jpg -r 30 -i song.flac -shortest output.mp4


應用範例

如果要將音樂轉為影片並加字幕
可以這麼做:

ffmpeg -loop 1 -i image.jpg -i song.flac -r 30 -pix_fmt yuv420p -vf subtitles='lyrics.ass' -c:v libx264 -c:a libfdk_aac -movflags +faststart -shortest output.mp4

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *