「FFmpeg」:修訂間差異

出自Gea-Suan Lin's Wiki
跳至導覽 跳至搜尋
本頁面具有訪問限制。如果您看見此訊息,這代表您沒有訪問本頁面的權限。
行 22: 行 22:


<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
./configure; make -j16
./configure --enable-gpl --enable-nonfree --enable-static --extra-ldflags="-static" --pkg-config-flags="--static"; make -j16
</syntaxhighlight>
</syntaxhighlight>



於 2021年11月7日 (日) 04:57 的修訂

FFmpeg是一個多媒體(影像與聲音)的處理軟體。

安裝

一般性的安裝可以直接裝Ubuntu系統的FFmpeg套件:

sudo apt install -y ffmpeg; sudo apt clean

但我們這邊建議裝SergeyD的PPA,主要是我會用到svt-av1與fdk-aac:

sudo add-apt-repository -y ppa:sergey-dryabzhinsky/ffmpeg; sudo apt update; sudo apt install -y ffmpeg; sudo apt clean

不過要注意SergeyD的PPA有包一些其他的軟體,可能會與現有的軟體衝突(尤其是自己的桌機),需要取捨。

自己編

這邊是嘗試自己編一個出來用,重點在要包codec進去(在./configure階段),有可能會需要加上--enable-gpl --enable-nonfree

./configure --enable-gpl --enable-nonfree --enable-static --extra-ldflags="-static" --pkg-config-flags="--static"; make -j16

使用

  • 大多數的情況下可以加上-nostdin,避免FFmpeg吃到stdin的資料。

範例

這邊是一般性的用法,把來源檔案(讓FFmpeg自己去讀)轉成H.264格式,使用CRF模式,參數設為18(依照官方的說明應該是肉眼看不太出來[1]):

ffmpeg -nostdin -i "${filename}.mp4" -c:v libx264 -crf 18 -c:a libfdk_aac -b:a 128k -ac 2 -y "${filename}-transcoded.mp4"

YUV444轉H.264

把YUV444格式的檔案轉成接近無損的H.264,其中需要指定:

  • -s 1920x1080(來源影片的解析度)
  • -r 30(來源影片的畫面播放速率)

像是這樣:

ffmpeg -f rawvideo -s 1920x1080 -r 30 -pix_fmt yuv420p -i BirdsInCage_30fps.yuv -c:v libx264 -preset veryslow -crf 1 -y BirdsInCage.mp4

要注意的是-crf 0會強制產生4:4:4的格式,最少需要-crf 1才能轉成4:2:0

參考資料

  1. Encode/H.264 – FFmpeg. 2021-03-11 [2021-11-03] (English). 

外部連結