下載與安裝
FFmpeg 的網站網址如下:
由於各種平臺安裝的方法各異,底下就 Windows 來說明:
- 連到 FFmpeg 的網站
- 點選上方選單中的「Download」
- 找到「FFmpeg Windows Builds」,裡面有個「Zeranoe FFmpeg Builds.」的連結,按一下後進入。
- 依需求點選「Download FFmpeg git-xxxxxxxx 32-bit Static」或是「Download FFmpeg git-xxxxxxxx 64-bit Static」。
如果電腦已安裝了類似 7zip 、WinRar ......等解壓縮工具,打開下載回來的「ffmpeg-xxxxxxxxx-static.7z」,並將檔案解壓縮至想存放的地點,如果嫌麻煩,可以解壓縮到 C:\ ,並將解壓縮好的資料夾名稱更名為「ffmpeg」,這樣,以後使用 ffmpeg 的工具,打指令就可以直接用類似 c:\ffmpeg\bin\xxxxx 的語法,較好記(進階的用法是將 ffmpeg.exe 所在的路徑加入 PATH 的環境變數中更方便)。
解壓縮完,ffmpeg 裡應該會有個叫「bin」的資料夾,裡面的檔案有:
上面的指令:
我們使用的工具是 ffmpeg.exe (Linux 中為 ffmpeg),為了讓影像檔案比較好管理,我們先在磁碟中建立一個名為 time-lapse 的目錄,並切換至新建的目錄。
Windows :(假設 ffmpeg.exe 是在 c:\ffmpeg\bin 目錄中)
Linux :
上面使用到的參數如下:
如果成功的話,應該可以在目錄中,看到 0000.jpg、0001.jpg、0002.jpg ...... 的影像檔一張張產生。照上面的設定,ffmpeg 會在 1800 秒(30 分鐘) 後自動停止,如果想手動中斷,可以按鍵盤的「q」或是「Ctrl + c」來停止。
製作影片
有了影像檔,接下來就可將它們重組成影片囉!在儲存影像的目錄中執行底下的指令
Windows:(假設 ffmpeg.exe 是在 c:\ffmpeg\bin 目錄中)
Linux :
上面使用到的參數如下,可以依自己的需求修改參數值:
影像重組完成,照上面的設定,在目錄中應該會多出一個檔名為「movie.avi」,長度約一分鐘 (1800 / 30 = 60 秒) 的影片檔,接著我們就可以用類似 Media Player 的播放軟體來觀看成果囉!
當然囉~如果像我同事的需求是想用數位相機拍的照片來製作,只要先將照片重新命名成有順序的檔名(或是改「-i %04d.jpg」的參數),再進行最後的影片製作部份即可。
解壓縮完,ffmpeg 裡應該會有個叫「bin」的資料夾,裡面的檔案有:
- ffmpeg.exe:主角!影音的錄、轉......都靠它了。
- ffplay.exe:播放程式。
- ffprobe.exe:分析、偵測影音檔格式的工具。
如果是在 Linux 中,例如 Ubuntu、Debian、Raspberry PI ...... 中,我們可以執行底下的指令來安裝:
sudo apt-get update
sudo apt-get install ffmpeg
以 ffplay 測試 Webcam
ffmpeg 裡有個叫 ffplay 的播放器,我們可以用它來預覽 Webcam 的影像。
Windows 中,我們先打開附屬應用程式中的「命令列」,或是在「開始」中的「執行」中,以鍵盤輸入「cmd」後按 Enter 鍵也可以,然後就在命令列模式中輸入以下的指令(假設 ffmpeg 放在 c:\ffmpeg):
c:\ffmpeg\bin\ffplay -f vfwcap -i 0
Linux 中就執行底下的指令(必須在 Console 下才能看到影像):
ffplay -f video4linux2 -i /dev/video0
上面的指令:
- -f :指定影像來源的格式,Windows 中用 vfwcap,而 Linux 則使用 vedeo4linux2。
- -i :指定 Webcam 的裝置代號,Windows 中用 0,而 Linux 則使用 /dev/video0。
下完指令,如果成功,應該會出現 Webcam 拍到的畫面。
想結束預覽,就按鍵盤的「q」或是「Ctrl + c」來結束。
這一部份,無論是參數及結束程式的方法,ffplay 和後面會使用到的 ffmpeg 都相同。
如果確定可以看得到 Webcam 的畫面,並調整好要拍攝的角度,我們就可以準備用 ffmpeg 來儲存 Webcam 的畫面了。
儲存 Webcam 的影像
我們使用的工具是 ffmpeg.exe (Linux 中為 ffmpeg),為了讓影像檔案比較好管理,我們先在磁碟中建立一個名為 time-lapse 的目錄,並切換至新建的目錄。
mkdir time-lapse接著就可以執行以下的指令每隔固定時間擷取 Webcam 拍到的影像
cd time-lapse
Windows :(假設 ffmpeg.exe 是在 c:\ffmpeg\bin 目錄中)
c:\ffmpeg\bin\ffmpeg -f vfwcap -i 0 -s 640x480 -r 1 -t 1800 %04d.jpg
Linux :
ffmpeg -f video4linux2 -i /dev/video0 -s 640x480 -r 1 -t 1800 %04d.jpg
上面使用到的參數如下:
- -f 、-i :和 ffplay 一樣,Windows 與 Linux 必須用不同的設定。
- -s 640x480:儲存的影像檔大小為 640x480。
- -r 1:每秒中抓一張影像。
- -t 1800:抓取 1800 次後停止,可以用冒號的格式來表示這裡用的參數是時間(例如 00:30:00 為抓三十分鐘才停)。
- %04d.jpg:儲存的檔名格式為,使用四位數字(位數不足,在前面補零)再加上「.jpg」。
如果成功的話,應該可以在目錄中,看到 0000.jpg、0001.jpg、0002.jpg ...... 的影像檔一張張產生。照上面的設定,ffmpeg 會在 1800 秒(30 分鐘) 後自動停止,如果想手動中斷,可以按鍵盤的「q」或是「Ctrl + c」來停止。
製作影片
有了影像檔,接下來就可將它們重組成影片囉!在儲存影像的目錄中執行底下的指令
Windows:(假設 ffmpeg.exe 是在 c:\ffmpeg\bin 目錄中)
c:\ffmpeg\bin\ffmpeg -i %04d.jpg -s 640x480 -r 30 -vcodec mpeg4 -b:v 2160000 move.avi
Linux :
ffmpeg -i %04d.jpg -s 640x480 -r 30 -vcodec mpeg4 -b:v 2160000 move.avi
上面使用到的參數如下,可以依自己的需求修改參數值:
- -i %04d.jpg:影像的來源檔名是 xxxx.jpg (前面有補零的四位數字加「.jpg」)。
- -s 640x480:輸出的影片大小為 640x480。
- -r 30 :輸出的影片每秒使用 30 個影格(30張影像),也稱為 30 fps。
- -vcodec mpeg4:輸出的影片採用 mpeg4 的編碼。
- -b:v 2160000:輸出的影片 bitrate 設為 2160000,數字愈大,畫質愈好。
- movie.avi:將影片儲存為 movie.avi。
影像重組完成,照上面的設定,在目錄中應該會多出一個檔名為「movie.avi」,長度約一分鐘 (1800 / 30 = 60 秒) 的影片檔,接著我們就可以用類似 Media Player 的播放軟體來觀看成果囉!
當然囉~如果像我同事的需求是想用數位相機拍的照片來製作,只要先將照片重新命名成有順序的檔名(或是改「-i %04d.jpg」的參數),再進行最後的影片製作部份即可。
沒有留言:
張貼留言