音视频处理 ffmpeg下载、编译和安装

创建文件夹

  • ffmpeg_sources  存放源文件
  • ffmpeg_build       构建文件并安装库
  • bin                       存放二进制可执行文件

安装依赖环境  整体安装

sudo apt-get update -qq && sudo apt-get -y install \autoconf \automake \build-essential \cmake \git-core \libass-dev \libfreetype6-dev \libgnutls28-dev \libsdl2-dev \libtool \libva-dev \libvdpau-dev \libvorbis-dev \libxcb1-dev \libxcb-shm0-dev \libxcb-xfixes0-dev \meson \ninja-build \pkg-config \texinfo \wget \yasm \zlib1g-dev
  • 如果在安装上述文件时,有些包没有成功安装,可以单独指定命令进行安装
  • sudo apt-get install xx

安装依赖环境  单独安装

NASM

  • 注意版本要 ≥ 2.13。本文安装版本是 2.15.05
  • 安装方式
cd ~/ffmpeg_sources && \
wget https://www.nasm.us/pub/nasm/releasebuilds/2.15.05/nasm-2.15.05.tar.bz2 && \
tar xjvf nasm-2.15.05.tar.bz2 && \
cd nasm-2.15.05 && \
./autogen.sh && \
PATH="$HOME/bin:$PATH" ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" && \
make && \
make install
  • 如果使用apt-get安装nasm,不被认可,也识别不到,参考如下链接,进行卸载
  • 安装 nasm 在 Ubuntu 16.04 (Xenial Xerus) 🥇 [InstallOnLinux] 
  • sudo apt-get autoremove --purge nasm

libx264

  • H.264 视频编码器。版本要 ≥ 118
  • 需要 ffmpeg 编译选项配置 --enable-gpl 和 --enable-libx264
  • sudo apt-get install libx264-dev

libx265

  • H.265/HEVC 视频编码器。版本 ≥ 68
  • 需要 ffmpeg 编译选项配置 --enable-gpl 和 --enable-libx265
  • sudo apt-get install libx265-dev libnuma-dev

libvpx

  • VP8/VP9 视频编码、解码器。版本 ≥ 1.4.0
  • 需要 ffmpeg 编译选项配置 --enable-libvpx
  • sudo apt-get install libvpx-dev

libfdk-aac

  • AAC 音频编码器
  • 需要 ffmpeg 编译选项配置 --enable-libfdk-aac
  • 如果配置包含了 --enable-gpl 需要同时添加 --enable-nonfree
  • sudo apt-get install libfdk-aac-dev

libmp3lame

  • mp3 音频编码器。版本 ≥ 3.98.3
  • 需要 ffmpeg 编译选项配置 --enable-libmp3lame
  • sudo apt-get install libmp3lame-dev

libopus

  • Opus音频解码器和编码器。版本 ≥ 1.1
  • 需要 ffmpeg 编译选项配置 --enable-libopus
  • sudo apt-get install libopus-dev

libunistring-dev

  • sudo apt-get install libunistring-dev

libdav1d

  • AV1 解码器,比libaom 快得多
  • 需要 ffmpeg 编译选项配置 --enable-libdav1d
  • 通过 Python 包索引完成
  • 要求0.49.0版本以上
  • sudo apt-get install python3-pip
  • sudo pip3 install --user meson
  • 问题:meson_options.txt:1:0: ERROR: Unknown type feature.错误是由于meson版本不匹配导致的
  • 解决办法:1,卸载apt 安装的meson;2,pip3 install --user meson;3,修改path路径使得pip安装的meson优先于系统meson被搜索到  export PATH=~/.local/bin:$PATH
  • 检测:分别在普通用户和root用户下使用命令 meson -v 检测版本,验证是否一致
  • 上述操作无误之后,继续执行
git clone --depth=1 https://code.videolan.org/videolan/dav1d.git && \
cd dav1d && \
mkdir build && cd build && \
meson --bindir="/usr/local/bin" .. && \
ninja && \
ninja install

libsvtav1

  • AV1 视频解码器和编码器。FFmpeg 只支持编码器,因此编译不支持解码器
  • 需要 ffmpeg 编译选项配置 --enable-libsvtav1
git clone --depth=1 https://github.com/OpenVisualCloud/SVT-AV1
cd SVT-AV1
cd Build
cmake .. -G"Unix Makefiles" -DCMAKE_BUILD_TYPE=Release
make -j $(nproc)
sudo make install

编译FFmpeg

