首页 > 系统相关 >零声学院 音视频高级教程 ubuntu16.04 ffmpeg开发环境搭建

零声学院 音视频高级教程 ubuntu16.04 ffmpeg开发环境搭建

时间:2023-06-02 20:02:23浏览次数:49  
标签:ubuntu16.04 ffmpeg -- dev 音视频 && PATH cd


配置环境 ubuntu desktop 16.04 + ffmpeg 4.2.1

建议在《编译与安装》一节,都使用源码的方式编译和安装,本编译安装方式最终生成的皆为静态库。

部分命令说明:

git -C [git-command] 指定其它路径的仓库 执行命令 注意,-C 要在命令之前

创建目录

在home目录下创建

ffmpeg_sources:用于下载源文件

ffmpeg_build: 存储编译后的库文件

bin:存储二进制文件(ffmpeg,ffplay,ffprobe,X264,X265等)

cd ~
mkdir ffmpeg_sources ffmpeg_build bin

安装依赖

更新
sudo apt-get update
安装需要的组件
sudo apt-get -y install
autoconf
automake
build-essential
cmake
git-core
libass-dev
libfreetype6-dev
libsdl2-dev
libtool
libva-dev
libvdpau-dev
libvorbis-dev
libxcb1-dev
libxcb-shm0-dev
libxcb-xfixes0-dev
pkg-config
texinfo
wget
zlib1g-dev

编译与安装

本指南假定您要安装一些最常见的第三方库。每个小节为您提供安装该库所需的命令。

如果不需要某些功能,则可以跳过相关小节(如果不需要),然后在FFmpeg中删除相应的./configure选项。例如,如果不需要libvpx,请跳过该小节,然后从“ 安装FFmpeg”部分中删除–enable-libvpx。

提示:如果要在多核系统中加快编译速度,可以在每个make命令(例如make -j4)中使用-j选项。

建议都使用源码进行安装。

NASM

部分库使用到汇编程序。

如果你系统提供的库nasm版本>=2.13则可以直接使用命令进行安装

sudo apt-get install nasm

否则使用源码进行安装

cd ~/ffmpeg_sources &&
wget https://www.nasm.us/pub/nasm/releasebuilds/2.14.02/nasm-2.14.02.tar.bz2 &&
tar xjvf nasm-2.14.02.tar.bz2 &&
cd nasm-2.14.02 &&
./autogen.sh &&
PATH=“零声学院 音视频高级教程 ubuntu16.04 ffmpeg开发环境搭建_音频编码PATH” ./configure --prefix=“零声学院 音视频高级教程 ubuntu16.04 ffmpeg开发环境搭建_音视频_02HOME/bin” &&
make &&
make install

Yasm

部分库使用到该汇编库

如果你系统提供的库yasm版本 ≥ 1.2.0则可以直接使用命令进行安装:

sudo apt-get install yasm

否则使用源码进行安装:

cd ~/ffmpeg_sources &&
wget -O yasm-1.3.0.tar.gz https://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=“零声学院 音视频高级教程 ubuntu16.04 ffmpeg开发环境搭建_音视频_02HOME/bin” &&
make &&
make install

libx264

H.264视频编码器。更多信息和使用范例参考H.264 Encoding Guide

要求编译ffmpeg时配置:–enable-gpl --enable-libx264.

如果你系统提供的 libx264-dev版本 ≥ 118 则可以使用命令直接安装:

sudo apt-get install libx264-dev

否则使用源码进行编译:

cd ~/ffmpeg_sources &&
git -C x264 pull 2> /dev/null || git clone --depth 1 https://gitee.com/mirrors_addons/x264.git &&
cd x264 &&
PATH=“零声学院 音视频高级教程 ubuntu16.04 ffmpeg开发环境搭建_音频编码PATH” PKG_CONFIG_PATH=“零声学院 音视频高级教程 ubuntu16.04 ffmpeg开发环境搭建_音频编码_05HOME/ffmpeg_build” --bindir=“KaTeX parse error: Expected 'EOF', got '&' at position 40: …c --enable-pic &̲& \ PATH="HOME/bin:$PATH” make &&
make install

libx265

