影片裁切:16:9 轉 9:16 寬度算出來是 607.5,ffmpeg crop 預設切正中間,裁完一定要重新編碼

影片裁切的答案很簡單:用 ffmpeg 的 crop 濾鏡,寫成 crop=寬:高:x:y,不寫 x 和 y 就預設切正中間;16:9 的 1080p 要轉成 9:16 直式,寬度算出來是 607.5,不是整數,所以要自己湊成偶數再放大到 1080×1920。裁完畫面等於重新編碼,沒辦法跟 -c copy 一起用。
哈囉,又到了快樂的教學時光。這篇不是軟體按鈕導覽,是把「裁切」背後的算術講清楚:切掉多少畫面、剩下多少像素、為什麼寬高要偶數,講完你在 Premiere、DaVinci Resolve 或命令列都能自己對照著用。
裁切、縮放、補邊是三件不同的事
很多人搜尋「影片裁切」其實想做的是三種動作,混在一起講最容易搞錯:
- 裁切(crop):把畫面邊緣切掉,剩下的像素原封不動,影片尺寸變小。
- 縮放(scale):像素重新取樣放大或縮小,畫面內容不變。
- 補邊(pad):在畫面外面加黑邊(或其他顏色),尺寸變大,內容完整保留。
把橫式影片放進直式畫面,常見做法有兩種:裁掉左右(crop 加 scale),或縮小後上下補邊(scale 加 pad)。前者畫面飽滿但會切掉內容,後者內容完整但上下是黑邊。YouTube 說明頁建議不要直接在影片裡加邊框或黑邊,因為加了之後播放器可能無法順利依影片尺寸和觀眾裝置動態調整,所以要上 Shorts 的橫式素材,多半還是走裁切這條路。
ffmpeg crop 語法:w:h:x:y,預設切正中間
依照 ffmpeg 官方濾鏡文件,crop 吃四個主要參數:w(輸出寬)、h(輸出高)、x 與 y(輸出畫面左上角在原片裡的位置)。w 和 h 預設是原片的 iw、ih;x 和 y 預設是 (in_w-out_w)/2 與 (in_h-out_h)/2,也就是置中。文件裡的範例整理如下:
| 目的 | 指令 |
|---|---|
| 在 (12,34) 位置切出 100×100 | crop=100:100:12:34 |
| 只寫寬高,切正中間 | crop=100:100 |
| 切出正中間的正方形 | crop=in_h:in_h |
| 左右各切 10 像素、上下各切 20 像素 | crop=in_w-2*10:in_h-2*20 |
完整指令長這樣:
ffmpeg -i input.mp4 -vf "crop=in_h:in_h" -c:a copy output.mp4
x、y 是每個影格重新計算的運算式,文件的常數表裡有 t(秒數)和 n(影格編號),所以想做出「裁切視窗慢慢平移」的效果,把 x 寫成跟 t 有關的算式就行,例如 x='(iw-ow)*t/2' 會讓視窗在 t 從 0 走到 2 秒的過程中,從最左邊滑到最右邊。要注意 w 和 h 只在設定濾鏡或尺寸改變時算一次,不能隨時間變;會動的只有位置。
如果寫的尺寸超出原片,ffmpeg 不會幫你縮小。比如 1920×1080 的影片寫 crop=2000:1080,會得到 Invalid too big or non positive size for width '2000' or height '1080',整條指令中止。
16:9 轉 9:16 直式:寬度 607.5 要自己處理
1080p 影片的高度是 1080,要裁成 9:16,寬度就是 1080×9÷16=607.5。畫素不可能有半個,而 yuv420p 這類色度子取樣的格式,寬高通常要是偶數。所以建議把寬度明確算成偶數,再用 scale 放大到平台要的 1080×1920:
ffmpeg -i input.mp4 -vf "crop=trunc(ih*9/16/2)*2:ih,scale=1080:1920" -c:v libx264 -crf 18 -c:a copy output.mp4
這串先裁出 606×1080,再放大成 1080×1920。606 比 607.5 少 1.5 個像素,左右各差不到 1 個像素,肉眼看不出來。要留意 606×1080 放大到 1080×1920 是放大約 1.78 倍,畫質會比原片軟一點;如果來源本來就是 4K,裁出約 1214×2160 再縮到 1080×1920 是縮小,細節會保留得比較好。官方文件的 crop 另有 exact 選項:開啟後,子取樣影片會依你寫的寬高和位置精確裁切,不會被取整到較小的值;一般情況下不開也沒問題,但你需要精確到像素的時候就加上 exact=1。
4K(3840×2160)的高度 2160 乘上 9/16 是 1215,同樣是奇數,寫法不變,trunc 那段會幫你湊成 1214。
算一下你會損失多少:16:9 轉 9:16,只保留原畫面 31.6% 的面積(607.5×1080 對 1920×1080)。拍攝時沒有預留直式安全區,主角在畫面邊邊,裁完人就被切掉了,所以裁之前要先決定主角在哪個 x 位置,把 x 寫成固定值,不要只靠預設置中。
YouTube 說明頁寫得很清楚:2024 年 10 月 15 日起,上傳到標準 YouTube 頻道、正方形或直式、長度不超過 3 分鐘的影片,會歸類為 Shorts。換句話說,只要比例是 1:1 或直式,3 分鐘內就會進 Shorts 動態;橫式影片不在這條規則裡。這也是很多人要裁切的實際原因。
方形 1:1 與 4:5:留多少畫面

