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. Kafka客户端编程入门介绍

    1.maven依赖 <dependency> <groupId>org.apache.kafka</groupId> <artifactId>kafka ...

  2. js上 十、循环语句-1:

    十.循环语句-1: 非常之重要. 作用:重复执行一段代码 ü while ü do...while ü for 它们的相同之处,都能够实现循环. 不同的地方,格式不一样,使用的场景略有不同. #10- ...

  3. js上 七、表达式

    (1).什么是表达式 任何有值的内容都是表达式 一个表达式会产生一个值,它可以放在任何需要一个值的地方,比如a=3中的3就是一个表达式,a=3整体也可以作为一个表达式. 常见表达式有如下几种: ü 原 ...

  4. [日常摸鱼]luogu3398仓鼠找sugar-树链剖分

    https://www.luogu.org/problemnew/show/P3398 题意:一颗$n$个点的树,$q$次询问两条链$(a,b),(c,d)$是否有交 树剖裸题orz 一开始的想法是求 ...

  5. Eureka系列(七) 服务下线Server端具体实现

    服务下线的大致流程图   下面这张图很简单地描述了Server端服务下线的大致流程: 服务下线Server端实现源码分析   Eureka服务实现是通过Server端InstanceResource ...

  6. NO.001- 简说 Java 并发编程史

    这篇文章是Java并发编程思想系列的第一篇,主要从理解Java并发编程历史的原因和Java并发演进过程两部分,以极简地回溯并发编程的历史,帮助大家从历史这个角度去了解一门语言一个特性的演进.对历史理解 ...

  7. .Net MVC Redirect出现:服务器无法在已发送 HTTP 标头之后设置状态解决方案

    使用过滤器控制权限时,若无权则跳转到无权页面,但是每次跳转都会出现 ERROR - System.Web.HttpException (0x80004005): 服务器无法在已发送 HTTP 标头之后 ...

  8. (四)linux的常用环境变量及设置

    一.为什么要设置环境变量 1.环境变量能解决什么问题? 你是否经历过输入$python命令后,屏幕上打印出python:command not found的尴尬:每一次都要输入$/home/tools ...

  9. (四)、vim的缓冲区、标签、窗口操作

    1.缓冲区的基本操作 a.文件与缓冲区的区别 vim file1   打开一个文件时,其实是从磁盘中读取文件到内存中,文件的内容会被加载到缓冲区中, 这个缓冲区在一个窗口上显示,所以他是一个已激活的缓 ...

  10. ADF 第八篇:传递参数(Pipeline的Parameter和Variable,Activity的output)和应用表达式

    Azure Data Factory传递参数的方式主要有两种,通过Pipeline的Parameter和Variable来传递参数,通过Activity的输出来传递参数.要在Activity中引用Pa ...