Ubuntu下FFmpeg的安装方式

这篇具有很好参考价值的文章主要介绍了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(随便找个视频看是否可以播放成功)

Ubuntu下FFmpeg的安装方式

  

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音视频处理流程

Ubuntu下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文章来源地址https://www.toymoban.com/news/detail-479653.html

  • 播放本地流:ffplay -window_title "Testwindow" testVideo.flv
  • 播放网络流:ffplay http://ivi.bupt.edu.cn/hls/cctv6hd.m3u8

到了这里,关于Ubuntu下FFmpeg的安装方式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【音视频流媒体】 3、ffmpeg、ffplay、ffprobe 超详细介绍

    ffmpeg中文文档 常见测试视频 ffmpeg 大神笔记 ffmpeg 的 release 是 Linux Static Build ,即静态库(各库已被打包到可执行程序中),而不是动态链接库(共享机器上的 so),所以非常方便部署(sqlite 也是这样),这是ffmpeg官网下载地址 rtsp-simple-server用法 注意,该命令会找时间点附近

    2024年02月08日
    浏览(54)
  • 强大开源的音视频处理工具ffmpeg安装与使用

    FFmpeg 是一个开源的跨平台音视频处理工具,提供了丰富的命令行模式下音视频处理功能,包括格式转换、编解码、过滤器应用等。 由于 FFmpeg 支持的格式广泛,且可用于多个平台和操作系统(如 Windows、Linux、MacOS 等),因此它已成为许多多媒体应用程序和服务的核心组件。

    2024年02月05日
    浏览(74)
  • 音视频开发三:Windows环境下FFmpeg编译安装

    FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的 开源计算机程序 。采用LGPL或GPL许可证 。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec。 FFmpeg在Linux平台下开发,但它同样也可以在其它操作系统环

    2024年02月04日
    浏览(71)
  • 【配置环境】安装Ffmpeg音视频编解码工具和搭建EasyDarwin开源流媒体服务器

    目录 一,安装Ffmpeg音视频编解码工具 1,简介 2,开发文档 3,安装部署 二,搭建EasyDarwin开源流媒体服务器 1,简介 2,主要功能特点 3,安装部署 4,效果图 三,简单测试 Ffmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许

    2024年02月07日
    浏览(80)
  • 音视频 FFmpeg音视频处理流程

    推荐一个零声学院项目课,个人觉得老师讲得不错,分享给大家: 零声白金学习卡(含基础架构/高性能存储/golang云原生/音视频/Linux内核) https://xxetb.xet.tech/s/VsFMs

    2024年02月12日
    浏览(69)
  • ffmpeg@音视频工具@音视频合并

    FFmpeg中文网 (github.net.cn) FFmpeg 是一款强大的开源跨平台音视频处理工具集,它包含了一系列命令行工具以及用于音频和视频编码解码、格式转换、抓取、流化等功能的库。FFmpeg 支持多种视频、音频格式和编解码器,能够进行音视频的压缩、封装、转码、分割、合并、过滤、抓

    2024年03月17日
    浏览(79)
  • 音视频 ffmpeg命令提取音视频数据

    保留封装格式 提取视频 提取音频 推荐一个零声学院项目课,个人觉得老师讲得不错,分享给大家: 零声白金学习卡(含基础架构/高性能存储/golang云原生/音视频/Linux内核) https://xxetb.xet.tech/s/VsFMs

    2024年02月10日
    浏览(62)
  • 【FFmpeg】音视频录制 ① ( 查询系统中 ffmpeg 可录制的音视频输入设备 | 使用 ffmpeg 命令录制音视频数据 | 录制视频数据命令 |录制音频数据| 同时录制音频和视频数据命令 )

    在 Windows 系统中 , 使用 ffmpeg 命令 录制 音视频 , 需要先获取 系统的 音视频设备 信息 , 录制 音视频 本质上是从 系统音视频设备 中获取数据 ; 执行 命令 , 可以获取 系统中 ffmpeg 可用的 DirectShow 音视频输入设备 ; 命令参数解析 : -list_devices true : 列出所有 ffmpeg 的 指定类型的可

    2024年04月25日
    浏览(92)
  • 音视频 ffmpeg视频裁剪

    将输入视频帧的宽度和高度从x和y值表示的位置裁剪到指定的宽度和高度;x和y是输出的左上角坐标,协调系统的中心是输入视频帧的左上角。 如果使用了可选的keep_aspect参数,将会改变输出SAR(样本宽比)以补偿新的DAR(显示长宽比) 推荐一个零声学院项目课,个人觉得老师讲得不

    2024年02月10日
    浏览(52)
  • 音视频 ffmpeg命令视频录制(Windows)

    先安装dshow软件 Screen Capturer Recorder, 项目地址:https://sourceforge.net/projects/screencapturer/files/ 然后查看可用设备名字:ffmpeg -list_devices true -f dshow -i dummy 录制视频(默认参数) 录制声音(默认参数) 同时录制声音和视频(默认参数) 查看视频录制的可选参数 查看视频录制的可

    2024年02月10日
    浏览(71)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包