簡體   English   中英

使用FFMPEG裁剪視頻時出錯

[英]Error when cropping video using FFMPEG

問題 :是否有一個適用於所有視頻的FFMPEG裁剪過濾器,包括(但不限於)856x480、640x480和1280x720?

我們有一個視頻處理系統(使用DirectShow),並且使用MJPEG編解碼器輸入到該系統的所有視頻必須為16:9。 我們使用以下ffmpeg命令將源視頻轉換為MJPEG,縮放像素以使其變為正方形,然后將其裁剪為16:9的寬高比。 這對於大多數輸入視頻都非常有用,而輸出正是我們想要的。

ffmpeg -i "1280x720input.mp4" -filter:v "scale=iw*sar:ih,crop=iw:iw/16*9" -codec:v mjpeg -q:v 2 -codec:a pcm_s16le -r 30 -y "output.avi"

但是,當我們使用分辨率為856x480的輸入視頻時,會出現以下錯誤:

[Parsed_crop_1 @ 0000000004615720]寬度'852'或高度'480'的尺寸太大或非正數無效

我嘗試了另一種作物過濾器,該作物過濾器在計算中使用輸入高度而不是輸入寬度,並且它適用於856x480

ffmpeg -i "856x480input.mp4" -filter:v "scale=iw*sar:ih,crop=ih*16/9:ih" -codec:v mjpeg -q:v 2 -codec:a pcm_s16le -r 30 -y "output.avi"

然而,這並不在16與其他源的視頻工作:9(1280×720)或4:3(640×480)的格式。 是否有單個裁剪命令適用於所有視頻?

您需要條件表達式:

crop='if(gte(dar,16/9),ih*16/9,iw)':'if(gte(dar,16/9),ih,iw*9/16)'

dar是顯示寬高比,即iw * sar / ih

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM