ffmpeg 安装(支持h.265)

ffmpeg 安装(支持h.265)安装FFMPEG需要的所有组件sudoapt-getupdatesudoapt-get-yinstallautoconfautomakebuild-essentiallibass-devlibfreetype6-dev\libsdl2-devlibtheora-devlibtoollibva-devlibvdpau-devlibvorbis-devl…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

安装FFMPEG需要的所有组件

sudo apt-get update
sudo apt-get -y install autoconf automake build-essential libass-dev libfreetype6-dev \
  libsdl2-dev libtheora-dev libtool libva-dev libvdpau-dev libvorbis-dev libxcb1-dev libxcb-shm0-dev \
  libxcb-xfixes0-dev pkg-config texinfo zlib1g-dev

为下面的安装源文件建立一个目录

mkdir ~/ffmpeg_sources

 

编译和安装

注:根据自己的需要来选择要安装的编解码器

Yasm

sudo apt-get install yasm

cd ~/ffmpeg_sources
wget http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz
tar xzvf yasm-1.3.0.tar.gz
cd yasm-1.3.0
./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin"
make
make install
make distclean

libx264

sudo apt-get install libx264-dev
cd ~/ffmpeg_sources
wget http://download.videolan.org/pub/x264/snapshots/last_x264.tar.bz2
tar xjvf last_x264.tar.bz2
cd x264-snapshot*
PATH="$HOME/bin:$PATH" ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" --enable-static --disable-opencl
PATH="$HOME/bin:$PATH" make
make install
make distclean

libx265

sudo apt-get install libx265-dev
sudo apt-get install cmake mercurial
cd ~/ffmpeg_sources
hg clone https://bitbucket.org/multicoreware/x265
cd ~/ffmpeg_sources/x265/build/linux
PATH="$HOME/bin:$PATH" cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="$HOME/ffmpeg_build" -DENABLE_SHARED:bool=off ../../source
make
make install
make distclean

libfdk-aac

sudo apt-get install libfdk-aac-dev
cd ~/ffmpeg_sources
wget -O fdk-aac.tar.gz https://github.com/mstorsjo/fdk-aac/tarball/master
tar xzvf fdk-aac.tar.gz
cd mstorsjo-fdk-aac*
autoreconf -fiv
./configure --prefix="$HOME/ffmpeg_build" --disable-shared
make
make install
make distclean

libmp3lame

sudo apt-get install libmp3lame-dev
sudo apt-get install nasm
cd ~/ffmpeg_sources
wget http://downloads.sourceforge.net/project/lame/lame/3.99/lame-3.99.5.tar.gz
tar xzvf lame-3.99.5.tar.gz
cd lame-3.99.5
./configure --prefix="$HOME/ffmpeg_build" --enable-nasm --disable-shared
make
make install
make distclean

libopus

sudo apt-get install libopus-dev
cd ~/ffmpeg_sources
wget http://downloads.xiph.org/releases/opus/opus-1.1.4.tar.gz
tar xzvf opus-1.1.4.tar.gz
cd opus-1.1.4
./configure --prefix="$HOME/ffmpeg_build" --disable-shared
make
make install
make clean
libvpx
sudo apt-get install libvpx-dev
cd ~/ffmpeg_sources
wget http://storage.proxy.ustclug.org/downloads.webmproject.org/releases/webm/libvpx-1.6.1.tar.bz2
tar xjvf libvpx-1.6.1.tar.bz2
cd llibvpx-1.6.1
PATH="$HOME/bin:$PATH" ./configure --prefix="$HOME/ffmpeg_build" --disable-examples --disable-unit-tests
PATH="$HOME/bin:$PATH" make
make install
make clean

ffmpeg

cd ~/ffmpeg_sources
wget http://ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2
tar xjvf ffmpeg-snapshot.tar.bz2
cd ffmpeg
PATH="$HOME/bin:$PATH" PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure \
  --prefix="$HOME/ffmpeg_build" \
  --pkg-config-flags="--static" \
  --extra-cflags="-I$HOME/ffmpeg_build/include" \
  --extra-ldflags="-L$HOME/ffmpeg_build/lib" \
  --bindir="$HOME/bin" \
  --enable-gpl \
  --enable-libass \
  --enable-libfdk-aac \
  --enable-libfreetype \
  --enable-libmp3lame \
  --enable-libopus \
  --enable-libtheora \
  --enable-libvorbis \
  --enable-libvpx \
  --enable-libx264 \
  --enable-libx265 \
  --enable-nonfree
