Ubuntu下FFmpeg的安装方式

FFmpeg介绍

音视频的广泛应用

  • 直播类:音视频会议(腾讯会议、Zoom)、娱乐直播(斗鱼、虎牙)

  • 音视频通话:QQ、微信

  • 网络视频:腾讯视频、爱奇艺

  • 短视频:抖音、快手

  • 视频监控:海康

  • 人工智能:人脸识别、智能音箱

    

概念

  FFMPEG全称为fast forward moving picture expert group,是领先的多媒体框架,提供了音视频的编码、解码、转码、封装、解封装、流、滤镜、播放等功能。几乎支持所有的音视频格式,高度可移植,跨平台:Linux、Mac、Windows等,采用LGPL\GPL发布。

  

影响范围

作为内核的播放器:暴风影音、QQ影音等

作为内核的转码工具:格式工厂等

  

提供的应用程序

  • ffmpeg:音视频转码、编解码工具
  • ffplay:音视频播放器
  • ffprobe:多媒体分析器(查看码流信息、帧率)
  • ffserver:多媒体实时广播流服务器

  

内部构成

  • AVCodec:编解码模块
  • AVFormat:封装模块
  • AVFilter:滤镜模块
  • AVUtil:基本工具模块
  • AVDevice:采集与渲染输入输出模块
  • swscale:视频图像转换模块
  • swresample:音频转换计算模块

  

  

环境安装

  • 前期准备

安装有Ubuntu系统的主机或者设备

一些相关软件包,已打包整理好。如需最新版可根据文中提示到官网下载。

  • 编译安装

创建安装目录 sudo mkdir -p /usr/local/ffmpeg/lib

解压源码 tar -jxf ffmpeg-4.3.2.tar.bz2

到指定ffmpeg目录进行配置 cd ffmpeg-4.3.2/

配置:会报错很多次,过程中需反复执行此步,下述皆简称 配置,注意这步要在ffmpeg-4.3.2下运行

./configure --prefix="/usr/local/ffmpeg/" \
--enable-gpl \
--enable-nonfree \
--enable-ffplay \
--enable-libfdk-aac \
--enable-libmp3lame \
--enable-libx264 \
--enable-libx265 \
--enable-filter=delogo \
--enable-debug \
--disable-optimizations \
--enable-libspeex \
--enable-shared \
--enable-pthreads \
--enable-version3 \
--enable-hardcoded-tables \
--extra-ldflags=-L/usr/local/ffmpeg/lib
如果报错:C compiler test failed.
解决:
sudo apt install g++
sudo apt install gcc

报错 nasm/yasm not found or too old. Use --disable-x86asm for a crippled build.

解决:  `sudo apt-get install yasm`

配置

报错 ERROR: libfdk_aac not found

解决:
①官⽹下载fdk-aac源码:https://jaist.dl.sourceforge.net/project/opencore-amr/fdk-aac/
②解压fdk-aac:
tar -zxf fdk-aac-2.0.1.tar.gz
并到指定目录:
cd fdk-aac-2.0.1
③进行配置
./configure --prefix=/usr/local/ffmpeg --enable-shared
④源码编译再安装
make -j8
sudo make install

添加环境变量:
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/ffmpeg/lib/pkgconfig/

配置

如果依旧是  ERROR: libfdk_aac not found
可能是缺少pkg-config
解决方案:sudo apt install pkg-config 

报错 ERROR: libmp3lame >= 3.98.3 not found

解决:
①官⽹下载mp3lame源码:https://sourceforge.net/projects/lame/
②解压lame文件并到指定目录下
tar -zxf lame-3.100.tar.gz
cd lame-3.100/
③进行配置
./configure --prefix=/usr/local/ffmpeg --enable-shared
④编译及安装
make -j8
sudo make install

配置

报错 ERROR: speex not found using pkg-config

解决:
https://www.speex.org/downloads/   下载Speex Source Code
tar -zxf speex-1.2.0.tar.gz 
cd speex-1.2.0/
./configure --prefix=/usr/local/ffmpeg
make -j8
sudo make install

配置

报错 ERROR: libx264 not found

解决:
wget https://code.videolan.org/videolan/x264/-/archive/master/x264-master.tar.bz2
tar jxf x264-master.tar.bz2
./configure --prefix=/usr/local/ffmpeg/ --enable-shared --disable-asm
make -j8
sudo make install

