amd和arm安装ffmpeg踩坑报错处理

2023-05-16

一、amd安装ffmpeg(yum安装)

系统版本:CentOS Linux release 7.2.1511 (Core) 

内核版本:3.10.0-862.el7.x86_64 #1 SMP Fri Apr 20 16:44:24 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

Nux Dextop文档:http://li.nux.ro/repos.html

# 安装 epel源
yum -y install epel-release 
# 安装 nux-dextop
rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm
# 安装 ffmpeg
yum install -y ffmpeg ffmpeg-devel yasm 
# 检验安装成功
ffmpeg -version

 

 

 二、arm安装ffmpeg(编译安装)

因为Nux Dextop库没有arm的包,并且不使用yum安装的话,会缺少很多依赖包

# 安装yum源
yum install -y epel-release
####(编译需要的包 可以编译后删除) 
yum -y install gcc cmake gcc-c++

# 一些报错处理(同样适用于amd编译安装)

# --enable-gnutls
# 解决 ERROR: gnutls not found using pkg-config
yum -y install gnutls-devel
# --enable-ladspa 
# 解决 ERROR: ladspa.h header not found
yum -y install ladspa-devel
# --enable-libass
# 解决 ERROR: libass not found using pkg-config
yum -y install libass-devel
# --enable-libgsm
# 解决 ERROR: libgsm not found
yum -y install gsm-devel
# --enable-libmp3lame
# 解决 ERROR: libmp3lame >= 3.98.3 not found
yum -y install lame-devel
# --enable-libopenjpeg 
# 解决 ERROR: libopenjpeg not found
yum -y install openjpeg-devel
# --enable-libopus
# 解决 ERROR: opus not found using pkg-config
yum -y install opus-devel
# --enable-libpulse
# 解决 ERROR: libpulse not found using pkg-config
yum -y install pulseaudio-libs-devel
# --enable-libschroedinger
# 解决 ERROR: schroedinger-1.0 not found using pkg-config
yum -y install schroedinger-devel
# --enable-libsoxr
# 解决 ERROR: libsoxr not found
yum -y install soxr-devel
# --enable-libspeex 
# 解决 ERROR: speex not found using pkg-config
yum -y install speex-devel
# --enable-libtheora
# 解决 ERROR: libtheora not found
yum -y install libtheora-devel
# --enable-libv4l2
# 解决 ERROR: libv4l2 not found using pkg-config
yum -y install libv4l-devel
# --enable-libvorbis
# 解决 ERROR: libvorbis not found
yum -y install libvorbis-devel
# --enable-openal
# 解决 ERROR: openal not found
yum -y install openal-devel
# --enable-libdc1394
# 解决 ERROR: libdc1394-2 not found using pkg-config
yum -y install libdc1394-devel
# --enable-libcdio
# 解决 ERROR: No usable libcdio/cdparanoia found
yum -y install libcdio-paranoia-devel
# --enable-x11grab
# 解决 ERROR: Xlib not found
yum -y install libX11-devel
# 解决 make install后没有ffplay命令的问题
yum -y install SDL-devel
# 安装yasm
yum -y install yasm
# --enable-libfdk-aac 
# 解决 ERROR: libfdk_aac not found
# 包下载地址 https://sourceforge.net/projects/opencore-amr/files/fdk-aac/
tar xf fdk-aac-0.1.6.tar.gz
cd fdk-aac-0.1.6/
./configure && make -j`nproc`&& make install -j`nproc`
cd -
rm -f fdk-aac-0.1.6.tar.gz 
rm -rf fdk-aac-0.1.6/
# --enable-libopencore-amrnb 
# --enable-libopencore-amrwb
# 解决 ERROR: libopencore_amrnb not found    
# 解决 ERROR: libopencore_amrweb not found
# 包下载地址 https://sourceforge.net/projects/opencore-amr/files/opencore-amr/
tar xf opencore-amr-0.1.5.tar.gz
cd opencore-amr-0.1.5
./configure && make -j`nproc`&& make install -j`nproc`
cd -
rm -f opencore-amr-0.1.5.tar.gz
rm -rf opencore-amr-0.1.5
# --enable-libvo-amrwbenc
# 解决 ERROR: libvo_amrwbenc not found
# 包下载地址 https://sourceforge.net/projects/opencore-amr/files/vo-amrwbenc/
tar xf vo-amrwbenc-0.1.3.tar.gz 
cd vo-amrwbenc-0.1.3/
./configure && make -j`nproc`&& make install -j`nproc`
cd -
rm -f vo-amrwbenc-0.1.3.tar.gz
rm -rf vo-amrwbenc-0.1.3/
# --enable-libxvid 
# 解决 ERROR: libxvid not found
# 包下载地址:https://ftp.osuosl.org/pub/blfs/conglomeration/xvidcore/
tar xf xvidcore-1.3.7.tar.gz 
cd xvidcore/build/generic/
./configure --build=arm-linux && make -j`nproc`&& make install -j`nproc`
cd -
rm -f xvidcore-1.3.7.tar.gz
rm -rf xvidcore
# --enable-libx264
# 解决 ERROR: libx264 not found
# 包下载地址 http://ftp.videolan.org/pub/videolan/x264/snapshots/
tar xf x264-snapshot-20191217-2245.tar.bz2 
cd x264-snapshot-20191217-2245
./configure --enable-shared && make -j`nproc`&& make install -j`nproc`
cd -
rm -f x264-snapshot-20191217-2245.tar.bz2
rm -rf x264-snapshot-20191217-2245
# --enable-libx265
# 解决 ERROR: x265 not found using pkg-config
# 代码仓库克隆地址 hg clone http://hg.videolan.org/x265
# 源码地址:http://hg.videolan.org/x265/file/tip
# x265.tar.gz 是clone 源码后tar打包生成的
# 文档地址:https://www.videolan.org/developers/x265.html
# 解决 bash: hg: command not found   
# yum -y install hg
tar xf x265.tar.gz 
cd x265/build/arm-linux/
cmake ../../source
make -j`nproc` && make install -j`nproc`
cd -
rm -f x265.tar.gz
rm -rf x265
# 此路径为.pc文件所在路径
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
# 编译安装的so文件会去到/usr/local/lib  需要加到ld.so.conf文件中加载
echo "/usr/local/lib" >> /etc/ld.so.conf
ldconfig
# ffmpeg
# 包下载地址:http://ffmpeg.org/releases/
tar xf ffmpeg-2.8.15.tar.gz
cd ffmpeg-2.8.15
./configure --prefix=/usr --bindir=/usr/bin --datadir=/usr/share/ffmpeg --incdir=/usr/include/ffmpeg --libdir=/usr/lib64 --mandir=/usr/share/man --arch=aarch64 \
	--optflags='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic' \
	--extra-ldflags='-Wl,-z,relro ' --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libvo-amrwbenc --enable-version3 --enable-bzlib \
	--disable-crystalhd --enable-gnutls --enable-ladspa --enable-libass --enable-libcdio --enable-libdc1394 --enable-libfdk-aac --enable-nonfree --disable-indev=jack \
	--enable-libfreetype --enable-libgsm --enable-libmp3lame --enable-openal --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libschroedinger \
	--enable-libsoxr --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libv4l2 --enable-libx264 --enable-libx265 --enable-libxvid --enable-x11grab \
	--enable-avfilter --enable-avresample --enable-postproc --enable-pthreads --disable-static --enable-shared --enable-gpl --disable-debug --disable-stripping \
	--shlibdir=/usr/lib64 --enable-runtime-cpudetect
