Compile FFmpeg on Ubuntu

Get the Dependencies ¶

Copy and paste the whole code box for each step. First install the dependencies:
sudo apt-get update
sudo apt-get -y –force-yes install autoconf automake build-essential libass-dev libfreetype6-dev \
libsdl1.2-dev libtheora-dev libtool libva-dev libvdpau-dev libvorbis-dev libxcb1-dev libxcb-shm0-dev \
libxcb-xfixes0-dev pkg-config texi2html zlib1g-dev

Note: Server users can omit the ffplay and x11grab dependencies: libsdl1.2-dev libva-dev libvdpau-dev libxcb1-dev libxcb-shm0-dev libxcb-xfixes0-dev.

Now make a directory for the source files that will be downloaded later in this guide:
mkdir ~/ffmpeg_sources


Compilation & Installation

You can compile ffmpeg to your liking. If you do not require certain encoders you may skip the relevant section and then remove the appropriate ./configure option in FFmpeg. For example, if libopus is not needed, then skip that section and then remove –enable-libopus from the Install FFmpeg section.

This guide is designed to be non-intrusive and will create several directories in your home directory:
•ffmpeg_sources – Where the source files will be downloaded.
•ffmpeg_build – Where the files will be built and libraries installed.
•bin – Where the resulting binaries (ffmpeg, ffplay, ffserver, x264, and yasm) will be installed.

You can easily undo any of this as shown in Reverting Changes Made by This Guide.

Yasm

An assembler for x86 optimizations used by x264 and FFmpeg. Highly recommended or your resulting build may be very slow.

If your repository offers a yasm package ≥ 1.2.0 then you can install that instead of compiling:
sudo apt-get install yasm

Otherwise you can compile:
cd ~/ffmpeg_sources
wget http://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=” HOME/ffmpegbuild"bindir=" HOME/bin”
make
make install
make distclean

libx264

H.264 video encoder. See the H.264 Encoding Guide for more information and usage examples.

Requires ffmpeg to be configured with –enable-gpl –enable-libx264.

If your repository offers a libx264-dev package ≥ 0.118 then you can install that instead of compiling:
sudo apt-get install libx264-dev

Otherwise you can compile:
cd ~/ffmpeg_sources
wget http://download.videolan.org/pub/x264/snapshots/last_x264.tar.bz2
tar xjvf last_x264.tar.bz2
cd x264-snapshot*
PATH=” HOME/bin: PATH” ./configure –prefix=” HOME/ffmpegbuild"bindir=" HOME/bin” –enable-static
PATH=” HOME/bin: PATH” make
make install
make distclean

libx265

H.265/HEVC video encoder. See the H.265 Encoding Guide for more information and usage examples.
sudo apt-get install cmake mercurial
cd ~/ffmpeg_sources
hg clone https://bitbucket.org/multicoreware/x265
cd ~/ffmpeg_sources/x265/build/linux
PATH=” HOME/bin: PATH” cmake -G “Unix Makefiles” -DCMAKE_INSTALL_PREFIX=”$HOME/ffmpeg_build” -DENABLE_SHARED:bool=off ../../source
make
make install
make distclean

libfdk-aac

AAC audio encoder. See the AAC Audio Encoding Guide for more information and usage examples.

Requires ffmpeg to be configured with –enable-libfdk_aac (and –enable-nonfree if you also included –enable-gpl).
cd ~/ffmpeg_sources
wget -O fdk-aac.tar.gz https://github.com/mstorsjo/fdk-aac/tarball/master
tar xzvf fdk-aac.tar.gz
cd mstorsjo-fdk-aac*
autoreconf -fiv
./configure –prefix=”$HOME/ffmpeg_build” –disable-shared
make
make install
make distclean

libmp3lame

MP3 audio encoder.

Requires ffmpeg to be configured with –enable-libmp3lame.

If your repository offers a libmp3lame-dev package ≥ 3.98.3 then you can install that instead of compiling:
sudo apt-get install libmp3lame-dev

Otherwise you can compile:
sudo apt-get install nasm
cd ~/ffmpeg_sources
wget http://downloads.sourceforge.net/project/lame/lame/3.99/lame-3.99.5.tar.gz
tar xzvf lame-3.99.5.tar.gz
cd lame-3.99.5
./configure –prefix=”$HOME/ffmpeg_build” –enable-nasm –disable-shared
make
make install
make distclean

libopus

Opus audio decoder and encoder.

Requires ffmpeg to be configured with –enable-libopus.

If your repository offers a libopus-dev package ≥ 1.1 then you can install that instead of compiling:
sudo apt-get install libopus-dev

Otherwise you can compile:
cd ~/ffmpeg_sources
wget http://downloads.xiph.org/releases/opus/opus-1.1.tar.gz
tar xzvf opus-1.1.tar.gz
cd opus-1.1
./configure –prefix=”$HOME/ffmpeg_build” –disable-shared
make
make install
make distclean

libvpx

VP8/VP9 video encoder and decoder. See the VP8 Video Encoding Guide for more information and usage examples.

Requires ffmpeg to be configured with –enable-libvpx.
cd ~/ffmpeg_sources
wget http://webm.googlecode.com/files/libvpx-v1.3.0.tar.bz2
tar xjvf libvpx-v1.3.0.tar.bz2
cd libvpx-v1.3.0
PATH=” HOME/bin: PATH” ./configure –prefix=” HOME/ffmpegbuilddisableexamplesdisableunittestsPATH= HOME/bin:$PATH” make
make install
make clean

