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

在Ubuntu18.04下编译出ffmpeg(支持推流H265成rtmp)的更多相关文章

  1. Ubuntu18.04下编译安装Guitarix 0.37.3

    准备工作 源文件下载 https://sourceforge.net/projects/guitarix/files/guitarix/ 安装依赖. 参考 https://sourceforge.ne ...

  2. VoIP应用在Ubuntu 14.04下编译FFmpeg libX264及PJSIP

    PJSIP是一个开源的SIP协议栈.它支持多种SIP的扩展功能,可说算是最目前流行的SIP协议栈之一了.  它实现了SIP.SDP.RTP.STUN.TURN和ICE.PJSIP作为基于SIP的一个多 ...

  3. Ubuntu16.04下编译安装OpenCV3.4.0(C++ & python)

    Ubuntu16.04下编译安装OpenCV3.4.0(C++ & python) 前提是已经安装了python2,python3 1)安装各种依赖库 sudo apt-get update ...

  4. ubuntu18.04下安装mysql后无法用mysqlworkbench访问

    问题描述:我在ubuntu18.04下执行以下命令安装mysql时遇到了mysqlworkbench无法连接root用户的问题.ubuntu18.04下默认安装mysql时是5.7版本的,但是5.7版 ...

  5. Ubuntu18.04下的音频录制和编辑软件Ardour及QjackCtl(jackd gui)

    Ardour 是一个Linux和OSX下的多音轨录制和数字音频编辑软件. 需要配合ALSA或者JACK总线使用. 快速入门 http://brunoruviaro.github.io/ardour4- ...

  6. Ubuntu18.04下的 Android Studio 3.1.2

    Android Studio安装 参考官网上的安装说明 # 安装依赖 :i386 lib32z1 libbz2-1.0:i386 安装openjdk (Update 2018-08-21: 这次重装U ...

  7. ubuntu18.04下挂载网络文件系统失败【学习笔记】

    作者:庄泽彬(欢迎转载,请注明作者) PC:    ubuntu18.04 说明:  之前ubuntu16.04下搭建的环境,开发板挂载网络文件系统是ok的,但是换到ubuntu18.04在启动的时候 ...

  8. Ubuntu 16.04下编译安装Apache2.4和PHP7结合

    Ubuntu 16.04下编译安装Apache2.4和PHP7结合,并安装PDOmysql扩展. 1.编译安装apache2.4.20 1 第一步: ./configure --prefix=/usr ...

  9. Ubuntu18.04下配置深度学习开发环境

    在Ubuntu18.04下配置深度学习/机器学习开发环境 1.下载并安装Anaconda 下载地址:https://www.anaconda.com/distribution/#linux 安装步骤: ...

随机推荐

  1. js下 Day15、正则表达式

    一.正则表达式简介 什么是正则表达式 正则表达式,也叫规则表达式, 是对字符串操作的一种逻辑公式. 为什么要使用正则? 1.使用极简单的方式,去匹配字符串 2.速度快,代码少 3.在复杂的字符串中快速 ...

  2. [日常摸鱼]poj2778 DNA Sequence

    这题太神啦 题意:求长度为$n$的不包含给定DNA序列的DNA序列个数,给定的不超过10个 构建出Trie图,用$danger[i]$来表示不能走到$i$,对于DNA序列结尾的结点$danger$设为 ...

  3. vscode php转到定义

    点击再settings.json 中编辑 添加这一行,内容为php的安装路径

  4. 超简单的 Docker部署 SpringBoot项目 步骤

    很久之前就用过,一直没有好好写篇博客,今天就总结一下 创建一个 SpringBoot项目 创建一个SpringBoot项目并打成jar包,结构如图 编写 Dockerfile文件 FROM java: ...

  5. mysql锁机制 读书笔记

    目录 MySQL锁机制 1.什么是锁 2.lock与latch 3.InnoDB存储引擎中的锁 3.1锁的类型 3.2 一致性非锁定读 3.3 一致性锁定读 4 锁的算法 4.1行锁的3中算法 4.2 ...

  6. java中产品分类返回给前台页面 后台数据组装

    public ResultBean getSpfl(Integer yyb) { ResultBean res = new ResultBean(); try { JSONArray data = n ...

  7. java 反射随记

    记录一下有关 Class 对象的相关方法: 1.获取 Class 对象的三个方法: ⑴ 使用 Class.forName("全限定类名") ,参数是该类的全限定类名,可拓展性强: ...

  8. javaweb登陆实例

    1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncod ...

  9. 手写系列:call、apply、bind、函数柯里化

    少废话,show my code call 原理都在注释里了 // 不覆盖原生call方法,起个别名叫myCall,接收this上下文context和参数params Function.prototy ...

  10. 重入锁ReentrantLock