cd ~/ffmpeg_sources && \
wget -O ffmpeg-snapshot.tar.bz2 https://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" \--extra-libs="-lpthread -lm" \--ld="g++" \--bindir="$HOME/bin" \--enable-gpl \--enable-gnutls \--enable-libass \--enable-libfdk-aac \--enable-libfreetype \--enable-libmp3lame \--enable-libopus \--enable-libsvtav1 \--enable-libdav1d \--enable-libvorbis \--enable-libvpx \--enable-libx264 \--enable-libx265 \--enable-nonfree && \
PATH="$HOME/bin:$PATH" make && \
make install && \
hash -r

结果验证 

参考链接

  • FFmpeg
  • Ubuntu 20.04 搭建 CLion FFmpeg 开发环境_TYYJ-洪伟的博客-CSDN博客
  • FFmpeg Ubuntu 20.04 编译_TYYJ-洪伟的博客-CSDN博客
  • ubuntu下更新meson版本_ewerwerwerer的博客-CSDN博客_meson升级
  • 安装 nasm 在 Ubuntu 16.04 (Xenial Xerus) 🥇 [InstallOnLinux]
  • https://cache.one/read/16695804
  • How to install or uninstall dav1d on Ubuntu 20.10 (Groovy Gorilla) ?
  • ubuntu下更新meson版本_ewerwerwerer的博客-CSDN博客_meson升级
  • ubuntu上安装meson & 如何使用meson编译C代码_南沙的星星的博客-CSDN博客_meson编译
  • linux - ERROR: SvtAv1Enc not found using pkg-config - Stack Overflow

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/446041.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CLion配置 鼠标滚轮 放大和缩小

操作 点击File -> Settings点击Appearance & Behavior -> Keymap在搜索框搜索 font 选择 Decrease FontSize ,右键点击,选择add Mouse Shortcut,按住ctrl,同时向下滑动滚轮;同理,操作 Increase…

struts2通配符_基于Struts2框架的名片管理系统

本篇博文将分享一款基于Struts2框架的名片管理系统,JSP引擎为Tomcat9.0,数据库采用的是MySQL5.5,集成开发环境为Eclipse IDE for Java EE Developers。名片管理系统主要包括用户管理和名片管理功能。用户功能主要包括:用户注册、用…

音视频处理 Clion搭建ffmpeg开发环境

参考链接 Ubuntu 20.04 搭建 CLion FFmpeg 开发环境_TYYJ-洪伟的博客-CSDN博客 安装CLion 首先到 jetbrains 官网 https://www.jetbrains.com/clion/ 下载 CLion 安装包 CLion-2021.1.tar.gz使用finalshell和ubuntu之间配置ssh链接将Clion-2022.1.tar.gz 使用move移动到 /hom…

音视频处理 ffmpeg中级开发 H264编码

开发介绍 libavcodec/avcodec.h常用的数据结构 AVCodec 编码器结构体AVCodecContext 编码器上下文AVFrame 解码后的帧结构体内存的分配和释放 av_frame_alloc 申请av_frame_free() 释放avcodec_alloc_context3() 创建编码器上下文avcodec_free_context() 释放编码器上下文解码…

音视频处理 ffmpeg中级开发 视频转图片

操作流程 目的:使用FFmpeg将视频的每一帧数据转换为图片1,打开输入的多媒体文件,检索多媒体文件中的流信息2,查找视频流的索引号,通过索引号获取数据流;通过解析视频流中的编码参数得到解码器ID&#xff0…

企业知识库与知识管理:如何统一战略与实践

在知识密集型的现代企业中,知识已经成为了一种宝贵的资产。如何有效地管理和利用这一资产,成为企业持续发展与创新的关键。企业知识库与知识管理作为知识经济的两大支柱,它们的重要性不言而喻。但很多时候,我们发现企业的知识管理…

音视频处理 ffmpeg中级开发 AAC编码

介绍 编码流程类似于视频编码,1,查找编码器;2,设定参数,打开编码器;3,数据编码编码函数 avcodec_encode_audio2 已经被弃用FFmpeg 过时 Api 汇总整理 - 灰色飘零 - 博客园 未成功使用 旧版本i…

虚拟机为Ubuntu分配空间

当虚拟机里面的创建的ubuntu镜像需要更大的空间,将ubuntu关掉之后,对应调整硬盘的空间大小,由先前的20G上调至50G,但是先前的20G内存空间映射的位置是/dev/sda,后面增加的这段内存空间30G映射到/dev/sda1因此&#xff…

为什么人会摆高姿态_Yo , 你为什么喜欢冲浪?

“你为什么喜欢冲浪?” 那天木木突然问我。我愣住了。此时一道碧波恰从防泼堤(jetty)的那头升起,木木转头望去,视线追着那道浪缓缓向西,直至它破碎成白色的浪花。我瞥见他眼神中的光亮,就和小孩…

