簡體   English   中英

在ubuntu上使用ffmpeg裁剪視頻中的黑條會更改視頻大小

[英]Cropping black bars in video with ffmpeg on ubuntu changes video size

我的源視頻大小為720x576,頂部和底部帶有黑色矩形。

我想刪除黑色矩形並將輸出視頻大小設置為640x352。

我嘗試了-vf cropdetect ,它給出的值是640:192:0:80。

但是,將相同的值放在crop=<parameter>更改輸出視頻的大小。

我怎樣才能解決這個問題?

例如:

ffmpeg -i all_the_best_test.mpg -s 640x352 -deinterlace -b 500k -minrate 500k \
-maxrate 500k -aspect 1.82 -force_fps -vcodec libx264 -me_method 10 \
-vf crop=640:192:0:80 -r 25 -acodec libfaac -ac 2 -ar 44100 -ab 96k -subq 6 \
-vpre medium /vod/Movies/final/allthebest-crop-2.mp4

當您指定-s 640x352作為應用於輸出的第一個命令時,您是否期望ffmpeg會最后處理它? 從您的結果來看,我認為它必須首先應用(應用於黑框仍完整的電影)。 因此,黑框將隨着電影一起調整大小。 然后,將為原始尺寸的電影檢測到的裁切應用於此新的較小的電影。 如果不畫一些東西很難解釋,但是這會扭曲您的長寬比,並且如果裁切被表示為要保留的幾何圖形,請從邊距中切出一些內容(請記住:您在應用原始裁切之前將視頻縮小了)。 換句話說,不僅是扭曲的,人們還應該缺少一些頭發,附屬物和東西嗎?

為什么不做一個簡單的測試用例。 如果我采用黑框電影中的基本方法,效果很好。

步驟1保持不變。 執行ffmpeg -i movie.mp4 -vf cropdetect temp.mp4並閱讀其對作物的含義,例如您的crop = 640:192:0:80。

步驟2:簡化命令行進行測試:ffmpeg -i movie.mp4 -vf crop = 640:192:0:80 movie_without_borders.mp4。 確保在播放器中播放結果,該播放器將為文件大小設置其自己的邊界(或可以配置為這樣做-如果您在底池中,請按2)。 新電影沒有失真,黑色邊框也消失了。

對於我的測試文件,發生了兩個大小更改。 首先,顯然,新的幾何尺寸是我們為作物指定的尺寸。 其次,文件大小略有減小,大概是因為使用了少量空間來保存黑匣子。 使用libx264和相對壓縮的低質量文件而沒有太大的移動,切出一個與圖片相等的黑框,將文件大小從3.99減小到3.76(對於n = 1 ..)。 但是最有可能您的意思是圖片似乎“扭曲”。

暫無
暫無

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

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