移至主內容
首頁  >  Linux記事本  >  影片太大,就用ffmpeg壓縮影片

影片太大,就用ffmpeg壓縮影片

影片太大,就用ffmpeg壓縮影片

Tag :
ffmpeg, video, compression
Written by Wanding on 2 February 2022
ffmpeg

高解析度的影片,若檔案格式與瀏覽器不相容,只要進行轉檔,轉成瀏覽器支援的影片檔案格式,即可解決。 若格式沒問題,但檔案太大,導致拖慢網頁速度,這時你就需要對影片進行壓縮,我會推薦FFmpeg來進行影片的處理,它可以處理影音轉檔的疑難雜症。

FFmpeg 是一個自由軟體,可以執行音訊和視訊多種格式的錄影、轉檔、串流功能,包含影音解碼、編碼、轉換、混合、抽取、串流、過濾等各功能,幾乎支援 所有影音格式的強大工具。而且可以在Linux、Microsoft Windows、Mac OSX、BSD等跨平台安裝使用。不過主要是以命令列方式來運作。我的經驗是若在Windows使用,使用Windows的子系統Linux版來操作可能會更穩定些。

安裝FFmpeg

Linux並未預設有ffmpeg,所以需要進行安裝,打開終端機,輸入下列指令,然後輸入sudo密碼後按enter即完成 sudo apt install ffmpeg 如果有一支4K的影片,要壓縮為1600x900的影片,如下指令列執行 ffmpeg -i input.mp4 -b 5m -s 1600x900 output.mp4
  • -i: 設定輸入檔名
  • -b: 設定影像流量 (解碼率 2m,5m,10m,20m)
  • -s: 設定畫面的寬與高(如: 1600x900)

如果需要把avi檔案轉成mp4,則寫成如下 ffmpeg -i input.avi output.mp4 從影片第5分鐘開始切1分鐘,也就是切出5到6分鐘的影片輸出 ffmpeg -i input.avi -ss 00: 05: 00 -t 00: 01: 00 output.avi
  • -ss: 切割影片的起始位置,格式為 分分: 秒秒: 毫秒
  • -t: 分割的長度時間,格式為 分分: 秒秒: 毫秒

主要參數

  • -i: 設定輸入檔名
  • -f: 設定輸出格式
  • -y: 若輸出檔案以存在則覆蓋檔案
  • -fs: 超過指定的檔案大小時則結束轉換
  • -t: 指定輸出檔案的持續時間,以秒為單位
  • -ss: 從指定時間開始轉換,以秒為單位
  • -t從-ss時間開始轉換: 如-ss 00: 00: 01.00 -t 00: 00: 10.00即從00: 00: 01.00開始到00: 00: 11.00)
  • -title: 設定標題
  • -timestamp: 設定時間戳
  • -vsync: 增減Frame使影音同步
  • -c: 指定輸出檔案的編碼
  • -metadata: 更改輸出檔案的元資料
  • -help: 檢視幫助資訊

影像參數

  • -b: v: 設定影像流量,預設為200Kbit/秒
  • -r: 設定影格率值,預設為25
  • -s: 設定畫面的寬與高
  • -aspect: 設定畫面的比例
  • -vn: 不處理影像,於僅針對聲音做處理時使用
  • -vcodec(-c: v): 設定影像影像編解碼器,未設定時則使用與輸入檔案相同之編解碼器

聲音參數

  • -b: a: 設定每Channel(最近的SVN版為所有Channel的總合)的流量。(單位請參照下方注意事項)
  • -ar: 設定採樣率
  • -ac: 設定聲音的Channel數
  • -acodec ( -c: a ) : 設定聲音編解碼器,未設定時與影像相同,使用與輸入檔案相同之編解碼器
  • -an: 不處理聲音,於僅針對影像做處理時使用
  • -vol: 設定音量大小,256為標準音量。(要設定成兩倍音量時則輸入512,依此類推。)