Java 零基础入门物联网(1):Modbus 协议详解

前言

当linux用户没有root权限时,可通过源码编译安装ffmpeg等工具,通过手动设置安装路径实现安装到用户指定目录下。然而ffmpeg的linux源码是不包含x264和x265编码器的,一旦处理到h264或h265的视频的时候就会报错,因此需要手动下载安装相应的库。本文记录了我的安装过程以及踩过的坑。

安装步骤

yasm

1.下载链接
2. 解压 tar -xzvf yasm-1.3.0.tar.gz
3. 安装

cd yasm-1.3.0
./configure --prefix=yasm安装路径
makemake -j8
make install
vi ~/.bashrc
末行添加 export PATH=yasm安装路径/bin:$PATH
source ~/.bashrc

nasm

该步骤可选,如果装 x264提示Found no assembler Minimum version is yasm-1.2.0. If you really want to compile without asm, configure with --disable-asm了,就回来装nasm吧,我看了x264的configure文件才发现里面没有enable-yasm这个参数。

  1. 下载链接
  2. 解压,tar -jxvf nasm-2.15.tar.bz2
  3. 安装
cd nasm-2.15.tar.bz2
./configure --prefix=nasm安装路径
make install
vi ~/.bashrc
末行添加 export PATH=nasm安装路径/bin:$PATH
source ~/.bashrc

x264

  1. 下载libx264(下载链接)
  2. 解压 tar -jxvf x264-master.tar.bz2
  3. 安装
cd  x264-master
./configure --prefix=x264安装路径  --enable-shared --enable-static --enable-yasm
makemake -j8
make install

x265

  1. 下载libx265(下载链接)。如果网址挂了可能是仓库改名字了,进https://bitbucket.org/multicoreware搜x265找到对应仓库,进入仓库后在左侧菜单找到download下载最新的x265压缩包
  2. 解压 x265_3.5.tar.gz
  3. 安装
cd x265_3.5/build/linux
#注意这里会进入交互模式,按照界面下方的文字指导操作,注意修改安装路径,修改后按c键进行设置,再按g键生成。
./make-Makefiles.bash
makemake -j8
make install

vi ~/.bashrc
末行添加 export PKG_CONFIG_PATH=x265安装路径/lib/pkgconfig 和 export LD_LIBRARY_PATH=x265安装路径/lib:$LD_LIBRARY_PATH
source ~/.bashrc 

注意:这里如果没加环境变量export PKG_CONFIG_PATH=x265安装路径/lib/pkgconfig会报错ERROR: x265 not found using pkg-config,没加export LD_LIBRARY_PATH=x265安装路径/lib:$LD_LIBRARY_PATH会报错libx265.so.199: cannot open shared object file: No such file or directory

ffmpeg

  1. 下载ffmpeg,下载链接
  2. 解压 tar -jxvf ffmpeg-snapshot.tar.bz2
  3. 安装,ffmpeg的make相当慢…
cd ffmpeg-snapshot
./configure --prefix=ffmpeg安装路径 --enable-shared --enable-nonfree --enable-libfreetype --enable-yasm --enable-libx264 --enable-libx265 --enable-gpl --enable-pthreads --extra-cflags=-I/x264安装路径/include --extra-ldflags=-L/x264安装路径/lib --extra-cflags=-I/x265安装路径/include --extra-ldflags=-L/x265安装路径/lib
makemake -j8
make install
vi ~/.bashrc
末行添加 export PATH=ffmpeg安装路径/bin:$PATHexport LD_LIBRARY_PATH=$LD_LIBRARY_PATH:ffmpeg安装路径/lib
source ~/.bashrc

然后打印一下 ffmpeg --version,有版本信息就是成功了,基本大功告成。

遇到的问题及解决办法

  1. 运行ffmpeg处理视频时,如果遇到 Error while opening encoder for output stream #0.0 - maybe incorrect parameters such as bit_rate, rate, width or height,有可能是输出包含音频流和视频流,但是没有对音频流进行编码,解决方法:在ffmpeg命令里加入-acodec copy。eg:ffmpeg -i input.mkv -vf scale=720:-1 -acodec copy -threads 12 output.mkv
  2. 错误:libx265.so.199: cannot open shared object file: No such file or directory,解决办法:环境变量加入export LD_LIBRARY_PATH=x265安装路径/lib:$LD_LIBRARY_PATH
  3. 错误:ERROR: x265 not found using pkg-config,解决办法:加环境变量export PKG_CONFIG_PATH=x265安装路径/lib/pkgconfig
  4. 错误:can not be used when making a shared object; recompile with -fPIC,解决办法:make clean,然后重新make。

猜你喜欢

转载自juejin.im/post/7218459472919150650