FFmpeg包括了目前领先的音/视频编码库libavcodec,提供了录制、转换以及流化音视频的完整解决方案。
其强大的功能包括视频采集功能、视频格式转换、视频抓图、给视频加水印等。
安装
-
安装FFmpeg前,需要先安装依赖库:
sudo apt-get -y install autoconf automake build-essential \ libass-dev libfreetype6-dev libsdl2-dev libtheora-dev \ libtool libva-dev libvdpau-dev libvorbis-dev libxcb1-dev \ libxcb-shm0-dev libxcb-xfixes0-dev pkg-config texinfo zlib1g-dev
-
汇编库
Yasm是一个完全重写的NASM(The Netwide Assembler)汇编; NASM是一个为可移植性与模块化而设计的一个80x86的汇编器。 它支持相当多的目标文件格式,包括Linux,*BSD,a.out,ELF, COFF,Mach−O,Microsoft 16−bit OBJ,Win32以及Win64, 同时也支持简单的二进制文件生成。它的语法被设计的简单易懂, 相较Intel的语法更为简单,支持目前已知的所有x86架构之上的 扩展语法,同时也拥有对宏命令的良好支持。 sudo apt-get install yasm sudo apt-get install nasm
-
视频库
# 要支持X264等视频处理,就需要安装相应的库 sudo apt-get install libx264-dev sudo apt-get install libx265-dev
-
音频库
# 要支持常见的音频处理,需要安装: sudo apt-get install libfdk-aac-dev sudo apt-get install libmp3lame-dev sudo apt-get install libopus-dev
-
FFmpeg安装
# 通过源码安装,需要先下载最新的源码: cd /tmp/ffmpeg wget http://ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2 tar xjvf ffmpeg-snapshot.tar.bz2 cd ffmpeg # 下载好后,就可以进行安装了,以安装在/opt/ffmpeg为例 ./configure --prefix=/opt/ffmpeg --enable-libx264 --disable-yasm \ --enable-nonfree --enable-libfdk-aac --enable-shared \ --enable-gpl --enable-libmp3lame --enable-libopus \ --extra-cflags=-I/usr/local/include --extra-ldflags=-L/usr/local/lib make make install # 配置 安装后,需要做基本的配置才可使用。 # 库配置 配置库所在路径,以便FFmpeg能加载相应库。打开配置文件sudo vi /etc/ld.so.conf,添加一行库路径: /opt/ffmpeg/lib 然后执行sudo ldconfig,重新加载配置以生效。 # 路径配置 为能随时使用FFmpeg,需要把对应目录添加到路径中。 sudo vi /etc/profile, 增加PATH: export PATH=/opt/ffmpeg/bin:$PATH 配置生效: source /etc/profile
-
测试
···
ffmpegffmpeg version N-104476-g9139dc6140 Copyright (c) 2000-2021 the FFmpeg developers built with gcc 7 (Ubuntu 7.5.0-3ubuntu1~18.04) configuration: --prefix=/opt/ffmpeg --enable-libx264 --disable-yasm --enable-nonfree --enable-libfdk-aac --enable-shared --enable-gpl --enable-libmp3lame --enable-libopus --extra-cflags=-I/usr/local/include --extra-ldflags=-L/usr/local/lib libavutil 57. 7.100 / 57. 7.100 libavcodec 59. 12.100 / 59. 12.100 libavformat 59. 8.100 / 59. 8.100 libavdevice 59. 0.101 / 59. 0.101 libavfilter 8. 16.101 / 8. 16.101 libswscale 6. 1.100 / 6. 1.100 libswresample 4. 0.100 / 4. 0.100 libpostproc 56. 0.100 / 56. 0.100 Hyper fast Audio and Video encoder usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}... Use -h to get full help or, even better, run 'man ffmpeg' 从视频文件中提取音频数据: ffmpeg -i ./test.mp4 -vn -c:a libfdk_aac -ar 44100 -channels 2 -profile:a aac_he test.aac ffplay test.acc ···