配置

报错 ERROR: x265 not found using pkg-config

解决:
http://ftp.videolan.org/pub/videolan/x265/
tar -zxf x265_3.2.tar.gz 
cd x265_3.2/build/linux
sudo apt-get install cmake
./make-Makefiles.bash
make -j8
sudo make install

配置

如果没有报错再执行(ffmpeg目录下)

make -j8
sudo make install

============================================================

安装完成后,发现/usr/local/ffmpeg/bin目录下,没有ffplay等应用程序,需要安装SDL

解决:
tar -zxf SDL2-2.0.12.tar.gz
cd SDL2-2.0.12/
./configure --prefix=/usr/local/ffmpeg/ --enable-shared
make -j8
sudo make install

再重新运行"ffmpeg配置命令",重新编译安装ffmpeg,并

make -j8
sudo make install

会发现/usr/local/ffmpeg/bin目录下已经有ffmpeg、ffplay、ffprobe等应用程序。

============================================================

执行ffmpeg,错误提示:The program ‘ffmpeg’ is currently not installed.You can install it bytyping: sudo apt install ffmpeg

解决方法:
1、修改系统环境变量: sudo vim /etc/profile文件最后加上export PATH="/usr/local/ffmpeg/bin:$PATH"

2、sudo vim /etc/ld.so.conf 文件最后加上 /usr/local/ffmpeg/lib

3、再执行命令 : sudo ldconfig

再运行ffmpeg命令有如下信息∶(还报错尝试重启机器)

ffmpeg version 4.3.2 Copyright (c) 2000-2021 the FFmpeg developers
  built with gcc 9 (Ubuntu 9.4.0-1ubuntu1~20.04.1)
  configuration: --prefix=/usr/local/ffmpeg/ --enable-gpl --enable-nonfree --enable-ffplay --enable-libfdk-aac --enable-libmp3lame --enable-libx264 --enable-libx265 --enable-filter=delogo --enable-debug --disable-optimizations --enable-libspeex --enable-shared --enable-pthreads --enable-version3 --enable-hardcoded-tables --extra-ldflags=-L/usr/local/ffmpeg/lib
  libavutil      56. 51.100 / 56. 51.100
  libavcodec     58. 91.100 / 58. 91.100
  libavformat    58. 45.100 / 58. 45.100
  libavdevice    58. 10.100 / 58. 10.100
  libavfilter     7. 85.100 /  7. 85.100
  libswscale      5.  7.100 /  5.  7.100
  libswresample   3.  7.100 /  3.  7.100
  libpostproc    55.  7.100 / 55.  7.100
Hyper fast Audio and Video encoder
usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...

============================================================

执行ffplay命令后,提示错误:Could not initialize SDL-No available video device(Did you set theDISPLAY variable?)

1、安装依赖包
sudo apt-get install libasound2-dev
sudo apt-get install libpulse-dev
sudo apt-get install libx11-dev
sudo apt-get install xorg-dev

2、重新编译安装SDL(cd SDL2-2.0.12/)
./configure --prefix=/usr/local/ffmpeg/ --enable-shared --enable-video-x11 --enable-x11-shared --enable-video-x11-vm
make -j8
sudo make install

3、重新配置、编译、安装ffmpeg,再运行ffplay命令,即可正常运行输入ffmpeg -version,得到如下信息,说明ffmpeg安装成功。
ffmpeg version 4.3.2 Copyright (c) 2000-2021 the FFmpeg developers
built with gcc 9 (Ubuntu 9.4.0-1ubuntu1~20.04.1)
configuration: --prefix=/usr/local/ffmpeg/ --enable-gpl --enable-nonfree --enable-ffplay --enable-libfdk-aac --enable-libmp3lame --enable-libx264 --enable-libx265 --enable-filter=delogo --enable-debug --disable-optimizations --enable-libspeex --enable-shared --enable-pthreads --enable-version3 --enable-hardcoded-tables --extra-ldflags=-L/usr/local/ffmpeg/lib
libavutil      56. 51.100 / 56. 51.100
libavcodec     58. 91.100 / 58. 91.100
libavformat    58. 45.100 / 58. 45.100
libavdevice    58. 10.100 / 58. 10.100
libavfilter     7. 85.100 /  7. 85.100
libswscale      5.  7.100 /  5.  7.100
libswresample   3.  7.100 /  3.  7.100
libpostproc    55.  7.100 / 55.  7.100

  

