最新Centos7.6安装ffmpeg手记

最新Centos7.6安装ffmpeg手记

最近服务器升级到了centos7.6版本,升级后发现过去的一部分软件安装方式在新版本中用起来很麻烦,而且很多软件在centos7.6中因为缺少库文件的支持(或者被新版本替换)而导致安装失败。因此本篇笔记不在于ffmpeg的安装,而在于更换软件源。ffmpeg的安装仅仅是个例子。

在此之前波波尝试了将软件源更新为阿里镜像、网易镜像,均发现相关库文件较少,最起码执行“yum list *ffmpeg*”的时候发现ffmpeg的库文件是没有的。

第一步:在CentOS 7上启用Nux Dextop repo

它是第三方RPM存储库,包含许多用于CentOS版本的流行多媒体相关软件包。只有在服务器中启用了EPEL repo时,此repo才起作用。安装方法如下:

  1. yum -y install epel-release
  2. // ---centos7执行下面两行---
  3. rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro
  4. rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm
  5. // ---centos6执行下面两行---
  6. rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro
  7. rpm -Uvh http://li.nux.ro/download/nux/dextop/el6/x86_64/nux-dextop-release-0-2.el6.nux.noarch.rpm

第二步:安装ffmpeg

  1. yum install ffmpeg ffmpeg-devel -y

安装完成我们可以在命令行键入“ffmpeg -h”查看下帮助菜单,找一个测试视频转码试试。具体命令不再细说。

除了这种安装方式之外,我们当然还可以用最保守的编译安装。不过说实话有时候找支持库真浪费时间。

  1. #安装必要的依赖库
  2. yum install autoconf automake bzip2 cmake freetype-devel gcc gcc-c++ git libtool make mercurial pkgconfig zlib-devel cmake hg numactl numactl-devel freetype freetype-devel freetype-demos

建一个目录用于存放ffmpeg的源代码,比如/data/ffmpeg_resource。用git cloune或wget或curl获取ffmpeg的源代码。

先安装相关支持库。

  1. #编译前先卸载我们刚刚的yum安装
  2. yum remove ffmpeg ffmpeg-devel nasm -y
  3. cd /data/ffmpeg_sources   //切换目录
  4. #安装nsam
  5.  curl -O -L http://www.nasm.us/pub/nasm/releasebuilds/2.13.02/nasm-2.13.02.tar.bz2
  6. tar xjvf nasm-2.13.02.tar.bz2
  7. cd nasm-2.13.02
  8. ./autogen.sh
  9. ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin"
  10. make
  11. make install
  12. #安装yasm
  13. curl -O -L http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz
  14. tar xzvf yasm-1.3.0.tar.gz
  15. cd yasm-1.3.0
  16. ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin"
  17. make
  18. make install
  19. #安装libx264
  20. git clone --depth 1 http://git.videolan.org/git/x264
  21. cd x264
  22. PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" --enable-static
  23. make
  24. make install
  25. #安装libx265
  26. hg clone https://bitbucket.org/multicoreware/x265
  27. cd /data/ffmpeg_sources/x265/build/linux
  28. cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="$HOME/ffmpeg_build" -DENABLE_SHARED:bool=off ../../source
  29. make
  30. make install
  31. #安装libfdk_aac
  32. cd /data/ffmpeg_sources
  33. git clone --depth 1 https://github.com/mstorsjo/fdk-aac
  34. cd fdk-aac
  35. autoreconf -fiv
  36. ./configure --prefix="$HOME/ffmpeg_build" --disable-shared
  37. make
  38. make install
  39. #安装libmp3lame
  40. curl -O -L http://downloads.sourceforge.net/project/lame/lame/3.100/lame-3.100.tar.gz
  41. tar xzvf lame-3.100.tar.gz
  42. cd lame-3.100
  43. ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" --disable-shared --enable-nasm
  44. make
  45. make install
  46. #安装libopus
  47. cd ..
  48. curl -O -L https://archive.mozilla.org/pub/opus/opus-1.2.1.tar.gz
  49. tar xzvf opus-1.2.1.tar.gz
  50. cd opus-1.2.1
  51. ./configure --prefix="$HOME/ffmpeg_build" --disable-shared
  52. make
  53. make install
  54. #安装libogg
  55. cd /data/ffmpeg_sources
  56. curl -O -L http://downloads.xiph.org/releases/ogg/libogg-1.3.3.tar.gz
  57. tar xzvf libogg-1.3.3.tar.gz
  58. cd libogg-1.3.3
  59. ./configure --prefix="$HOME/ffmpeg_build" --disable-shared
  60. make
  61. make install
  62. #安装libvorbis
  63. cd /data/ffmpeg_sources
  64. curl -O -L http://downloads.xiph.org/releases/vorbis/libvorbis-1.3.5.tar.gz
  65. tar xzvf libvorbis-1.3.5.tar.gz
  66. cd libvorbis-1.3.5
  67. ./configure --prefix="$HOME/ffmpeg_build" --with-ogg="$HOME/ffmpeg_build" --disable-shared
  68. make
  69. make install
  70. #安装libvpx
  71. cd /data/ffmpeg_sources
  72. wget https://github.com/webmproject/libvpx/archive/v1.7.0.tar.gz
  73. tar zxvf v1.7.0.tar.gz
  74. mv libvpx-1.7.0 libvpx
  75. cd libvpx
  76. ./configure --prefix="$HOME/ffmpeg_build" --with-ogg="$HOME/ffmpeg_build" --disable-shared
  77. make
  78. make install

虽然波波分享了编译安装的方法,但比起yum安装还是建议大家选第一种,编译真是太浪费时间,现在是下午16:37折腾了差不多1天了。中间还重装了一次服务器系统。

接下来编译安装FFMPEG:

  1. cd /data/ffmpeg_sources
  2. curl -O -L https://ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2
  3. tar xjvf ffmpeg-snapshot.tar.bz2
  4. cd ffmpeg
  5. PATH="$HOME/bin:$PATH" PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure \
  6.   --prefix="$HOME/ffmpeg_build" \
  7.   --pkg-config-flags="--static" \
  8.   --extra-cflags="-I$HOME/ffmpeg_build/include" \
  9.   --extra-ldflags="-L$HOME/ffmpeg_build/lib" \
  10.   --extra-libs=-lpthread \
  11.   --extra-libs=-lm \
  12.   --bindir="$HOME/bin" \
  13.   --enable-gpl \
  14.   --enable-libfdk_aac \
  15.   --enable-libfreetype \
  16.   --enable-libmp3lame \
  17.   --enable-libopus \
  18.   --enable-libvorbis \
  19.   --enable-libvpx \
  20.   --enable-libx264 \
  21.   --enable-libx265 \
  22.   --enable-nonfree
  23. make  -j6  && make install
  24. hash -r

终于折腾完了,记得hash -r这一行一定要加上。否则识别不了。

 

波波
你想把广告放到这里吗?

发表评论

您必须 登录 才能发表留言!