Hi,大家好,我是一個愛冒泡的程序猿
這幾天我在搶運維小哥哥的活兒,安裝部署各個工具。
今天讓我們來看看如何在linux下安裝 多媒體工具FFmpeg吧~~(#.#)
其實安裝的過程很簡單,但就是有很多莫名其妙的問題絆住了你,嘻嘻,大家要認真按照步驟走哦,小編就落了一個步驟結果導致重新走一遍╮(╯▽╰)╭
部署環境:Linux
系統:CentOs7
時間:2020/5/8
FFmpeg安裝部署
1、安裝libx264庫
否則推流會報錯【過來人經驗,加上不會有錯】:
Unknown encoder 'libx264'
- 推流命令:
./ffmpeg -re -i /data/ffmpeg/host/bin/test123.mp4 -vcodec libx264 -acodec copy -f rtsp -rtsp_transport tcp rtsp:/111.12.21.90/517a78c9604e42cca37a1670389087dd_攝像頭
2、克隆x264工程
git clone https://code.videolan.org/videolan/x264.git【過程較長,請耐心等待】
3、進入x264目錄
cd x264
4、生成 Makefile
./configure --prefix=/usr/softinstall/x264/ --includedir=/usr/local/include --libdir=/usr/local/lib --enable-shared
注意:如果不將include和lib安裝在/usr/local目錄,之後運行ffmpeg推流命令時可能仍然報ERROR:libx264 not found錯誤。如果已經安裝x264了發現報錯,則需要將x264.h這個文件要放在/usr/local/include下,libx264的庫文件拷貝到/usr/local/lib下,而不是指定其它目錄安裝存放。推薦安裝時直接運行以上命令。
5、make【編譯】
可能報如下錯誤:
Makefile:3: config.mak: No such file or directory
./configure
Found no assembler
Minimum version is nasm-2.13
If you really want to compile without asm, configure with --disable-asm.
make: *** [config.mak] Error 1
解決方案:
下載更新安裝nasm新版本:
su -c 'curl https://www.nasm.us/nasm.repo | tee /etc/yum.repos.d/nasm.repo'
yum install nasm
6、基於第5個問題再執行一下make
7、make install【安裝】
8、若安裝請先卸載FFmpeg
由於小編裝過FFmpeg,所以先卸載【沒安裝可直接跳到第9步】
①源碼安裝 卸載方式:進入到解壓後的目錄,執行命令
make uninstall
② 使用yum安裝,執行命令
yum -y remove ffmpeg
查看是否卸載成功,直接查一下版本號就知道啦:ffmpeg -version。如果查不到,就說明卸載成功啦
9、FFmpeg安裝
接下來進行ffmpeg安裝,有兩種方法【第二種方法放置結尾,小編強迫症(灬ꈍ ꈍ灬)】
① 方法一:使用yum安裝【推薦使用第一種,簡潔、不需要配置環境變量】
- 執行命令
yum install ffmpeg ffmpeg-devel
- 查看版本號
ffmpeg -version
- 查看ffmpeg安裝目錄/命令執行目錄【我這兒查是由於流媒體配置需要用這個目錄】
whereis ffmpeg
- 獲取到目錄爲:/usr/bin/ffmpeg
# 10、執行命令測試 (將mp4轉爲flv文件)
ffmpeg -i test123.mp4 output.flv
11、結合流媒體使用【小編使用的流媒體服務是開源項目EasyDarwin】
都是小編在項目中實戰的流程哦~歡迎大家來閱讀
12、向流媒體服務推流
ffmpeg -re -i /data/test123.mp4 -vcodec libx264 -acodec copy -f rtsp -rtsp_transport tcp rtsp:/10.0.0.103/Teststream
流媒體收到數據,Success!
13、使用VLC工具查看是否可以播放即可
下面是第9條第二個方法,使用源碼安裝【這種太繁瑣了,可以看看了解一下】
9 、② 哼哼哈嘿
- 首先確認自己安裝的系統,我這兒是CentOS7
[root@host103 data]# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)
[root@host103 data]#
- 在官網http://ffmpeg.org/download.html#releases下載源碼包,並上傳至Linux服務器
- 進入該目錄:
cd /data/ffmpeg/
- 解壓該源碼包:tar -jxvf ffmpeg-4.2.2.tar.bz2
tar -jxvf ffmpeg-4.2.2.tar.bz2
- 進入安裝後的目錄下安裝yasm(如已安裝跳過此步驟)
cd ffmpeg-4.2.2/
yum install yasm
-
下載過程中遇到Is this ok,選擇y,看到Complete! yasm就安裝好了
-
安裝完yasm後,執行命令
./configure --enable-shared --prefix=/usr/ffmpeg
- 執行make命令,這個過程稍長,請耐心等待
make
- 執行make install(安裝)命令
make install
- 修改文件/etc/id.so.conf
vim /etc/ld.so.conf
在文件後面添加 /usr/ffmpeg/lib/
執行ldconfig命令使其生效
ldconfig
- 配置環境變量(nginx不可以使用ffmpeg)
vim /etc/profile
使用 vim /etc/profile命令打開profile文件,在文件末添加環境變量
#set ffmpeg environment
PATH=$PATH:/usr/ffmpeg/bin
export PATH
隨後執行 source /etc/profile使配置生效
source /etc/profile
- 添加ffmpeg的軟鏈接(適合nginx調用使用)
#ln -s /usr/ffmpeg/bin/ffmpeg /usr/local/bin/
- 查看是否配置成功
用命令ffmpeg -version查看,出現下圖信息即安裝成功
注意:會報錯,提示庫找不到。
libavdevice.so.56: cannot open shared object file: No such file or directory
解決:修改文件/etc/ld.so.conf 內容增加/usr/local/ffmpeg/lib/
[root@localhost ffmpeg-3.4]# vim /etc/ld.so.conf
include ld.so.conf.d/*.conf
/usr/local/ffmpeg/lib/
參考文章:
https://www.cnblogs.com/leoyang63/articles/12551108.html
掰掰~ 奔向阿里的第12天ヾ(◍°∇°◍)ノ゙