PATH="$HOME/bin:$PATH" make
make install
make distclean
hash -r

 

当执行一下命令:

当执行./configure 时遇到 ERROR: x265 not found using pkg-config

PATH="$HOME/bin:$PATH" PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure \
  --prefix="$HOME/ffmpeg_build" \
  --pkg-config-flags="--static" \
  --extra-cflags="-I$HOME/ffmpeg_build/include" \
  --extra-ldflags="-L$HOME/ffmpeg_build/lib" \
  --bindir="$HOME/bin" \
  --enable-gpl \
  --enable-libass \
  --enable-libfdk-aac \
  --enable-libfreetype \
  --enable-libmp3lame \
  --enable-libopus \
  --enable-libtheora \
  --enable-libvorbis \
  --enable-libvpx \
  --enable-libx264 \
  --enable-libx265 \
  --enable-nonfree

 

解决方法;

查看  (~/ffmpeg_sources/ffmpeg/ffbuild/config.log)文件,此文件是./configure生成的log文件,直接拉到最后可以看到出问题的原因,我遇到的问题如下:

$(HOME)/lib/libx265.a(threading.cpp.o): In function `x265::Thread::start()':
threading.cpp:(.text+0x35): undefined reference to `pthread_create'
$(HOME)/ffmpeg_build/lib/libx265.a(threading.cpp.o): In function `x265::Thread::stop()':
threading.cpp:(.text+0x63): undefined reference to `pthread_join'
collect2: error: ld returned 1 exit status
ERROR: x265 not found using pkg-config

在libx265文件夹中(~/ffmpeg_sources/x265/source/common/threading.cpp)找到问题文件既 threading.cpp
//在threading.cpp中包含pthread.h :   

添加:#include “pthread.h”

然后继续执行  ./configure …   &&  make && make isntall 完成libx265的安装
完成安装后 在 $(HOME)/ffmpeg_build/lib/pkg-config文件夹下找到  XXX.pc文件并打开,在Libs.private: -lstdc++ -lm -lrt -ldl后面添加 -lpthread 包含pthread库。

继续执行既可完成ffmpeg的安装。
 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/194562.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Spring AOP详细介绍

    Spring AOP详细介绍AOP称为面向切面编程,在程序开发中主要用来解决一些系统层面上的问题,比如日志,事务,权限等待,Struts2的拦截器设计就是基于AOP的思想,是个比较经典的例子。一AOP的基本概念(1)Asp

    2022年7月2日
    25
  • PHP array_multisort()函数超详细理解

    PHP array_multisort()函数超详细理解

    2021年10月25日
    44
  • java 查看线程死锁_java 查看线程死锁

    java 查看线程死锁_java 查看线程死锁那我们怎么确定一定是死锁呢?有两种方法。1>使用JDK给我们的的工具JConsole,可以通过打开cmd然后输入jconsole打开。1)连接到需要查看的进程。2)打开线程选项卡,然后点击左下角的“检测死锁”3)jconsole就会给我们检测出该线程中造成死锁的线程,点击选中即可查看详情:从上图中我们可以看出:①在线程Thread-1中,从状态可以看出,它想申请Paper这个资源,但是这个资…

    2022年7月13日
    26
  • vm安装winme[通俗易懂]

    vm安装winme[通俗易懂]vm安装windowsme第一步,到msdn下载windowsme2.打开vm3.回到主页,点击创建新的虚拟机3.按典型4.下一步,按截图位置不要在c盘下一步完成h回车一直回车完整教程:https://www.bilibili.com/video/av9140535/我要去图书馆了,以后在把完整版发表…

    2022年9月28日
    2
  • 各种关闭eslint方法总结[通俗易懂]

    各种关闭eslint方法总结[通俗易懂]1、package.json关闭eslint直接注释掉package.json文件中eslint的配置”eslintConfig”:{“root”:true,////此项是用来告诉eslint找当前配置文件不能往父级查找”env”:{“node”:true//此项指定环境的全局变量,下面的配置指定为node环境},”extends”:[//此项是用来配置vue.js风格,就是说写代码的时候要规范的写,如果你使用vs-code我

    2022年6月14日
    126
  • 【转载】读懂IL代码就这么简单(三)完结篇

    【转载】读懂IL代码就这么简单(三)完结篇

    2021年11月21日
    39

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号