在Ubuntu18.04下编译出ffmpeg(支持推流H265成rtmp)

软件发布|下载排行|最新软件

当前位置:首页IT学院IT技术

在Ubuntu18.04下编译出ffmpeg(支持推流H265成rtmp)

等待的猪   2021-01-22 我要评论

Ubuntu18.04下编译libx264、libx265、libfdk_aac和ffmpeg

    • 一、编译x264库
    • 二、编译fdk-aac库
    • 三、编译x265库
    • 四、编译FFmpeg源码
    • 五、设置环境变量
    • 六、测试ffmpeg命令行推流rtsp(H265、H264)成rtmp
    • 七、Download


本文主要目的为了编译出能支持推流H265成rtmp的ffmpeg。

 

一、编译x264库

解压last_x264.tar.bz2
执行以下命令

./configure --enable-shared --enable-static --disable-asm --prefix=/home/linux-libx264
make
make install

全部成功后会在/home/linux-libx264目录下生成libx264头文件和库文件

二、编译fdk-aac库

解压fdk-aac-2.0.1.tar.gz
执行以下命令

./configure --prefix=/home/linux-libfdk_aac
make
make install

全部成功后会在/home/linux-libfdk_aac目录下生成libfdk_aac头文件和库文件

三、编译x265库

安装cmake和ccmake:

sudo apt install cmake
sudo apt-get install cmake-curses-gui

解压x265-master.zip
执行以下命令

cd x265-master/build/linux
sh make-Makefiles.bash
make 
make install

编译好的执行文件、头文件和库文件默认放在/usr/local/bin、/usr/local/include和/usr/local/lib下
把执行文件、头文件、库文件拷贝到/home/linux-libx265目录下

测试x265:进入/home/linux-libx265/bin执行命令,测试265库

cd /home/linux-libx265/bin
./x265 --input h265toh264_480x272.YUV --input-res 480x272 --fps 30 -o h265toh264_480x272.h265

x265编译参考:https://blog.csdn.net/quantum7/article/details/104040399?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_title-3&spm=1001.2101.3001.4242


四、编译FFmpeg源码

解压ffmpeg-4.1.3.tar.bz2
执行以下命令
注意: 为了编译出支持H265的rtmp,需要在执行编译前先进入libavformat更改flv.h、flvenc.c、flvdec.c(此三个文件主要新增了FLV支持H265相关的代码,文件下面链接有提供下载)

./configure --enable-shared --enable-static --disable-debug --prefix=/home/linux-ffmpeg --enable-gpl --enable-libx264 --extra-cflags=-I/home/linux-libx264/include --extra-ldflags=-L/home/linux-libx264/lib --enable-libx265 --extra-cflags=-I/home/linux-libx265/include --extra-ldflags=-L/home/linux-libx265/lib --enable-libfdk-aac --extra-cflags=-I/home/linux-libfdk_aac/include --extra-ldflags=-L/home/linux-libfdk_aac/lib --extra-libs=-ldl --enable-nonfree --disable-x86asm --enable-ffmpeg

编译参数说明:
–prefix:编译完成后的安装目录。
–enable-shared:要求编译出共享库。
–enable-static:要求编译出静态库。
–disable-debug:取消debug信息,不取消的话编译出来的库体积很大。
–disable-programs:取消生成cmd的程序 ffplay ffpserver等。
–enable-libx264 --extra-cflags=-I/home/linux-libx264/include --extra-ldflags=-L/home/linux-libx264/lib --extra-libs=-ldl:要求编译出带有264编解码库。
–enable-libx265 --extra-cflags=-I/home/linux-libx265/include --extra-ldflags=-L/home/linux-libx265/lib:要求编译出带有265编解码库。
–enable-libfdk-aac --extra-cflags=-I/home/linux-libfdk_aac/include --extra-ldflags=-L/home/linux-libfdk_aac/lib:要求编译出带有fdk_aac编解码库。
–extra-libs=-ldl
–enable-nonfree
–disable-x86asm
–enable-ffmpeg

注意:
当执行./configure时遇到ERROR: x265 not found using pkg-config这个错误时,先执行下:

sudo apt install pkg-config

然后继续编译ffmpeg

make
make install

全部成功后会在/home/linux-ffmpeg目录下生成ffmpeg头文件和库文件

五、设置环境变量

全部编译成功后,设置环境变量,如下

include /etc/ld.so.conf.d/*.conf
/home/linux-ffmpeg/lib/
/home/linux-libx264/lib/
/home/linux-libx265/lib/
/home/linux-libfdk_aac/lib/

把以上添加到/etc/ld.so.conf里面后保存退出,执行ldconfig

六、测试ffmpeg命令行推流rtsp(H265、H264)成rtmp

进入,执行命令
1、H265推流成RTMP

./ffmpeg -i rtsp://admin:admin@192.168.1.100:554/video -vcodec copy -acodec aac -f flv rtmp://192.168.1.110/live/stream


2、H264推流成RTMP

./ffmpeg -i rtsp://admin:admin@192.168.1.100:554/video2 -vcodec copy -acodec aac -f flv rtmp://192.168.1.110/live/stream

注意:192.168.1.100为IPC摄像头的IP地址,需要进入IPC参数配置界面把视频编码改成H265或H264编码格式。

http://www.dtmao.cc/news_show_628979.shtml

Copyright 2022 版权所有 软件发布 访问手机版

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 联系我们