附录2 FFmpeg从入门到精通-Linux下编译FFmpeg

2023-10-30

附录2 Linux下编译FFmpeg

  1 安装依赖项

 yum install autoconf automake bzip2 bzip2-devel cmake freetype-devel gcc gcc-c++ git libtool make pkgconfig zlib-devel

  2 NASM

    NASM是一个汇编器的名称,全称是Netwide Assembler,支持x86与x64架构的CPU(注意不支持ARM架构)。

wget --no-check-certificate https://www.nasm.us/pub/nasm/releasebuilds/2.15/nasm-2.15.tar.gz
tar -xvf nasm-2.15.tar.gz
cd nasm-2.15/
./configure
make && sudo make install

  3 Yasm

    YASM是windows平台下的一个汇编器。

wget http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz
tar xf yasm-1.3.0.tar.gz 
cd yasm-1.3.0
./configure 
make && sudo make install

  4 libx264

     x264编码库libx264实现真正的视频编解码,该编解码算法是基于块的混合编码技术,即帧内/帧间预测,然后对预测值变换、量化,最后熵编码所得。编码帧的类型分为I帧(x264_type_i)、P帧(x264_type_p)、B帧(x264_type_b),在H264中叫做图像片Slice。
     要求将 ffmpeg 配置为 --enable-gpl --enable-libx264.

git clone --branch stable --depth 1 https://code.videolan.org/videolan/x264.git
cd x264
./configure --enable-shared --enable-static
make && make install

  5 libx265

    H.265 / HEVC视频编码器。
    要求将 ffmpeg 配置为 --enable-gpl --enable-libx265.

git clone --branch stable --depth 2 https://bitbucket.org/multicoreware/x265_git
cd x265_git/source
cmake ../source
make && make install

  6 libfdk_aac

    要求将 ffmpeg 配置为 --enable-libfdk_aac (and --enable-nonfree if you also included --enable-gpl).

git clone --depth 1 https://github.com/mstorsjo/fdk-aac
cd fdk-aac
autoreconf -fiv
./configure --disable-shared
make
make install

  7 libmp3lame

    MP3音频编码器。
    要求将 ffmpeg 配置为 --enable-libmp3lame.

wget --no-check-certificate https://sourceforge.net/projects/lame/files/latest/download/lame-3.100.tar.gz
tar xf lame-3.100.tar.gz
cd lame-3.100
./configure --disable-shared --enable-static
make && make install

  8 libopus

    Opus音频解码器和编码器。
    要求将 ffmpeg 配置为 --enable-libopus.

curl -O -L https://archive.mozilla.org/pub/opus/opus-1.3.1.tar.gz
tar xzvf opus-1.3.1.tar.gz
cd opus-1.3.1
./configure --disable-shared
make
make install

  9 libvpx

    P8/VP9视频编码器和解码器
    要求将 ffmpeg 配置为 --enable-libvpx.

git clone https://github.com/webmproject/libvpx.git
cd libvpx
./configure --disable-examples --disable-unit-tests --enable-vp9-highbitdepth --as=yasm
make
make install

  10 FFmpeg

wget http://www.ffmpeg.org/releases/ffmpeg-5.1.tar.gz
tar xf ffmpeg-5.1.tar.gz
cd ffmpeg
./configure --prefix="/usr/local/ffmpeg" --pkg-config-flags="--static" --extra-libs=-lpthread --extra-libs=-lm --enable-gpl --enable-libfdk_aac --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libvpx --enable-libx264 --enable-libx265 --enable-nonfree 
make
make install
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