make -j`nproc` && make install -j`nproc`
cd -
rm -f ffmpeg-2.8.15.tar.gz
rm -rf ffmpeg-2.8.15

 

三、dockerfile(arm)

基于centos:7安装

系统版本:CentOS Linux release 7.9.2009 (AltArch)

内核版本:4.19.90-2003.4.0.0036.oe1.aarch64 #1 SMP Mon Mar 23 19:06:43 UTC 2020 aarch64 aarch64 aarch64 GNU/Linux

FROM centos:7

ENV PKG_CONFIG_PATH=/usr/local/lib/pkgconfig

# ffmpeg 依赖的包
ADD x265.tar.gz /tmp
ADD ffmpeg-2.8.15.tar.gz /tmp
ADD fdk-aac-0.1.6.tar.gz /tmp
ADD xvidcore-1.3.7.tar.gz /tmp
ADD vo-amrwbenc-0.1.3.tar.gz /tmp 
ADD opencore-amr-0.1.5.tar.gz /tmp
ADD x264-snapshot-20191217-2245.tar.bz2 /tmp

RUN yum install -y epel-release \
    # 安装编译工具
    && yum -y install gcc cmake gcc-c++ \
    # 安装 ffmpeg 依赖
    && yum -y install \
    gnutls-devel \
    ladspa-devel \
    libass-devel \
    gsm-devel \
    lame-devel \
    openjpeg-devel \
    opus-devel \
    pulseaudio-libs-devel \
    schroedinger-devel \
    soxr-devel \
    speex-devel \
    libtheora-devel \
    libv4l-devel \
    libvorbis-devel \
    openal-devel \
    libdc1394-devel \
    libcdio-paranoia-devel \
    libX11-devel \
    SDL-devel \
    yasm \
    # 编译安装 fdk-aac
    && cd /tmp/fdk-aac-0.1.6 \
    && ./configure && make -j`nproc` && make install -j`nproc` \
    && rm -rf /tmp/fdk-aac-0.1.6 \
    # 编译安装 opencore-amr
    && cd /tmp/opencore-amr-0.1.5 \
    && ./configure && make -j`nproc` && make install -j`nproc` \
    && rm -rf /tmp/opencore-amr-0.1.5 \
    # 编译安装 vo-amrwbenc
    && cd /tmp/vo-amrwbenc-0.1.3 \
    && ./configure && make -j`nproc` && make install -j`nproc` \
    && rm -rf /tmp/vo-amrwbenc-0.1.3 \
    # 编译安装 xvidcore
    && cd /tmp/xvidcore/build/generic \
    && ./configure --build=arm-linux && make -j`nproc` && make install -j`nproc` \
    && rm -rf /tmp/xvidcore \
    # 编译安装 x264
    && cd /tmp/x264-snapshot-20191217-2245 \
    && ./configure --enable-shared && make -j`nproc` && make install -j`nproc` \
    && rm -rf /tmp/x264-snapshot-20191217-2245 \
    # 编译安装 x265
    && cd /tmp/x265/build/arm-linux \
    && cmake ../../source \
    && make -j`nproc` && make install -j`nproc` \
    && rm -rf /tmp/x265 \
    # 编译安装的so文件会去到 /usr/local/lib 需要加到ld.so.conf文件中加载
    && echo "/usr/local/lib" >> /etc/ld.so.conf && ldconfig \
    # 编译 ffmpeg
    && cd /tmp/ffmpeg-2.8.15 \
    && ./configure \
    --prefix=/usr \
    --bindir=/usr/bin \
    --datadir=/usr/share/ffmpeg \
    --incdir=/usr/include/ffmpeg \
    --libdir=/usr/lib64 \
    --mandir=/usr/share/man \
    --arch=aarch64 \
    --optflags='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic' \
    --extra-ldflags='-Wl,-z,relro ' \
    --enable-libopencore-amrnb \
    --enable-libopencore-amrwb \
    --enable-libvo-amrwbenc \
    --enable-version3 \
    --enable-bzlib \
    --disable-crystalhd \
    --enable-gnutls \
    --enable-ladspa \
    --enable-libass \
    --enable-libcdio \
    --enable-libdc1394 \
    --enable-libfdk-aac \
    --enable-nonfree \
    --disable-indev=jack \
    --enable-libfreetype \
    --enable-libgsm \
    --enable-libmp3lame \
    --enable-openal \
    --enable-libopenjpeg \
    --enable-libopus \
    --enable-libpulse \
    --enable-libschroedinger \
    --enable-libsoxr \
    --enable-libspeex \
    --enable-libtheora \
    --enable-libvorbis \
    --enable-libv4l2 \
    --enable-libx264 \
    --enable-libx265 \
    --enable-libxvid \
    --enable-x11grab \
    --enable-avfilter \
    --enable-avresample \
    --enable-postproc \
    --enable-pthreads \
    --disable-static \
    --enable-shared \
    --enable-gpl \
    --disable-debug \
    --disable-stripping \
    --shlibdir=/usr/lib64 \
    --enable-runtime-cpudetect \
    && make -j`nproc` && make install -j`nproc` \
    && rm -rf /tmp/ffmpeg-2.8.15 \
    # 删除编译工具 清除yum缓存
    && yum -y remove gcc cmake gcc-c++ \
    && yum clean all

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