音视频处理 ffmpeg初级开发 命令行工具-实用命令

参考链接 ffmpeg Documentation作者:smallest_one 链接:FFmpeg命令行工具-实用命令 - 简书 目录 1,help命令使用 1.1 ffmpeg命令的语法结构1.2 获取详细的help信息1.3 打印帮助或者支持能力的信息1.4 全局选项1.5 文件选项1.6 视频/音频/字…

不同的电脑打印预览不同怎么解决_条码打印软件中标签预览正常打印无反应怎么解决...

在使用条码打印软件制作标签时,有客户反馈,标签打印预览正常的,但是打印无反应,咨询是怎么回事?今天针对这个情况,可以参考以下方法进行解决。一、预览正常情况下,打印没反应(1)在条码打印软件中设计好标签之后&#…

MP4文件格式的相关内容

参考链接 FFmpeg中mp4的demuxer(mov.c)代码阅读 - 简书mp4文件格式解析 - 简书mp4封装格式各box类型讲解及IBP帧计算_青丶空゛的博客-CSDN博客5分钟入门MP4文件格式 - 程序猿小卡 - 博客园​关于M4A文件的随机访问 - 云社区 - 腾讯云 MP4文件格式相关内容 MP4文件由许多box组…

华三交换机如何进入配置_学校机房项目交换机的如何配置,理解这篇,交换机配置不再难...

弱电项目中,交换机的配置是无法避免的,大部分的项目都有可能会涉及到,尤其是机房等网络项目,本期我们就通过一个实际项目案例来详细了解交换机在项目中的应用配置,如果我们平时对交换机配置不熟,这个案例可…

百度地图迁徙大数据_百度地图大数据:五一高速拥堵不似预期,广深成热门迁出入地...

五一假期在即,你是否做好了“出行功课”?高速拥堵水平降低、公众出门不出城、公园成踏青赏景热门目的地……在全国疫情防控仍未松懈的时刻,2020年的五一或许注定与往年不同。近日,百度地图发布2020五一假期安全出行大数据&#xf…

音视频的基础知识 视频播放器原理/封装格式/视频音频编码数据/视频像素数据/音频采样数据

参考链接 FFMpeg视频播放器的制作-雷霄骅(去除电流音版本)_哔哩哔哩_bilibili 视频播放器原理 播放视频文件的流程YUV是一张屏幕中像素点的数值封装格式 MP4 RMVB TS FLV AVI将视频和音频码流按照一定的格式存储在一个文件中封装格式分析工具&#xf…

科立捷7代写频软件_天大厦大“两硕士论文雷同”通报,代写买卖论文

澎湃新闻记者 薛莎莎天津大学、厦门大学7月10日晚就“两硕士论文雷同”一事,分别发出调查处理通报。通报称,涉事两名学生存在由他人代写、买卖论文的学术作假的行为,均撤销其所获硕士学位,收回、注销硕士学位证书。澎湃新闻注意到…

FFMpeg命令行基础

参考链接 FFMpeg视频播放器的制作-雷霄骅(去除电流音版本)_哔哩哔哩_bilibili音视频处理 ffmpeg初级开发 命令行工具-实用命令_MY CUP OF TEA的博客-CSDN博客 介绍 FFMpeg是视频播放和转码的内核 使用 win中ffmpeg.exe用于视频转码简单命令&#xff1…

悲观锁和乐观锁_面试必备之乐观锁与悲观锁

何谓悲观锁与乐观锁乐观锁对应于生活中乐观的人总是想着事情往好的方向发展,悲观锁对应于生活中悲观的人总是想着事情往坏的方向发展。这两种人各有优缺点,不能不以场景而定说一种人好于另外一种人。大家可以点击加群【JAVA架构知识学习讨论群】47398464…

Microsoft Visual Studio2019环境下搭建FFmpeg开发环境

参考链接 《基于 FFmpeg SDL 的视频播放器的制作》课程的视频_雷霄骅的博客-CSDN博客_雷霄骅ffmpeg视频教程小学期课程资料 - 基于FFmpegSDL的视频播放器的制作.zip_免费高速下载|百度网盘-分享无限制辅助参考链接使用VS2019创建项目,添加文件和库地址_MY CUP OF …

vue process.env获取不到_从文档开始,重学vue(下)源码级别

此篇文章主要是从应用及源码层面讲解vue部分常用api,阅读起来可能略有难度,新手可以看《从文档开始,重学vue(上)》示例代码均在vue-cli3中完成Vue.extend()可以使用 extend 创建一个子类,该方法通常用于构建全局组件,如弹框组件等,下面我们就用它来制作个全局alert组件吧首先我…