附录2 FFmpeg从入门到精通-Linux下编译FFmpeg 的相关文章

  • 使用 shell 脚本发送 HTML 邮件

    如何使用 shell 脚本发送 HTML 电子邮件 首先 您需要撰写消息 最低限度由这两个标头组成 MIME Version 1 0 Content Type text html 以及适当的消息正文 p Hello world p 获得后
  • 在 scapy 中通过物理环回发送数据包

    我最近发现了 Scapy 它看起来很棒 我正在尝试查看 NIC 上物理环回模块 存根上的简单流量 但是 Scapy sniff 没有给出任何结果 我正在做的发送数据包是 payload data 10 snf sniff filter ic
  • ffmpeg 找不到 vcodec h264

    我是 ffmpeg 的新手 正在 Windows 上使用它 我尝试使用 H 264 vcodec h264 转换 avi 文件 收到此错误 未知编码器 h264 使用 acodec 的 mp3 也会出现 未知编码器 错误 有人可以帮我解决这
  • 如何获取视频时长(以秒为单位)? [复制]

    这个问题在这里已经有答案了 如何获取以秒为单位的视频时长 我尝试过的 ffmpeg i file flv 2 gt 1 grep Duration Duration 00 39 43 08 start 0 040000 bitrate 38
  • 更新Linux中的包含路径

    我的 my path to file 文件夹中有几个头文件 我知道如何将这些文件包含在新的 C 程序中 但每次我都需要在包含它之前输入头文件的完整路径 我可以在linux中设置一些路径变量 以便它自动查找头文件吗 您可以创建一个 makef
  • 用于 Windows Phone 开发的 FFmpeg

    我在 ASP Net 基于 Web 的应用程序中使用了 FFmpeg 现在我想用它来进行Windows Phone开发 可以使用吗 如果是 那么如何 Windows Phone 7 根本不支持 FFmpeg 而且据我在网上找到的信息 Win
  • “git add”返回“致命:外部存储库”错误

    我刚刚进入 git 的奇妙世界 我必须提交我对程序所做的一系列更改 位于名为的目录中 var www myapp 我创建了一个新目录 home mylogin gitclone 从这个目录中 我做了一个git clone针对公共回购 我能够
  • ffmpeg 无法复制正确的持续时间

    我想使用以下命令修剪视频 ffmpeg exe i in mp4 ss 76 t 10 c copy an out mp4 确切地说 76 秒后复制 10 秒 并且不复制音频 然而out mp4长度为 5 秒 这是 ffmpeg 控制台输出
  • 将yuv420p原始数据转换为opencv图像

    我有来自 rtmp 服务器的原始数据 像素格式为 yuv420p 我使用管道来读取数据 但我不知道如何将原始数据解码为图像 command ffmpeg command extend loglevel fatal i rtmp localh
  • Linux无法删除文件

    当我找到文件时 我在删除它们时遇到问题 任务 必须找到带有空格的文件并将其删除 我的尝试 rm find L root grep i 但我有错误 rm cannot remove root test No such file or dire
  • 来自守护程序的错误响应:加入会话密钥环:创建会话密钥:超出磁盘配额

    我尝试在我的服务器上安装 docker 使用本教程 https docs docker com install linux docker ce ubuntu 我想远程运行 docker 镜像并使用 portainer Web 界面来管理一切
  • Linux 使用 boost asio 拒绝套接字绑定权限

    我在绑定套接字时遇到问题 并且以用户身份运行程序时权限被拒绝 这行代码会产生错误 acceptor new boost asio ip tcp acceptor io boost asio ip tcp endpoint boost asi
  • awk 在循环中使用时不打印任何内容[重复]

    这个问题在这里已经有答案了 我有一堆使用 file 1 a 1 txt 格式的文件 如下所示 A 1 B 2 C 3 D 4 并使用以下命令添加包含每个文件名称的新列 awk print FILENAME NF t 0 file 1 a 1
  • 在 docker 中重定向命令输出

    我想为我的服务器做一些简单的日志记录 它是一个在 Docker 容器中运行的小型 Flask 应用程序 这是 Dockerfile Dockerfile FROM dreen flask MAINTAINER dreen WORKDIR s
  • Tomcat Intellij Idea:远程部署

    RackSpace 云服务器 Ubuntu 12 04 Intellij Idea 11 1 2 Windows 8 Tomcat 7 0 26 JDK 6 在 Intellij Idea 上 当我尝试在远程 Tomcat 7 服务器上运行
  • 尽管重新采样音频过滤器,FFmpeg 对 ts 和 m3u8 文件的切割不准确

    我需要准确地寻找并剪切视频 一些在线资源说将 ss 放在源的前面或后面 结果对我来说是一样的 在下面的示例中 开始时间准确 但持续时间不准确 ffmpeg y ss 00 00 05 t 00 00 05 i output ts 5s wa
  • ioctl 命令的用户权限检查

    我正在实现 char 驱动程序 Linux 并且我的驱动程序中有某些 IOCTL 命令仅需要由 ADMIN 执行 我的问题是如何在 ioctl 命令实现下检查用户权限并限制非特权用户访问 IOCTL 您可以使用bool capable in
  • 执行命令而不将其保留在历史记录中[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 在进行软件开发时 经常需要在命令行命令中包含机密信息 典型示例是将项目部署到服务器的凭据设置为环境变量 当我不想将某些命令存储在命令历史记
  • 在 C 中使用单个消息队列是否可以实现双向通信

    我希望服务器向客户端发送一些消息 并让客户端确认它 我被分配了这个任务 我可以在 C linux 中使用单个消息队列来完成它还是我需要创建两个 谢谢 是的 可以使用 sysV 消息队列来做到这一点 从您之前的问题来看 您正在使用该队列 您可
  • 通过 Visual Studio 2017 使用远程调试时 Linux 控制台输出在哪里?

    我的Visual Studio 2017 VS2017 成功连接Linux系统 代码如下 include

随机推荐