在centos8下安裝ffmpeg有點麻煩,沒辦法直接安裝完畢。
直接安裝出錯
# dnf install ffmpeg
No match for argument: ffmpeg
安裝步驟
請依順序安裝
[CENTOS8]
# dnf install epel-release dnf-utils
# dnf install gcc
# dnf config-manager --set-enabled powertools
# yum-config-manager --add-repo=https://negativo17.org/repos/epel-multimedia.repo
上式也可以寫成:
# dnf config-manager --add-repo=https://negativo17.org/repos/epel-multimedia.repo
# dnf install ffmpeg
[Rocky9][8]
# dnf install epel-release dnf-utils
# dnf install gcc
# dnf --enablerepo=crb install ladsp
# dnf --enablerepo=crb install ffmpeg
檢查
$ ffmpeg -version
ffmpeg version 4.4.1 Copyright (c) 2000-2021 the FFmpeg developers
built with gcc 8 (GCC)
configuration: --arch=x86_64 --bindir=/usr/bin --datadir=/usr/share/ffmpeg --disable-debug --disable-static --disable-stripping
... 略 ...
--enable-cuvid --enable-ffnvcodec --enable-libmfx --enable-libnpp --enable-libsvtav1 --enable-libsvthevc --enable-libsvtvp9 --enable-libvmaf --enable-nvdec --enable-nvenc --extra-cflags=-I/usr/include/cuda --cpu=x86_64
libavutil 56. 70.100 / 56. 70.100
libavcodec 58.134.100 / 58.134.100
libavformat 58. 76.100 / 58. 76.100
libavdevice 58. 13.100 / 58. 13.100
libavfilter 7.110.100 / 7.110.100
libavresample 4. 0. 0 / 4. 0. 0
libswscale 5. 9.100 / 5. 9.100
libswresample 3. 9.100 / 3. 9.100
libpostproc 55. 9.100 / 55. 9.100 <== 這些數字看不懂,可能是版號。
執行
執行範例
-i '/path/to/%d/picture.png' -vf reverse -y \
-hide_banner -loglevel error /path/to/output.gif
參數說明
-start_number 100 從編號100開始起算
-stream_loop 0 重覆播放,0表示不重覆
-r 1.8 每秒1.8張圖
-i '/path/to/%d/picture.png' 從路徑 /path/to/[100~最後]/picture.png 取得圖片,如果你是連續編號的圖片可以寫成 /path/to/picture%d.png,也可以使用列清單的方式,請參考[4]的說明。
-vf reverse 反向取號,從數字大的往取到數字小的順序取號。[5]
-y 目的有同名檔案的話直接取代
-hide_banner -loglevel error 採用安靜模式,不顯示非錯誤的資訊[6]
/path/to/output.gif 輸出的目標檔案
結論
ffmpeg 可以做到指令化、快速縮放建立mp4或gif動畫的功能,同時他也有三種圖片的輸入方式:連續編號、萬用字元、清單。
4.4內建可用GPU來加速運算,功能非常的強大。
參考資料
[1] https://linuxize.com/post/how-to-install-ffmpeg-on-centos-8/
[2] Cannot enable PowerTools for RHEL 8 https://access.redhat.com/discussions/5417621
[3] https://unix.stackexchange.com/questions/24014/creating-a-gif-animation-from-png-files/489210
[4] 如何用FFmpeg將連續的圖片轉成影片? https://magiclen.org/ffmpeg-image-sequence-encode
[5] reverse order https://stackoverflow.com/questions/40475480/ffmpeg-convert-image-sequence-to-video-with-reversed-order
[6] 安靜模式 https://superuser.com/questions/326629/how-can-i-make-ffmpeg-be-quieter-less-verbose
[7] 加速ffmpeg https://itnext.io/speedup-ffmpeg-without-compiling-from-source-code-c1f34d4ec544
[8] https://centos.pkgs.org/9-stream/centos-crb-x86_64/ladspa-1.13-28.el9.x86_64.rpm.html