记Linux编译ffmpeg,支持264,265视频编码,lame音频编码

  • 首先在ffmpeg增加对265的支持代码。参照h264,增加h265(hevc) ,代码修改见参考url。
  • 主要依赖包和ffmpeg的安装过程。
wget https://pkg-config.freedesktop.org/releases/pkg-config-0.29.2.tar.gz
tar -zxvf pkg-config-0.29.2.tar.gz 
cd pkg-config-0.29.2/
./configure 
make
make check
make install

pkg-config --version  #验证



unzip x264-stable.zip   (https://www.videolan.org/developers/x264.html)
cd x264-stable
./configure --enable-shared --enable-static --disable-asm      # 未指定目录,动态库在/usr/local/lib。可添加prefix指定
make -j8 & make  install  -j8  

x264  -V #验证



git clone https://git.videolan.org/git/ffmpeg/nv-codec-headers.git
cd nv-codec-headers
make -j8 & make  install  -j8  



tar -zxvf x265_3.2.1.tar.gz  (https://www.videolan.org/developers/x265.html)
cd x265_3.2.1
cd build/linux
./make-Makefiles.bash  #若报./make-Makefiles.bash: 行 3: ccmake: 未找到命令 但目录生生成有Makefile文件,继续执行
make -j8 && make install -j8

x265 -V  #验证。动态库找不到问题,ldd x265 查询库位置:拷贝 或 软链接 或 ldconfig 配置



wget https://sourceforge.net/projects/lame/files/lame/3.100/lame-3.100.tar.gz
tar -zxvf lame-3.100.tar.gz
cd lame-3.100
./configure 
make -j8 && make install -j8

lame -V #验证



#wget http://www.ffmpeg.org/releases/ffmpeg-5.0.2.tar.gz
#tar -zxvf ffmpeg-5.0.2.tar.gz
cd ffmpeg-5.0.2/
export  PATH="$HOME/bin:$PATH" 
export  PKG_CONFIG_PATH="/usr/local/lib/pkgconfig/:/usr/lib64/pkgconfig/" 
./configure --prefix=/usr/local/ffmpeg --enable-shared --enable-static --enable-debug --enable-libx264 --enable-libx265 --enable-libmp3lame --enable-gpl --disable-optimizations --disable-stripping --enable-version3  --disable-x86asm  --extra-cflags=-I/usr/local/include --extra-ldflags=-L/usr/local/lib    #-I,-L是上面的动态库和头文件
make -j8 && make install -j8
ln -s /usr/local/ffmpeg/bin/ffmpeg /usr/bin/ffmpeg

ffmpeg -version

ffmpeg configure --help         #使用格式
ffmpeg configure -encoders      #编码  grep H.
ffmpeg configure -decoders      #解码
ffmpeg configure -protocols     #协议

###############################

ffmpeg安装目录在/usr/local/ffmpeg
ffmpeg: error while loading shared libraries: libavdevice.so.59: cannot open shared object file: No such file or directory
find动态库位置,export LD_LIBRARY_PATH 或 修改 /etc/ld.so.conf,ldconfig 生效

export LD_LIBRARY_PATH=/usr/local/lib/:/usr/local/ffmpeg/lib:$LD_LIBRARY_PATH

测试:

将视频进行h264编码,并推rtsp流

ffmpeg  -re -ss 00:00:00 -i h265.mp4 -rtsp_transport tcp -c:v libx264 -an  -b:v 995k -f rtsp rtsp://localhost/139367/e6

将视频进行h265编码,并推rtsp流

ffmpeg  -re -ss 00:00:00 -i h264.mp4 -rtsp_transport tcp -c:v libx265 -an  -b:v 995k -f rtsp rtsp://localhost/139366/e6

h265编码视频转码h264

ffmpeg -i h265.mp4 -c:v libx264 -an -b:v 995k -t 10 test.mp4

参考:ffmpeg 支持用h265编码的rtmp_ffmpeg h265 rtmp_howe8888的博客-CSDN博客

猜你喜欢

转载自blog.csdn.net/lr94V587/article/details/129836933