热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Ubuntu安装X265+FFMPEG

由于要评估H.265的算力需求,

由于要评估H.265的算力需求,放下很久的编解码又重新捡起来用,不过毕竟深度参与了两年流媒体开发,把这套东西攒起来还是相对容易。

  1. 安装X265

1.1 源码下载

X264的源码可从官网下载:https://www.x265.org/downloads/

也可以从ftp下载,不过我下载时这里尚未放入最新的版本:http://ftp.videolan.org/pub/videolan/x265/

1.2 安装必要的编译工具

从源码编译X265需要安装必要的编译工具,根据自己的环境需要分别安装以下基础工具:

apt-get install build-essential

apt-get install cmake

apt-get install cmake-curses-gui

1.3 编译X265

进入X265目录下的build/linux路径,执行make-Makefiles.bash:

./make-Makefiles.bash

出现如下界面:

根据下方提示,输入c完成配置,接着输入g完成必要文件的生成。执行完之后,我们看到该目录下已经有了Makefile等文件:

接下来,执行make & make install完成安装。X265的头文件和库默认分别安装在/usr/local/include和/usr/local/lib下。

  1. 安装FFMPEG

FFMPEG的源码地址:http://www.ffmpeg.org/download.html

FFMPEG目前已经发布了6.0版本,本着节省时间的目的,我还是下载了自己比较熟悉的FFMPEG4.0。

下载完成并解压后,进入到ffmpeg目录,先进行配置:

./configure --enable-gpl \
--enable-nonfree \
--enable-version3 \
--enable-pthreads \
--enable-libx264 \ # 如果没有安装x264,这一项可以disable
--enable-libx265 \ # 使能libx265
--enable-shared \
--extra-cflags=-I/usr/local/include \ # libx265/libx264 头文件所在路径
--extra-ldflags=-L/usr/local/lib # libx265/libx264 库文件所在路径

配置完成后,make & make install完成编译和安装。为了加速编译,可使用多线程编译make -j8。

以上安装过程中,可能会遇到yasm、nasm找不到的情况:

nasm/yasm not found or too old. Use --disable-x86asm for a crippled build.

可以分别安装这些库,也可以在安装FFMPEG时将其disable掉。

3. 编码测试

完成以上x265和FFMPEG安装之后,我们可以简单测试一下x265编码,看使用是否正常:

ffmpeg -i baima.mp4 -c:v libx265 -s 1920x1080 -c:a copy -y out1.mp4

运行提示找不到某个库:

ffmpeg: error while loading shared libraries: libavdevice.so.58: cannot open shared object file: No such file or directory.

经查看,该库在/usr/local/lib中,将该路径加入到/etc/ld.so.conf文件,然后执行ldconfig使其生效。

然后再次执行上面的测试命令行,正常了:

4. 总结

本篇记录X265+FFMPEG的安装过程,以及在安装中可能遇到的小问题及解决方法。实际上,在几年前我就写过一篇X264+FFMPEG的安装过程:编译带x264的FFMPEG,过程都大同小异,有需要的同学可以参考借鉴。


推荐阅读
  • 本文介绍了在CentOS上安装Python2.7.2的详细步骤,包括下载、解压、编译和安装等操作。同时提供了一些注意事项,以及测试安装是否成功的方法。 ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • 本文介绍了在CentOS 6.4系统中更新源地址的方法,包括备份现有源文件、下载163源、修改文件名、更新列表和系统,并提供了相应的命令。 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 本文介绍了在Linux下安装Perl的步骤,并提供了一个简单的Perl程序示例。同时,还展示了运行该程序的结果。 ... [详细]
  • Ubuntu 9.04中安装谷歌Chromium浏览器及使用体验[图文]
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • imx6ull开发板驱动MT7601U无线网卡的方法和步骤详解
    本文详细介绍了在imx6ull开发板上驱动MT7601U无线网卡的方法和步骤。首先介绍了开发环境和硬件平台,然后说明了MT7601U驱动已经集成在linux内核的linux-4.x.x/drivers/net/wireless/mediatek/mt7601u文件中。接着介绍了移植mt7601u驱动的过程,包括编译内核和配置设备驱动。最后,列举了关键词和相关信息供读者参考。 ... [详细]
  • 成功安装Sabayon Linux在thinkpad X60上的经验分享
    本文分享了作者在国庆期间在thinkpad X60上成功安装Sabayon Linux的经验。通过修改CHOST和执行emerge命令,作者顺利完成了安装过程。Sabayon Linux是一个基于Gentoo Linux的发行版,可以将电脑快速转变为一个功能强大的系统。除了作为一个live DVD使用外,Sabayon Linux还可以被安装在硬盘上,方便用户使用。 ... [详细]
  • 在CentOS/RHEL 7/6,Fedora 27/26/25上安装JAVA 9的步骤和方法
    本文介绍了在CentOS/RHEL 7/6,Fedora 27/26/25上安装JAVA 9的详细步骤和方法。首先需要下载最新的Java SE Development Kit 9发行版,然后按照给出的Shell命令行方式进行安装。详细的步骤和方法请参考正文内容。 ... [详细]
  • 本文介绍了Linux Shell中括号和整数扩展的使用方法,包括命令组、命令替换、初始化数组以及算术表达式和逻辑判断的相关内容。括号中的命令将会在新开的子shell中顺序执行,括号中的变量不能被脚本余下的部分使用。命令替换可以用于将命令的标准输出作为另一个命令的输入。括号中的运算符和表达式符合C语言运算规则,可以用在整数扩展中进行算术计算和逻辑判断。 ... [详细]
  • 树莓派语音控制的配置方法和步骤
    本文介绍了在树莓派上实现语音控制的配置方法和步骤。首先感谢博主Eoman的帮助,文章参考了他的内容。树莓派的配置需要通过sudo raspi-config进行,然后使用Eoman的控制方法,即安装wiringPi库并编写控制引脚的脚本。具体的安装步骤和脚本编写方法在文章中详细介绍。 ... [详细]
  • 本文讨论了如何使用Web.Config进行自定义配置节的配置转换。作者提到,他将msbuild设置为详细模式,但转换却忽略了带有替换转换的自定义部分的存在。 ... [详细]
  • 本文总结了Linux下多线程执行shell脚本的4种方法,包括切换到工作目录执行、使用绝对路径执行、直接使用bash或sh执行。同时介绍了为什么需要加上"./"来执行脚本的原因。 ... [详细]
author-avatar
尚庆湃
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有