本文主要是介绍EasyNVR RTSP转RTMP-HLS-FLV流媒体服务器前端构建之:ffmpeg是如何增加h264编解码功能模块的,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
背景分析
EasyNVR主要功能包括通过RTSP协议接入摄像机、支持Onvif协议,支持云台控制,焦距缩放、全平台(web/Android/iOS/微信/H5)观看,支持RTMP、HLS、http-flv协议、支持CDN接入,直接在每一个通道配置填写独立的阿里云/腾讯云CDN的RTMP推流地址即可、支持全网页配置管理、支持用户管理,权限验证、支持录像点播、录像计划、时间录像检索播放。
在写代码的过程中,经常需要利用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是一款拥有完整、自主、可控知识产权,同时又能够具备软硬一体功能的安防互联网化流媒体服务器,能够通过简单的网络摄像机通道配置,将传统监控行业里面的高清网络摄像机IP Camera、NVR等具有RTSP、Onvif协议输出的设备接入到EasyNVR,EasyNVR能够将这些视频源的音视频数据进行拉取,转换为RTMP/HLS,进行全平台终端H5直播(Web、Android、iOS),并且EasyNVR能够将视频源的直播数据对接到第三方CDN网络,实现互联网级别的直播分发。
这篇关于EasyNVR RTSP转RTMP-HLS-FLV流媒体服务器前端构建之:ffmpeg是如何增加h264编解码功能模块的的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!