amd和arm安装ffmpeg踩坑报错处理 的相关文章

  • ARM + gcc:不要使用一大块 .rodata 部分

    我想使用 gcc 编译一个程序 并针对 ARM 处理器进行链接时间优化 当我在没有 LTO 的情况下编译时 系统会被编译 当我启用 LTO 时 使用 flto 我收到以下汇编错误 错误 无效的文字常量 池需要更近 环顾网络 我发现这与我系统
  • 使用 ffmpeg 在纯色背景上叠加延时视频

    我有很多名为的主页屏幕截图homescreen000001 png homescreen000002 png等 我正在尝试使用 ffmpeg 创建这些图像的延时视频 当我运行以下命令时 它通常可以正常工作 ffmpeg f image2 i
  • 如何在 PHP 中运行 ffmpeg 命令

    我需要在 PHP 中运行 ffmpeg 命令 但是 php ffmpeg 不再支持最新版本并且已经过时 我可以知道在网络文件中运行 ffmpeg 命令的替代方法吗 PHP Javascript jQuery 我尝试exec and shel
  • Android 上的 GStreamer

    谁能给我一些关于让 GStreamer 在 Android 上工作的提示 我以前从未使用过它 我想将它与 FFmpeg 一起使用 我已经编译了 FFmpeg 并且在 Android 上运行良好 我只是想使用 GStreamer 来帮助完成一
  • 无法在 Windows 7 机器中使用 OpenCV 2.4.3、Python 2.7 打开“.mp4”视频文件

    我目前正在进行一个涉及读取 mp4 视频文件的项目 我遇到的问题是它在Windows 7机器上使用Python 2 7 32位 OpenCV 2 4 3 cv2 pyd 代码片段如下 try video cv2 VideoCapture v
  • H264 字节流到图像文件

    第一次来这里所以要温柔 我已经在给定的 H 264 字节流上工作了几个星期 一般注意事项 字节流不是来自文件 它是从外部源实时提供给我的 字节流使用 Android 的媒体编解码器进行编码 当将流写入扩展名为 H264的文件时 VLC能够正
  • FFmpeg 不适用于 android 10,直接进入 onFailure(String message) 并显示空消息

    我在我的一个项目中使用 FFmpeg 进行视频压缩 在 Android 10 Google Pixel 3a 上 对于发送执行的任何命令 它会直接进入 onFailure String message 并显示空消息 所以我在我的应用程序 g
  • 如何从 Linux 命令行获取视频文件的分辨率(宽度和高度)?

    我一直在挖掘 mplayer mencoder 和 ffmpeg 文档 但我似乎无法想出anything 我对输出格式不是特别挑剔 因为我可以使用正则表达式将其拉出来 我只是似乎无法首先获取数据 Use ffprobe https ffmp
  • saber sd 如何在没有 SPL 的情况下直接从 uboot 启动

    sabre sd 基于 imx 6 最大内部 RAM 约为 150Kb 然而 uboot 足够大 可以容纳在这个空间中 在这个场景中事情是如何进行的 https community freescale com docs DOC 95015
  • Qt WinRT 应用程序无法访问文件权限被拒绝

    我需要使用 Qt 和 FFMPEG 开发 WinRT 应用程序 我根据指令构建了 WinRT 的 ffmpeghere https github com Microsoft FFmpegInterop我可以将库与我的项目链接起来 现在我需要
  • RequireJS 文本插件和变量连接字符串

    我正在使用 RequireJS 文本插件来加载一些 html 模板 当我将字符串文字传递给 require 函数时 它工作正常 var templateHTML require text templates template name ht
  • arm-linux-gnueabi 编译器选项

    我在用 ARM Linux gnueabi gcc在 Linux 中为 ARM 处理器编译 C 程序 但是 我不确定它编译的默认 ARM 模式是什么 例如 对于 C 代码 test c unsigned int main return 0x
  • 如何模拟ARM处理器运行环境并加载Linux内核模块?

    我尝试加载我的vmlinux into gdb并使用 ARM 内核模拟器 但我不明白为什么我会得到Undefined target command sim 这是外壳输出 arm eabi gdb vmlinux GNU gdb GDB 7
  • 在 MacOS 终端上运行 ffmpeg [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我对 MacOS 相当陌生 我发现使用终端来获取信息并不容易ffmpeg和我在 Window 上一样正常运行 我有 ffmpeg 二进制文件ffmpe
  • 什么是遗留中断?

    我正在开发一个项目 试图弄清楚 ARM 架构的全局中断控制器中如何处理中断 我正在使用 pl390 中断控制器 我看到有一条线被称为传统中断 它绕过了分配器逻辑 假设有 2 个中断可以被编程为传统中断 任何人都可以帮助解释一下什么是遗留中断
  • 如何仅在使用 ffmpeg 添加相同速度的分离音频流时更改视频速度?

    我正在使用 ffmpeg 作为视频过滤器 但是 当我改变视频速度时 我遇到了问题 音频比视频长 ffmpeg i INPUT mp4 filter v setpts 0 5 PTS shortest y preset ultrafast O
  • 同时从多个流中捕获、最佳方法以及如何减少 CPU 使用率

    我目前正在编写一个应用程序 该应用程序将捕获大量 RTSP 流 在我的例子中为 12 个 并将其显示在 QT 小部件上 当我超过大约 6 7 个流时 问题就会出现 CPU 使用率激增并且出现明显的卡顿 我认为它不是 QT 绘制函数的原因是因
  • arm64和armhf有什么区别?

    Raspberry Pi Type 3 具有 64 位 CPU 但其架构不是arm64 but armhf 有什么区别arm64 and armhf armhf代表 arm hard float 是给定的名称Debian 端口 https
  • 设备树不匹配:.probe 从未被调用

    我无法理解设备树的工作原理 或者具体来说为什么该驱动程序无法初始化 这是在 android 版本 3 10 的 rockchip 供应商内核中 驱动程序 看门狗 rk29 wdt c 为了可读性而减少 static const struct
  • 交叉编译armv5,但它创建v7二进制文件

    我设法为arm926ej s创建了一个目标文件我在 qemu 上使用 Debian Arm arm linux gnueabi gcc 4 4 static O c mcpu arm926ej s hello c o hello root

随机推荐