在Ubuntu18.04下编译出ffmpeg(支持推流H265成rtmp)
等待的猪 人气:0Ubuntu18.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
加载全部内容