同樣是 1920×1080 的來源,裁成不同比例,保留的畫面差很多:
| 目標比例 | 裁出尺寸 | 保留面積 | 指令重點 |
|---|---|---|---|
| 1:1 方形 | 1080×1080 | 56.25% | crop=in_h:in_h |
| 4:5 | 864×1080 | 45% | crop=ih*4/5:ih |
| 9:16 直式 | 約 606×1080 | 約 31.6% | crop=trunc(ih*9/16/2)*2:ih |
方形和 4:5 的寬度剛好是整數,不用額外處理。只要想把主體放在左邊或右邊,就把 x 改成 0 或 in_w-out_w,例如 crop=ih*9/16:ih:x=0 就是切最左邊那條。
如果你只是要在網頁上展示影片的某一塊,不想真的重新編碼,MDN 的說明是 CSS 的 object-fit: cover 會保持比例並填滿容器,比例不符的部分被裁掉;object-fit: contain 則是完整顯示並在兩側或上下留邊。這是顯示端的裁切,原檔不變,要下載或轉貼到其他平台的話還是得真的裁。
自動偵測黑邊:cropdetect 幫你算數字

有些素材上下或左右本來就帶黑邊(俗稱 letterbox),手算很麻煩。ffmpeg 官方有 cropdetect 濾鏡,會計算需要裁掉的參數並以日誌印出建議值,官方範例是:
ffmpeg -i file.mp4 -vf cropdetect,metadata=mode=print -f null -
輸出的最後會出現 crop=w:h:x:y 的建議值。舉個例子,假設 1920×1080 的影片上下各有 140 像素黑邊,它會給你 crop=1920:800:0:140,直接貼回 crop 濾鏡就行。幾個預設值值得知道:
- limit 預設 24:亮度超過這個值才算「不是黑」,範圍是 0~255。畫面偏暗、黑邊不夠黑的素材可以調高。
- round 預設 16:寬高會被湊成 16 的倍數,官方說這對多數編碼器最合適;要偶數就改成 2。
- reset_count 預設 0:代表永不重設,回報看過的最大畫面。影片角落有台標會干擾偵測時,可以設定每隔幾個影格重算一次。
依官方文件,reset_count 為 0 時回報的是播放過程中遇到的最大畫面區域;所以建議用有正常畫面的段落來取數字,再把結果貼進 crop。
裁完為什麼一定要重新編碼
crop 是濾鏡,會改動每一個影格的像素,不是換個封裝容器那麼簡單。如果你寫成 -c copy 加 -vf crop=100:100,在 ffmpeg 9.0.2 上會得到這個錯誤:Filtering and streamcopy cannot be used together。意思是用了濾鏡就不能複製串流,影像一定要重新編碼,音訊則可以照舊用 -c:a copy 保留原樣,這樣音質不會再掉一次。
重新編碼就有檔案大小與畫質的取捨。上面範例用的 libx264 加 -crf 18 是偏高畫質的設定,想壓小檔案可以改成 20~23;想弄清楚位元率怎麼算,可以看我們另一篇影片壓縮的 CRF 與位元率整理;而什麼情況下可以只換封裝、完全不重新編碼,在影片轉檔那篇有對照;其他後製整理收在影片後製分類。
六指淵的建議:先決定輸出比例,再裁,不要在母帶上動手
多數人會卡在「裁完才發現主角被切掉」或「裁了一個奇數寬度,編碼器直接報錯」。我們建議的順序是:
- 先決定要發哪個平台、哪個比例,再回頭看素材。9:16 只留 31.6% 面積,這個代價要先接受。
- 原始母帶一律不動,裁切輸出成另一個檔案;之後換比例或換平台,才能回頭從完整畫面再裁。
- 寬高自己算成偶數;不確定就用 trunc(…/2)*2 這種寫法,比靠軟體取整更可預期。
- 只切黑邊的場合,先用 cropdetect 抓數字,別用眼睛量。
這套做法適合要批次處理一堆素材、又想要結果可重複的人;如果你只裁一支影片,直接在剪輯軟體裡用內建的 Crop 效果更快,不用硬學命令列,能用內建功能做到的,我們不會硬推別的工具。不適合的情況是:你只想在網頁上換個顯示範圍,那用 CSS 的 object-fit 就好,沒必要重新輸出影片。
假設你正好有一批橫式素材要變成直式,又想把這類重複的影音處理流程自動化、導入 AI,約 30 分鐘免費諮詢可以先聊聊哪些步驟值得交給流程處理。
參考資料
企業 AI 導入諮詢
公司想導入 AI 卻不知道從哪開始?約 30 分鐘免費諮詢
留下聯絡方式,顧問會先了解你們的團隊與流程,再一起找出最值得先用 AI 改善的環節。方便的話,在下方寫上公司名稱與產業。
六指淵特效教學網編輯團隊,2015 年起以友善的中文教學分享 After Effects、Premiere、Photoshop、特效合成與 MG 動態設計,讓特效沒有距離。