ffmpeg
cd ~/ffmpeg_sources
wget http://ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2
tar xjvf ffmpeg-snapshot.tar.bz2
cd ffmpeg
PATH=” HOME/bin: PATH” PKG_CONFIG_PATH=” HOME/ffmpegbuild/lib/pkgconfig./configure prefix= HOME/ffmpeg_build” \
–pkg-config-flags=”–static” \
–extra-cflags=”-I HOME/ffmpegbuild/include extraldflags=L HOME/ffmpeg_build/lib” \
–bindir=” HOME/bin enablegpl enablelibass enablelibfdkaac enablelibfreetype enablelibmp3lame enablelibopus enablelibtheora enablelibvorbis enablelibvpx enablelibx264 enablelibx265 enablenonfreePATH= HOME/bin:$PATH” make
make install
make distclean
hash -r


Conclusion

Installation is now complete and ffmpeg is now ready for use. Your newly compiled FFmpeg programs are in ~/bin.

Usage

There are several methods to use your new ffmpeg.
•Navigate to ~/bin and execute the binary: cd ~/bin && ./ffmpeg -i ~/input.mp4 ~/videos/output.mkv (notice the ./)
•Or use the full path to the binary: /home/yourusername/bin/ffmpeg -i ../input.mp4 ../videos/output.mkv

If you want the ffmpeg command to just work from anywhere:
•Log in and log out
•Or run source ~/.profile

Note: ~/bin is included in the standard Ubuntu $PATH by default (via the ~/.profile file), but only when the ~/bin directory actually exists. This is why you must log out then log in or run source ~/.profile if you just created ~/bin. See ​Ubuntu Wiki: Persistent Environment Variables for more info.

Documentation

If you want to run man ffmpeg to have local access to the documentation:
echo “MANPATH_MAP HOME/bin HOME/ffmpeg_build/share/man” >> ~/.manpath

You may then have to log out and then log in for man ffmpeg to work.

HTML formatted documentation is available in ~/ffmpeg_build/share/doc/ffmpeg.

You can also refer to the online FFmpeg documentation, but remember that it is regenerated daily and is meant to be used with the most current ffmpeg (meaning an old build may not be compatible with the online docs).

Additional Notes
•See the H.264 Encoding Guide for some encoding examples.
•If you do not see FFmpeg developers in your ffmpeg console output then something went wrong and you’re probably using the ​fake “ffmpeg” from the repository (the counterfeit “ffmpeg” was eventually removed and the real ffmpeg returned in 15.04).
•You can delete the ffmpeg_sources directory if you want to.


Updating FFmpeg

Development of FFmpeg is active and an occasional update can give you new features and bug fixes. First you need to delete (or move) the old files:
rm -rf ~/ffmpeg_build ~/ffmpeg_sources ~/bin/{ffmpeg,ffprobe,ffplay,ffserver,vsyasm,x264,x265,yasm,ytasm}

Now just follow the guide from the beginning.


Reverting Changes Made by This Guide
rm -rf ~/ffmpeg_build ~/ffmpeg_sources ~/bin/{ffmpeg,ffprobe,ffplay,ffserver,vsyasm,x264,x265,yasm,ytasm}
sudo apt-get autoremove autoconf automake build-essential cmake libass-dev libfreetype6-dev \
libmp3lame-dev libopus-dev libsdl1.2-dev libtheora-dev libtool libva-dev libvdpau-dev \
libvorbis-dev libvpx-dev libx264-dev libxcb1-dev libxcb-shm0-dev ibxcb-xfixes0-dev mercurial texi2html zlib1g-dev
sed -i ‘/ffmpeg_build/c\’ ~/.manpath
hash -r


If You Need Help

Feel free to ask questions at the #ffmpeg IRC channel or the ​ffmpeg-user mailing list.

内容概要:《2024年中国城市低空经济发展指数报告》由36氪研究院发布,指出低空经济作为新质生产力的代表,已成为中国经济新的增长点。报告从发展环境、资金投入、创新能力、基础支撑和发展成效五个维度构建了综合指数评价体系,评估了全国重点城市的低空经济发展状况。北京和深圳在总指数中名列前茅,分别以91.26和84.53的得分领先,展现出强大的资金投入、创新能力和基础支撑。低空经济主要涉及无人机、eVTOL(电动垂直起降飞行器)和直升机等产品,广泛应用于农业、物流、交通、应急救援等领域。政策支持、市场需求和技术进步共同推动了低空经济的快速发展,预计到2026年市场规模将突破万亿元。 适用人群:对低空经济发展感兴趣的政策制定者、投资者、企业和研究人员。 使用场景及目标:①了解低空经济的定义、分类和发展驱动力;②掌握低空经济的主要应用场景和市场规模预测;③评估各城市在低空经济发展中的表现和潜力;④为政策制定、投资决策和企业发展提供参考依据。 其他说明:报告强调了政策监管、产业生态建设和区域融合错位的重要性,提出了加强法律法规建设、人才储备和基础设施建设等建议。低空经济正加速向网络化、智能化、规模化和集聚化方向发展,各地应找准自身比较优势,实现差异化发展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值