H.265/HEVC 视频编码器, 更多信息和使用范例参考H.265 Encoding Guide。

要求编译ffmpeg时配置:–enable-gpl --enable-libx265.

如果你系统提供的 libx265-dev版本≥ 68 则可以使用命令直接安装:

sudo apt-get install libx265-dev libnuma-dev

否则使用源码进行编译:

sudo apt-get install mercurial libnuma-dev &&
cd ~/ffmpeg_sources && \

if cd x265 2> /dev/null; then git pull && cd …; else git clone https://gitee.com/mirrors_videolan/x265.git; fi &&
cd x265/build/linux &&
PATH=“零声学院 音视频高级教程 ubuntu16.04 ffmpeg开发环境搭建_音频编码PATH” cmake -G “Unix Makefiles” -DCMAKE_INSTALL_PREFIX=“KaTeX parse error: Expected 'EOF', got '&' at position 53: …f ../../source &̲& \ PATH="HOME/bin:$PATH” make &&
make install

libvpx

VP8/VP9视频编解码器。 更多信息和使用范例参考 VP9 Video Encoding Guide 。

要求编译ffmpeg时配置: --enable-libvpx.

如果你系统提供的libvpx-dev version ≥ 1.4.0则可以使用命令直接安装:

sudo apt-get install libvpx-dev

否则使用源码进行编译:

cd ~/ffmpeg_sources &&
git -C libvpx pull 2> /dev/null || git clone --depth 1 https://github.com/webmproject/libvpx.git &&
cd libvpx &&
PATH=“零声学院 音视频高级教程 ubuntu16.04 ffmpeg开发环境搭建_音频编码PATH” ./configure --prefix=“KaTeX parse error: Expected 'EOF', got '&' at position 96: …epth --as=yasm &̲& \ PATH="HOME/bin:$PATH” make &&
make install

libfdk-aac

AAC音频编码器. 更多信息和使用范例参考AAC Audio Encoding Guide。

要求编译ffmpeg时配置:–enable-libfdk-aac ( 如果你已经配置了 --enable-gpl则需要加上–enable-nonfree).

如果你系统提供的 libfdk-aac-dev则可以使用命令直接安装:

sudo apt-get install libfdk-aac-dev

否则使用源码进行编译:

cd ~/ffmpeg_sources &&
git -C fdk-aac pull 2> /dev/null || git clone --depth 1 https://github.com/mstorsjo/fdk-aac &&
cd fdk-aac &&
autoreconf -fiv &&
./configure --prefix="$HOME/ffmpeg_build" --disable-shared &&
make &&
make install

libmp3lame

MP3音频编码器.

要求编译ffmpeg时配置:–enable-libmp3lame.

如果你系统提供的libmp3lame-dev版本≥ 3.98.3则可以使用命令直接安装:

sudo apt-get install libmp3lame-dev

否则使用源码进行编译:

cd ~/ffmpeg_sources &&
git clone --depth 1 https://gitee.com/hqiu/lame.git &&
cd lame &&
PATH=“零声学院 音视频高级教程 ubuntu16.04 ffmpeg开发环境搭建_音频编码PATH” ./configure --prefix=“零声学院 音视频高级教程 ubuntu16.04 ffmpeg开发环境搭建_音视频_02HOME/bin” --disable-shared --enable-nasm &&
PATH=“零声学院 音视频高级教程 ubuntu16.04 ffmpeg开发环境搭建_音频编码PATH” make &&
make install

libopus

Opus音频编解码器.

要求编译ffmpeg时配置:–enable-libopus.

如果你系统提供的libopus-dev 版本≥ 1.1则可以使用命令直接安装:

sudo apt-get install libopus-dev

否则使用源码进行编译:

cd ~/ffmpeg_sources &&
git -C opus pull 2> /dev/null || git clone --depth 1 https://github.com/xiph/opus.git &&
cd opus &&
./autogen.sh &&
./configure --prefix="$HOME/ffmpeg_build" --disable-shared &&
make &&
make install

libaom

AV1 视频编解码器:

