在写代码的过程中,经常需要利用ffmpeg进行h264编解码,ffmpeg默认是不支持h264编解码的,需要在编译ffmpeg时增加支持h264编解码功能模块。
今天给大家分享下ffmpeg是如何增加h264编解码功能模块的。
问题解决
添加h264功能模块,由于默认ffmpeg是不支持h264编解码的,x264是第三方库,需要先下载编译生成库,然后在编译ffmpeg的时候添加此编译选项。
具体步骤如下:
-
(1)编译生成x264库:
下载地址:
git clone https://code.videolan.org/videolan/x264.git -
(2)编译x264库
cd x264
sudo ./configure --enable-shared –enable-static --disable-asm
sudo make
sudo make install
-
(3)安装ffmpeg
官网下载 http://ffmpeg.org/download.html下载所需要版本代码,目前我们使用的是4.0.3
http://www.ffmpeg.org/releases/ 各个历史版本下载 -
(4)下载完成后进行解压
tar –vxf ffmpeg-4.0.3.tar.xz
cd ffmpeg-4.0.3
./configure --enable-shared --disable-yasm --enable-libx264 --enable-gpl
make
make install
默认安装到/usr/local/ 目录下,也可以通过–prefix=/usr/local/进行指定目录,一般默认即可
-
(5)查询下编译的ffmpeg是否包含x264功能模块
-
(6)通过ldd 查询libavcodec.so 是否需要libx264.so 即可
如果需要增加其他外部第三方库,与增加libx264方法一样
Ffmpeg也提供了需要的地方库的下载地址:
https://johnvansickle.com/ffmpeg/release-source/
关于EasyNVR
EasyNVR是一款拥有完整、自主、可控知识产权,同时又能够具备软硬一体功能的安防互联网化流媒体服务器,能够通过简单的网络摄像机通道配置,将传统监控行业里面的高清网络摄像机IP Camera、NVR等具有RTSP、Onvif协议输出的设备接入到EasyNVR,EasyNVR能够将这些视频源的音视频数据进行拉取,转换为RTMP/HLS,进行全平台终端H5直播(Web、Android、iOS),并且EasyNVR能够将视频源的直播数据对接到第三方CDN网络,实现互联网级别的直播分发。