最后测试一下ffplay testVideo.mkv(随便找个视频看是否可以播放成功)

在这里插入图片描述

  

FFmpeg源码目录的介绍

FFmpeg支持的工具:

  • FFmpeg编码支持与定制:configure --help
  • FFmpeg编码器支持:configure --list-encoders
  • FFmpeg解码器支持:configure --list-decoders
  • FFmpeg封装支持:configure --list-muxers
  • FFmpeg解封装支持:configure --list-demuxers
  • FFmpeg通信协议支持:configure --list-protocols

当前环境支持的工具:

  • FFmpeg封装格式支持:ffmpeg -muxers / ffmpeg -demuxers / ffmpeg -formats
  • FFmpeg编码格式支持:ffmpeg -encoders / ffmpeg -codecs
  • FFmpeg解码格式支持:ffmpeg -decoders / ffmpeg -codecs
  • FFmpeg滤镜支持:ffmpeg -filters

  

FFmpeg音视频处理流程

在这里插入图片描述

不同的封装格式就是用不同容器将不同排列方式的音频和视频流(帧)进行盛放。

编码的本质——压缩,像H264/H265/AAC这种可以理解为是压缩格式(编码格式)。

视频编码一定是有损的。

  

FFprobe工具介绍

  • 查看帮助信息:ffprobe --help

命令格式 : ffprobe [OPTIONS] [INPUT_FILE]

  • 查看多媒体数据包:ffprobe -show_packets -show_data testVideo.flv
  • 查看封装格式:ffprobe -show_format testVideo.flv
  • 查看视频文件的帧信息:ffprobe -show_frames testVideo.flv
  • 查看视频文件的流信息:ffprobe -show_streams testVideo.flv
  • 格式化显示:
    ffprobe -of json -show_format testVideo.flv
    ffprobe -print_format csv -show_packets out.mp4 > outMp4.csv

  

FFplay工具介绍

  • 查看帮助信息:ffplay --help

命令格式:ffplay [options] input_file

  • 播放本地流:ffplay -window_title "Testwindow" testVideo.flv
  • 播放网络流:ffplay http://ivi.bupt.edu.cn/hls/cctv6hd.m3u8
  • 11
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
为了在Ubuntu 20上安装FFmpeg,你可以按照以下步骤进行操作: 1. 首先,确认您是否已经准备好了FFmpeg安装目录,并将其易于找到。如果是,请输入"yes",否则按Ctrl+C退出。 2. 下载FFmpeg并解压缩。您可以使用以下命令在终端中执行: ```shell wget http://www.ffmpeg.org/releases/ffmpeg-5.1.tar.gz tar -zxvf ffmpeg-5.1.tar.gz ``` 这将下载FFmpeg压缩包并解压缩到当前目录。 3. 进入解压缩后的FFmpeg目录,并安装yasm(如果系统中没有安装yasm)。您可以使用以下命令进行安装: ```shell cd ffmpeg-5.1/ apt install yasm pkg-config libopencore-amrnb-dev libopencore-amrwb-dev ``` 这将安装所需的依赖项。 4. 编译FFmpeg。使用以下命令执行配置和编译: ```shell ./configure --enable-gpl --enable-version3 --enable-nonfree --disable-ffplay --disable-ffprobe --enable-libopencore-amrnb --enable-libopencore-amrwb make make install ``` 这将配置和编译FFmpeg。请注意,编译过程可能需要一些时间,请耐心等待。 5. 手动编译完成后,您可以根据需要更改环境变量。您可以通过将以下命令添加到您的.bashrc文件中来添加FFmpeg路径到环境变量: ```shell export PATH="$PATH:/path/to/ffmpeg/bin" ``` 请确保将"/path/to/ffmpeg/bin"替换为您实际安装FFmpeg的路径。 这些步骤将帮助您在Ubuntu 20上安装FFmpeg。请记住,这些命令需要在终端中执行,并需要具有适当的权限。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Ubuntu20.04安装ffmpeg](https://blog.csdn.net/weixin_62712387/article/details/125657606)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值