1. 程式人生 > >mac安裝ffmpeg遇到的坑

mac安裝ffmpeg遇到的坑

mac環境安裝ffmpeg可以使用brew安裝,

首先需要安裝下brew

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

接著就可以使用brew安裝ffmpeg了

brew install ffmpeg

安裝完成後,啟動一下

ffmpeg

看到

說明安裝成功了

接下來就可以試試新增字幕了

ffmpeg -i test.mp4 -vf drawtext="fontfile=lst.ttf:textfile=text.txt:x=20+t*100:y=20:fontcolor=white:fontsize=30" -t 100 test1.mp4

然而此時卻報錯,

No such filter: 'drawtext' Error reinitializing filters! Failed to inject frame into filter network: Invalid argument Error while processing the decoded data for stream #0:0

查找了一下資料,據說是缺少freetype這個庫,

於是我就又安裝了

brew install freetype

安裝完freetype

接著使用命令:brew info ffmpeg

這下看到freetype 打勾了,繼續嘗試新增字幕,然後還是同樣的錯,大概是freetype有沒有編譯進去

於是我又嘗試

brew reinstall ffmpeg --with-freetype

重新按需重灌之後,再次嘗試新增字幕總算是可以了

使用ffplay的話需要加上--with-sdl2,一開始我看其他資料都是說--with-ffplay但是加了之後一直使用不了,後來檢視資料發現新版本ffplay依賴於sdl2,需要加上--with-sdl2才可以使用ffplay

自己電腦測試可以把所有庫都編譯進去,完整命令如下,這樣就不會老是缺少某個包

brew install ffmpeg --with-sdl2 --with-fdk-aac --with-fontconfig --with-frei0r --with-game-music-emu --with-libass --with-libbs2b --with-libcaca --with-libgsm --with-libmodplug --with-librsvg --with-libsoxr --with-libssh --with-libvidstab --with-libvorbis --with-libvpx --with-opencore-amr --with-openh264 --with-openjpeg --with-openssl --with-opus --with-rtmpdump --with-rubberband --with-sdl2 --with-snapp --with-speex --with-srt --with-tesseract --with-theora --with-tools --with-two-lame --with-wavpack --with-webp --with-x265 --with-xz --with-zeromq --with-zimg --with-chromaprint --with-libbluray --with-snappy  --with-freetype