史上最全部署使用ffmpeg,十分鐘帶你一步到位【Linux】

Hi,大家好,我是一個愛冒泡的程序猿
這幾天我在搶運維小哥哥的活兒,安裝部署各個工具。
今天讓我們來看看如何在linux下安裝 多媒體工具FFmpeg吧~~(#.#)

其實安裝的過程很簡單,但就是有很多莫名其妙的問題絆住了你,嘻嘻,大家要認真按照步驟走哦,小編就落了一個步驟結果導致重新走一遍╮(╯▽╰)╭

部署環境:Linux
系統:CentOs7
時間:2020/5/8

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天ヾ(◍°∇°◍)ノ゙

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章