Warning: libaom does not yet appear to have a stable API, so compilation of libavcodec/libaomenc.c may occasionally fail. Just wait a day or two for us to catch up with these annoying changes, re-download ffmpeg-snapshot.tar.bz2, and try again. Or skip libaom altogether.

要求编译ffmpeg时配置:–enable-libaom.

先不支持AV1 ,编译有问题。

cd ~/ffmpeg_sources &&
git -C aom pull 2> /dev/null || git clone --depth 1 https://github.com/mozilla/aom.git &&
mkdir -p aom_build &&
cd aom_build &&
PATH=“零声学院 音视频高级教程 ubuntu16.04 ffmpeg开发环境搭建_音频编码PATH” cmake -G “Unix Makefiles” -DCMAKE_INSTALL_PREFIX=“KaTeX parse error: Expected 'EOF', got '&' at position 64: …NASM=on ../aom &̲& \ PATH="HOME/bin:$PATH” make &&
make install

FFmpeg

cd ~/ffmpeg_sources &&
wget -O ffmpeg-4.2.1.tar.bz2 https://ffmpeg.org/releases/ffmpeg-4.2.1.tar.bz2 &&
tar xjvf ffmpeg-4.2.1.tar.bz2 &&
cd ffmpeg-4.2.1 &&
PATH=“零声学院 音视频高级教程 ubuntu16.04 ffmpeg开发环境搭建_音频编码PATH” PKG_CONFIG_PATH=“KaTeX parse error: Undefined control sequence: \ at position 46: …g" ./configure \̲ ̲ --prefix="HOME/ffmpeg_build”
–pkg-config-flags="–static"
–extra-cflags="-IKaTeX parse error: Undefined control sequence: \ at position 28: …build/include" \̲ ̲ --extra-ldfla…HOME/ffmpeg_build/lib"
–extra-libs="-lpthread -lm"
–bindir=“KaTeX parse error: Undefined control sequence: \ at position 11: HOME/bin" \̲ ̲ --enable-gpl …HOME/bin:$PATH” make &&
make install &&
hash -r

然后重新登录系统或者在当前shell会话执行如下命令以识别新安装ffmpeg的位置:

source ~/.profile

现在已经完成编译和安装ffmpeg (also ffplay, ffprobe, lame, x264, & x265) 。该文档剩余章节主要讲如何更新和删除ffmepg。

编译完成后,ffmpeg_build ffmpeg_sources bin目录的大体情况

lqf@ubuntu:~/ffmpeg_build$ ls
bin include lib share

lqf@ubuntu:~/ffmpeg_sources$ ls
fdk-aac lame-3.100.tar.gz opus yasm-1.3.0.tar.gz
ffmpeg-4.2.1 libvpx x264
ffmpeg-4.2.1.tar.bz2 nasm-2.14.02 x265
lame nasm-2.14.02.tar.bz2 yasm-1.3.0

lqf@ubuntu:~/bin$ ls
ffmpeg ffplay ffprobe lame nasm ndisasm vsyasm x264 yasm ytasm

使用

现在,您可以打开一个终端,输入ffmpeg命令,它应该执行新的ffmpeg。

如果你需要多个用户能同时使用你新编译的ffmpeg,则可以移动或者拷贝ffmpeg二进制文件从~/bin到/usr/local/bin。

测试ffplay是否可以使用(需要在图形方式进行测试)

ffplay rtmp://202.69.69.180:443/webcast/bshdlive-pc

如果能够正常播放则说明 ffplay能够编译成功使用。

文档

你可以使用 man ffmpeg以本地的方式访问文档:

echo “MANPATH_MAP $HOME/bin $HOME/ffmpeg_build/share/man” >> ~/.manpath

你可能必须注销系统然后重新登录man ffmpeg才生效。

HTML 格式的文档位于 ~/ffmpeg_build/share/doc/ffmpeg.

你也可以参考在线文档 online FFmpeg documentation,


标签:ubuntu16.04,ffmpeg,--,dev,音视频,&&,PATH,cd
From: https://blog.51cto.com/u_11797608/6404762

