[程式] 用 ffmpeg 拍縮時攝影(mac)

ffmpeg 是一個開源、跨平台的轉檔程式,以前在裝 openCV 的時候好像有看過,這篇記錄一下怎麼用 ffmpeg 來節圖、組裝成新的影片以及示範成果。

ffmpeg 的官方文件可以在>這邊< 找到。順便參考>這個網誌<(說明在 Win / Linux 如何做到)。不過我還是超級新手就參考他們的指令,並參考官網改一下參數而已。

安裝: >參考這邊<

ffmpeg 可以用 Homebrew 套件管理工具安裝,可以先輸入以下指令:

會跑出一些編譯時的選項可以設定。決定好了以後,輸入:

比如:(官網推薦)

裝置資訊:

要查詢電腦上有哪些裝置可以支援錄影,可以用下面的指令查詢:

在我電腦上的回應是:

影片輸入的部分,索引0 是內建的 iSight 攝影機,索引1 則是電腦螢幕錄影。另外聲音輸入就只有內建的麥克風(索引0)。

及時顯示:

用 ffplay 的指令,可以及時顯示錄影的畫面:

-f 好像是影像來源,在比較新的系統上,請打上 avfoundation ,就可以找到不同的網路攝影機。
-i 指定你要用的攝影機/檔案來源,索引請見上面。

播放開始後,可以按「?」表示好奇,「q」表示想離開。

錄影:

錄影的流程大概是如下的: 攝影機 -(avfoundation)-> ffmpeg -(編碼 etc. )-> 儲存檔案

指令 flag 位置很重要,以 「-i」為界,之前是輸入的檔案的設定,之後則是輸出檔案的設定。

 

錄製縮時時,可以參考以下指令:

  • -f avfoundation:指定影片來源
  • -video_size 1920×1080:輸入的影片解析度,這邊要看相機支援是多少。
  • -framerate 30:fps ,每秒幾禎。
  • -pix_fmt 0rgb

-i 0 :指定用訊號來源為 索引0 的攝影機。

  • -s 1920×1080 :指定存檔的解析度。
  • -r 0.5:每幾秒儲存一張圖片每秒幾禎的樣子,設定 5 的話一秒會存五張,不知道跟 -framerate 有什麼差異。
  • -qscale:v 1
  • %05d.jpg 檔名,表示以 xxxx.jpg 為名,號碼較小時則前方為數字動補零到5位。
影片製作:

這邊弄了很久才搞定,因為指定一秒播幾張的設定一直不對,直到看了>這邊<,終於順利指定一秒播的張數!

-i 以前:

  • -framerate 60 :這邊就是設定的重點,以每秒六十張的速度播放,預設是25的樣子。

-i %05d.jpg:指定輸入的檔案,這邊是指定格式是「xxxxx.jpg」的檔案

-i 之後:輸出設定:

  • -s 1920×1080 :指定輸出解析度。
  • -framerate 60 :設定輸出禎數。
  • -vcodec h264 :指定編碼器。
  • -b:v 12000000 :設定 bitrate,越高畫質可能越好,但是檔案會變大
  • Part3_60fps2.mp4 :輸出檔名。
範例:

下面是範例輸出,以網路攝影機拍攝我拍樂高小人偶的過程:


請多多指教!

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料