ffmpeg libx264_编程小短文:FFmpeg视频画面尺寸调整,必知必会
引言
FFmpeg是音視頻處理領域,應用范圍最廣的一個項目。
我們日常使用的大小桌面版視頻播放器,或者命令行使用的播放器,大多數是基于 ffmpeg 開發的。
如果說它是音視頻編解碼處理中的老大哥,這一點都不為過。
本文主要從一個小知識點作為切入面,深入介紹一下,如何有效地壓縮和降低視頻文件的體積。
問題的提出
有一位題主遇到下面的情況,他有一個視頻文件,寬高比是 1024x576,現在想要將尺寸調整為 720x480,應該怎么辦?
當然了,這對于 ffmpeg 應用程序來說是小菜一碟。只用執行下面一行指令。
ffmpeg -i input.avi -s 720x480 -c:a copy output.mkv其中:
-s:是 --scale 的短選項,用于指定輸出文件的畫面寬高比;
-c:a:是輸出音視頻的盒子,copy 說明了是不做任何處理,原樣輸出。
如果想要限制畫面寬度,而對于畫面高度想要自動的進行裁切,那么就要用到過濾器。執行下面一行指令。
ffmpeg -i input.avi -filter:v scale=720:-1 -c:a copy output.mkv-1將告訴ffmpeg自動選擇與提供的寬度相關的正確高度,以保持寬高比。如果用戶給定了高度,那么-1則可以用于指定保持寬高比中的寬度。
使用libx264時,Scale的一個缺點是此編碼器需要偶數值,Scale可能會自動選擇奇數值,從而導致錯誤:寬度或高度不能被2整除。
你可以告訴Scale為給定高度選擇偶數值(在本例中為720):
scale="trunc(oh*a/2)*2:720"或者指定高度,
scale="1280:trunc(ow/a/2)*2"引申討論
一般情況下我們會把固定格式寬高比的視頻文件轉換為統一格式,用于適配不同型號的手機。那么有沒有辦法,在不知道目標型號手機的寬高比的時候,按照百分比為視頻畫面進行調整呢?答案是肯定有的。
比如下面這樣對畫面進行寬高50%的收縮。
ffmpeg -i input.avi -vf scale="iw/1:ih/2" output.avi你應該會注意到我們使用了兩個變量。
- iw:輸入文件的畫面寬度
- ih:輸入文件的畫面高度
這兩個是系統的常量,可以拿來直接使用。
寫在最后
其實 ffmpeg 所提供的過濾器功能十分復雜,而且功能十分強大。可應用于眾多領域的音視頻轉換,只要是輸入的視頻流,均可進行深度的處理。
Happy coding :_)
我是 @程序員小助手 ,持續分享編程知識,歡迎關注。總結
以上是生活随笔為你收集整理的ffmpeg libx264_编程小短文:FFmpeg视频画面尺寸调整,必知必会的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 稀疏多项式的运算用链表_用最简单的大白话
- 下一篇: excel vba编程代码大全_实战VB