相关文章

  • Ubuntu系统-FFmpeg安装及环境配置
     镜像下载、域名解析、时间同步请点击 阿里云开源镜像站1简介FCN-4是一个应用于音频自动标注的全卷积神经网络。使用该网络完成音频标注任务时,首先需要使用python的音频处理工具包Librosa提取音频的时频特征,针对mp3格式的音频文件,Librosa读取音频文件的工作依赖音频处理......
  • 肖sir__影音视频讲解___项目整理
    一、参考链接直播产品:参考连接:https://www.axureshop.com/a/1401607.html 电商直播后台 二、项目简历:项目名称:xx直播app项目背景:我们是一个基于后台管理的一套电商直播后台系统,让线下的实体户家电卖家通过网络的直播平台来开拓市场,使客户在了解产品各项性能的同时来购......
  • 音视频基础概念
    DTS与PTSDTS:DecodeTimeStamp,用于标识读入内存的比特流什么时候送入解码器编码PTS:PresentationTimeStamp,用于标识解码后的视频帧什么时候显示出来 GOP(GroupOfPictures)是图像组的概念,它指的是视频编码序列中两个I帧之间的距离。 通常意义上的GOP由I帧开始,到下一个I......
  • 基于FFmpeg的音频编码(PCM数据编码成AAC android)
    概述在Android上实现录音,并利用FFmpeg将PCM数据编码成AAC。详细之前做的一个demo,Android录音获取pcm数据(音频原始数据),然后利用FFmpeg将PCM数据编码成AAC。一、准备工作开发环境jdk1.8 EclipseLunaServiceRelease1(4.4.1)运行环境:华为荣耀6(Android4.4)、华为......
  • ffmpeg 视频截取-合并
    ffmpeg截取视频ffmpeg-ss00:00:00-i~/1.mp4-ccopy-t00:21:00out.mp4截取从00:00:00开始持续时间21分钟的视频时间被指定为HH:MM:SS.MILLISECONDS。例如,您可以告诉FFmpeg寻找01:02:03——即电影1小时的第2分钟的第3秒!-t范围您可以使用参数指定所需剪辑的持续......
  • [音视频处理] FFmpeg使用指北1-视频解码
    本文将详细介绍如何使用ffmpeg4.4在C++中解码多种格式的媒体文件,这些媒体文件可以是视频、视频流、图片,或是桌面截屏或USB摄像头的实时图片。解码文件后,还将每帧图片转换为OpenCV的Mat格式以供后续使用。目录1基于ffmpeg的媒体文件解码1.1简介1.2详细代码2ffmpeg函数解释2.1......
  • cmd合并多个ts文件,ffmpeg快速转ts为mp4文件,通过m3u8合并文件
    摘自:https://blog.csdn.net/qq_33957603/article/details/1227638891、如何合并多个ts文件进入目录执行如下cmd命令即可copy/b*.tsnew.ts  2、如何将ts转为mp4ffmpeg下载官网:https://ffmpeg.org/github下载稳定版:https://github.com/BtbN/FFmpeg-Builds/releases下......
  • FFMpeg笔记(十二)MP4 box解析
      MP4包含3大box。一、ftypfiletypebox,包含视频文件使用的mp4标准,也作为probemp4的标志;二、moov包含媒体的元数据信息,包含一个mvhd(也就是headerbox)和若干个trak(track)。trak包含一条音/视频轨道信息和音视频数据的编码格式、音视频数据样本、chunks的大小,存储位置,PTS等......
  • [技术分享]Android平台音视频推送选RTMP还是GB28181?
    技术背景早在2015年,我们发布了RTMP直播推送模块,那时候音视频直播这块场景需求,还不像现在这么普遍,我们做这块的初衷,主要是为了实现移动单兵应急指挥系统的低延迟音视频数据传输。好多开发者可能会疑惑,走RTMP怎么可能低延迟?网上看到的RTMP推拉流延迟,总归要2-3秒起,如果是自己实现框架,R......
  • js获取抖音视频信息配合服务器自动下载
    引入axios方便发送请求解析当前页面获取视频信息把数据发送到服务器注意端口号,1024以上浏览器可能会拦截,认为不安全重复发送,防止连续重复发送,手动清除定时器点击查看代码//导入axios.posletscript=document.createElement('script');script.src="https://unpkg.......