Part 1: How to compile FFmpeg on Ubuntu 20.04
Step 11: install libvorbis
cd ~/ffmpeg_sources curl -O -L http://downloads.xiph.org/releases/vorbis/libvorbis-1.3.5.tar.gz tar xzvf libvorbis-1.3.5.tar.gz cd libvorbis-1.3.5 ./configure --prefix="$HOME/ffmpeg_build" --with-ogg="$HOME/ffmpeg_build" --disable-shared make make install
result:
root@tutorialspots:~/ffmpeg_sources/libogg-1.3.3# cd ~/ffmpeg_sources root@tutorialspots:~/ffmpeg_sources# curl -O -L http://downloads.xiph.org/releases/vorbis/libvorbis-1.3.5.tar.gz % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 161 100 161 0 0 298 0 --:--:-- --:--:-- --:--:-- 298 100 1600k 100 1600k 0 0 246k 0 0:00:06 0:00:06 --:--:-- 327k root@tutorialspots:~/ffmpeg_sources# tar xzvf libvorbis-1.3.5.tar.gz ... root@tutorialspots:~/ffmpeg_sources# cd libvorbis-1.3.5 root@tutorialspots:~/ffmpeg_sources/libvorbis-1.3.5# ./configure --prefix="$HOME/ffmpeg_build" --with-ogg="$HOME/ffmpeg_build" --disable-shared checking build system type... x86_64-unknown-linux-gnu checking host system type... x86_64-unknown-linux-gnu checking target system type... x86_64-unknown-linux-gnu checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for a thread-safe mkdir -p... /usr/bin/mkdir -p checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether make supports nested variables... yes checking whether to enable maintainer-specific portions of Makefiles... no checking for gcc... gcc checking whether the C compiler works... yes checking for C compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking whether gcc understands -c and -o together... yes checking for style of include used by make... GNU checking dependency style of gcc... gcc3 checking how to run the C preprocessor... gcc -E checking for inline... inline checking how to print strings... printf checking for a sed that does not truncate output... /usr/bin/sed checking for grep that handles long lines and -e... /usr/bin/grep checking for egrep... /usr/bin/grep -E checking for fgrep... /usr/bin/grep -F checking for ld used by gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B checking the name lister (/usr/bin/nm -B) interface... BSD nm checking whether ln -s works... yes checking the maximum length of command line arguments... 1572864 checking how to convert x86_64-unknown-linux-gnu file names to x86_64-unknown-linux-gnu format... func_convert_file_noop checking how to convert x86_64-unknown-linux-gnu file names to toolchain format... func_convert_file_noop checking for /usr/bin/ld option to reload object files... -r checking for objdump... objdump checking how to recognize dependent libraries... pass_all checking for dlltool... dlltool checking how to associate runtime and link libraries... printf %s\n checking for ar... ar checking for archiver @FILE support... @ checking for strip... strip checking for ranlib... ranlib checking command to parse /usr/bin/nm -B output from gcc object... ok checking for sysroot... no checking for a working dd... /usr/bin/dd checking how to truncate binary pipes... /usr/bin/dd bs=4096 count=1 checking for mt... mt checking if mt is a manifest tool... no checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking for dlfcn.h... yes checking for objdir... .libs checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC -DPIC checking if gcc PIC flag -fPIC -DPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking if gcc supports -c -o file.o... (cached) yes checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... no checking whether to build static libraries... yes checking GCC version... 9 checking if gcc accepts -Wdeclaration-after-statement... yes checking for memory.h... (cached) yes checking for cos in -lm... yes checking for pthread_create in -lpthread... yes checking for pkg-config... /usr/bin/pkg-config checking pkg-config is at least version 0.9.0... yes checking for OGG... no checking for Ogg... yes checking for oggpack_writealign... yes checking for size_t... yes checking for working alloca.h... yes checking for alloca... yes checking for working memcmp... yes checking that generated files are newer than configure... done configure: creating ./config.status config.status: creating Makefile config.status: creating m4/Makefile config.status: creating lib/Makefile config.status: creating lib/modes/Makefile config.status: creating lib/books/Makefile config.status: creating lib/books/coupled/Makefile config.status: creating lib/books/uncoupled/Makefile config.status: creating lib/books/floor/Makefile config.status: creating doc/Makefile config.status: creating doc/vorbisfile/Makefile config.status: creating doc/vorbisenc/Makefile config.status: creating doc/libvorbis/Makefile config.status: creating doc/Doxyfile config.status: creating include/Makefile config.status: creating include/vorbis/Makefile config.status: creating examples/Makefile config.status: creating test/Makefile config.status: creating vq/Makefile config.status: creating libvorbis.spec config.status: creating vorbis.pc config.status: creating vorbisenc.pc config.status: creating vorbisfile.pc config.status: creating vorbis-uninstalled.pc config.status: creating vorbisenc-uninstalled.pc config.status: creating vorbisfile-uninstalled.pc config.status: creating config.h config.status: executing depfiles commands config.status: executing libtool commands root@tutorialspots:~/ffmpeg_sources/libvorbis-1.3.5# make ... libtool: link: gcc -D_V_SELFTEST -O3 -Wall -Wextra -ffast-math -D_REENTRANT -fsigned-char -Wdeclaration-after-statement -DUSE_MEMORY_H -o test_sharedbook test_sharedbook-sharedbook.o -lm make[3]: Leaving directory '/root/ffmpeg_sources/libvorbis-1.3.5/lib' make[2]: Leaving directory '/root/ffmpeg_sources/libvorbis-1.3.5/lib' Making all in test make[2]: Entering directory '/root/ffmpeg_sources/libvorbis-1.3.5/test' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/root/ffmpeg_sources/libvorbis-1.3.5/test' Making all in doc make[2]: Entering directory '/root/ffmpeg_sources/libvorbis-1.3.5/doc' Making all in libvorbis make[3]: Entering directory '/root/ffmpeg_sources/libvorbis-1.3.5/doc/libvorbis' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/root/ffmpeg_sources/libvorbis-1.3.5/doc/libvorbis' Making all in vorbisfile make[3]: Entering directory '/root/ffmpeg_sources/libvorbis-1.3.5/doc/vorbisfile' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/root/ffmpeg_sources/libvorbis-1.3.5/doc/vorbisfile' Making all in vorbisenc make[3]: Entering directory '/root/ffmpeg_sources/libvorbis-1.3.5/doc/vorbisenc' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/root/ffmpeg_sources/libvorbis-1.3.5/doc/vorbisenc' make[3]: Entering directory '/root/ffmpeg_sources/libvorbis-1.3.5/doc' echo "*** Warning: Doxygen not found; documentation will not be built." *** Warning: Doxygen not found; documentation will not be built. touch doxygen-build.stamp make[3]: Leaving directory '/root/ffmpeg_sources/libvorbis-1.3.5/doc' make[2]: Leaving directory '/root/ffmpeg_sources/libvorbis-1.3.5/doc' make[2]: Entering directory '/root/ffmpeg_sources/libvorbis-1.3.5' make[2]: Leaving directory '/root/ffmpeg_sources/libvorbis-1.3.5' make[1]: Leaving directory '/root/ffmpeg_sources/libvorbis-1.3.5' root@tutorialspots:~/ffmpeg_sources/libvorbis-1.3.5# make install Making install in m4 make[1]: Entering directory '/root/ffmpeg_sources/libvorbis-1.3.5/m4' make[2]: Entering directory '/root/ffmpeg_sources/libvorbis-1.3.5/m4' make[2]: Nothing to be done for 'install-exec-am'. make[2]: Nothing to be done for 'install-data-am'. make[2]: Leaving directory '/root/ffmpeg_sources/libvorbis-1.3.5/m4' make[1]: Leaving directory '/root/ffmpeg_sources/libvorbis-1.3.5/m4' Making install in include make[1]: Entering directory '/root/ffmpeg_sources/libvorbis-1.3.5/include' Making install in vorbis make[2]: Entering directory '/root/ffmpeg_sources/libvorbis-1.3.5/include/vorbis' make[3]: Entering directory '/root/ffmpeg_sources/libvorbis-1.3.5/include/vorbis' make[3]: Nothing to be done for 'install-exec-am'. /usr/bin/mkdir -p '/root/ffmpeg_build/include/vorbis' /usr/bin/install -c -m 644 codec.h vorbisfile.h vorbisenc.h '/root/ffmpeg_build/include/vorbis' make[3]: Leaving directory '/root/ffmpeg_sources/libvorbis-1.3.5/include/vorbis' make[2]: Leaving directory '/root/ffmpeg_sources/libvorbis-1.3.5/include/vorbis' make[2]: Entering directory '/root/ffmpeg_sources/libvorbis-1.3.5/include' make[3]: Entering directory '/root/ffmpeg_sources/libvorbis-1.3.5/include' make[3]: Nothing to be done for 'install-exec-am'. make[3]: Nothing to be done for 'install-data-am'. make[3]: Leaving directory '/root/ffmpeg_sources/libvorbis-1.3.5/include' make[2]: Leaving directory '/root/ffmpeg_sources/libvorbis-1.3.5/include' make[1]: Leaving directory '/root/ffmpeg_sources/libvorbis-1.3.5/include' Making install in vq make[1]: Entering directory '/root/ffmpeg_sources/libvorbis-1.3.5/vq' make[2]: Entering directory '/root/ffmpeg_sources/libvorbis-1.3.5/vq' make[2]: Nothing to be done for 'install-exec-am'. make[2]: Nothing to be done for 'install-data-am'. make[2]: Leaving directory '/root/ffmpeg_sources/libvorbis-1.3.5/vq' make[1]: Leaving directory '/root/ffmpeg_sources/libvorbis-1.3.5/vq' Making install in lib make[1]: Entering directory '/root/ffmpeg_sources/libvorbis-1.3.5/lib' Making install in modes make[2]: Entering directory '/root/ffmpeg_sources/libvorbis-1.3.5/lib/modes' make[3]: Entering directory '/root/ffmpeg_sources/libvorbis-1.3.5/lib/modes' make[3]: Nothing to be done for 'install-exec-am'. make[3]: Nothing to be done for 'install-data-am'. make[3]: Leaving directory '/root/ffmpeg_sources/libvorbis-1.3.5/lib/modes' make[2]: Leaving directory '/root/ffmpeg_sources/libvorbis-1.3.5/lib/modes' Making install in books make[2]: Entering directory '/root/ffmpeg_sources/libvorbis-1.3.5/lib/books' Making install in coupled make[3]: Entering directory '/root/ffmpeg_sources/libvorbis-1.3.5/lib/books/coupled' make[4]: Entering directory '/root/ffmpeg_sources/libvorbis-1.3.5/lib/books/coupled' make[4]: Nothing to be done for 'install-exec-am'. make[4]: Nothing to be done for 'install-data-am'. make[4]: Leaving directory '/root/ffmpeg_sources/libvorbis-1.3.5/lib/books/coupled' make[3]: Leaving directory '/root/ffmpeg_sources/libvorbis-1.3.5/lib/books/coupled' Making install in uncoupled make[3]: Entering directory '/root/ffmpeg_sources/libvorbis-1.3.5/lib/books/uncoupled' make[4]: Entering directory '/root/ffmpeg_sources/libvorbis-1.3.5/lib/books/uncoupled' make[4]: Nothing to be done for 'install-exec-am'. make[4]: Nothing to be done for 'install-data-am'. make[4]: Leaving directory '/root/ffmpeg_sources/libvorbis-1.3.5/lib/books/uncoupled' make[3]: Leaving directory '/root/ffmpeg_sources/libvorbis-1.3.5/lib/books/uncoupled' Making install in floor make[3]: Entering directory '/root/ffmpeg_sources/libvorbis-1.3.5/lib/books/floor' make[4]: Entering directory '/root/ffmpeg_sources/libvorbis-1.3.5/lib/books/floor' make[4]: Nothing to be done for 'install-exec-am'. make[4]: Nothing to be done for 'install-data-am'. make[4]: Leaving directory '/root/ffmpeg_sources/libvorbis-1.3.5/lib/books/floor' make[3]: Leaving directory '/root/ffmpeg_sources/libvorbis-1.3.5/lib/books/floor' make[3]: Entering directory '/root/ffmpeg_sources/libvorbis-1.3.5/lib/books' make[4]: Entering directory '/root/ffmpeg_sources/libvorbis-1.3.5/lib/books' make[4]: Nothing to be done for 'install-exec-am'. make[4]: Nothing to be done for 'install-data-am'. make[4]: Leaving directory '/root/ffmpeg_sources/libvorbis-1.3.5/lib/books' make[3]: Leaving directory '/root/ffmpeg_sources/libvorbis-1.3.5/lib/books' make[2]: Leaving directory '/root/ffmpeg_sources/libvorbis-1.3.5/lib/books' make[2]: Entering directory '/root/ffmpeg_sources/libvorbis-1.3.5/lib' make[3]: Entering directory '/root/ffmpeg_sources/libvorbis-1.3.5/lib' /usr/bin/mkdir -p '/root/ffmpeg_build/lib' /bin/bash ../libtool --mode=install /usr/bin/install -c libvorbis.la libvorbisfile.la libvorbisenc.la '/root/ffmpeg_build/lib' libtool: install: /usr/bin/install -c .libs/libvorbis.lai /root/ffmpeg_build/lib/libvorbis.la libtool: install: /usr/bin/install -c .libs/libvorbisfile.lai /root/ffmpeg_build/lib/libvorbisfile.la libtool: install: /usr/bin/install -c .libs/libvorbisenc.lai /root/ffmpeg_build/lib/libvorbisenc.la libtool: install: /usr/bin/install -c .libs/libvorbis.a /root/ffmpeg_build/lib/libvorbis.a libtool: install: chmod 644 /root/ffmpeg_build/lib/libvorbis.a libtool: install: ranlib /root/ffmpeg_build/lib/libvorbis.a libtool: install: /usr/bin/install -c .libs/libvorbisfile.a /root/ffmpeg_build/lib/libvorbisfile.a libtool: install: chmod 644 /root/ffmpeg_build/lib/libvorbisfile.a libtool: install: ranlib /root/ffmpeg_build/lib/libvorbisfile.a libtool: install: /usr/bin/install -c .libs/libvorbisenc.a /root/ffmpeg_build/lib/libvorbisenc.a libtool: install: chmod 644 /root/ffmpeg_build/lib/libvorbisenc.a libtool: install: ranlib /root/ffmpeg_build/lib/libvorbisenc.a libtool: finish: PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/sbin" ldconfig -n /root/ffmpeg_build/lib ---------------------------------------------------------------------- Libraries have been installed in: /root/ffmpeg_build/lib If you ever happen to want to link against installed libraries in a given directory, LIBDIR, you must either use libtool, and specify the full pathname of the library, or use the '-LLIBDIR' flag during linking and do at least one of the following: - add LIBDIR to the 'LD_LIBRARY_PATH' environment variable during execution - add LIBDIR to the 'LD_RUN_PATH' environment variable during linking - use the '-Wl,-rpath -Wl,LIBDIR' linker flag - have your system administrator add LIBDIR to '/etc/ld.so.conf' See any operating system documentation about shared libraries for more information, such as the ld(1) and ld.so(8) manual pages. ---------------------------------------------------------------------- make[3]: Nothing to be done for 'install-data-am'. make[3]: Leaving directory '/root/ffmpeg_sources/libvorbis-1.3.5/lib' make[2]: Leaving directory '/root/ffmpeg_sources/libvorbis-1.3.5/lib' make[1]: Leaving directory '/root/ffmpeg_sources/libvorbis-1.3.5/lib' Making install in test make[1]: Entering directory '/root/ffmpeg_sources/libvorbis-1.3.5/test' make[2]: Entering directory '/root/ffmpeg_sources/libvorbis-1.3.5/test' make[2]: Nothing to be done for 'install-exec-am'. make[2]: Nothing to be done for 'install-data-am'. make[2]: Leaving directory '/root/ffmpeg_sources/libvorbis-1.3.5/test' make[1]: Leaving directory '/root/ffmpeg_sources/libvorbis-1.3.5/test' Making install in doc make[1]: Entering directory '/root/ffmpeg_sources/libvorbis-1.3.5/doc' Making install in libvorbis make[2]: Entering directory '/root/ffmpeg_sources/libvorbis-1.3.5/doc/libvorbis' make[3]: Entering directory '/root/ffmpeg_sources/libvorbis-1.3.5/doc/libvorbis' make[3]: Nothing to be done for 'install-exec-am'. /usr/bin/mkdir -p '/root/ffmpeg_build/share/doc/libvorbis-1.3.5/libvorbis' /usr/bin/install -c -m 644 index.html reference.html style.css vorbis_comment.html vorbis_info.html vorbis_analysis_blockout.html vorbis_analysis_buffer.html vorbis_analysis_headerout.html vorbis_analysis_init.html vorbis_analysis_wrote.html vorbis_analysis.html vorbis_bitrate_addblock.html vorbis_bitrate_flushpacket.html vorbis_block_init.html vorbis_block_clear.html vorbis_dsp_clear.html vorbis_granule_time.html vorbis_version_string.html vorbis_info_blocksize.html vorbis_info_clear.html vorbis_info_init.html vorbis_comment_add.html vorbis_comment_add_tag.html vorbis_comment_clear.html vorbis_comment_init.html vorbis_comment_query.html vorbis_comment_query_count.html vorbis_commentheader_out.html vorbis_packet_blocksize.html vorbis_synthesis.html vorbis_synthesis_blockin.html vorbis_synthesis_halfrate.html vorbis_synthesis_halfrate_p.html vorbis_synthesis_headerin.html vorbis_synthesis_idheader.html vorbis_synthesis_init.html vorbis_synthesis_lapout.html vorbis_synthesis_pcmout.html vorbis_synthesis_read.html vorbis_synthesis_restart.html '/root/ffmpeg_build/share/doc/libvorbis-1.3.5/libvorbis' /usr/bin/install -c -m 644 vorbis_synthesis_trackonly.html vorbis_block.html vorbis_dsp_state.html return.html overview.html '/root/ffmpeg_build/share/doc/libvorbis-1.3.5/libvorbis' make[3]: Leaving directory '/root/ffmpeg_sources/libvorbis-1.3.5/doc/libvorbis' make[2]: Leaving directory '/root/ffmpeg_sources/libvorbis-1.3.5/doc/libvorbis' Making install in vorbisfile make[2]: Entering directory '/root/ffmpeg_sources/libvorbis-1.3.5/doc/vorbisfile' make[3]: Entering directory '/root/ffmpeg_sources/libvorbis-1.3.5/doc/vorbisfile' make[3]: Nothing to be done for 'install-exec-am'. /usr/bin/mkdir -p '/root/ffmpeg_build/share/doc/libvorbis-1.3.5/vorbisfile' /usr/bin/install -c -m 644 OggVorbis_File.html callbacks.html chaining_example_c.html chainingexample.html crosslap.html datastructures.html decoding.html example.html exampleindex.html fileinfo.html index.html initialization.html ov_bitrate.html ov_bitrate_instant.html ov_callbacks.html ov_clear.html ov_comment.html ov_crosslap.html ov_fopen.html ov_info.html ov_open.html ov_open_callbacks.html ov_pcm_seek.html ov_pcm_seek_lap.html ov_pcm_seek_page.html ov_pcm_seek_page_lap.html ov_pcm_tell.html ov_pcm_total.html ov_raw_seek.html ov_raw_seek_lap.html ov_raw_tell.html ov_raw_total.html ov_read.html ov_read_float.html ov_read_filter.html ov_seekable.html ov_serialnumber.html ov_streams.html ov_test.html ov_test_callbacks.html '/root/ffmpeg_build/share/doc/libvorbis-1.3.5/vorbisfile' /usr/bin/install -c -m 644 ov_test_open.html ov_time_seek.html ov_time_seek_lap.html ov_time_seek_page.html ov_time_seek_page_lap.html ov_time_tell.html ov_time_total.html overview.html reference.html seekexample.html seeking.html seeking_example_c.html seeking_test_c.html seekingexample.html style.css threads.html vorbisfile_example_c.html '/root/ffmpeg_build/share/doc/libvorbis-1.3.5/vorbisfile' make[3]: Leaving directory '/root/ffmpeg_sources/libvorbis-1.3.5/doc/vorbisfile' make[2]: Leaving directory '/root/ffmpeg_sources/libvorbis-1.3.5/doc/vorbisfile' Making install in vorbisenc make[2]: Entering directory '/root/ffmpeg_sources/libvorbis-1.3.5/doc/vorbisenc' make[3]: Entering directory '/root/ffmpeg_sources/libvorbis-1.3.5/doc/vorbisenc' make[3]: Nothing to be done for 'install-exec-am'. /usr/bin/mkdir -p '/root/ffmpeg_build/share/doc/libvorbis-1.3.5/vorbisenc' /usr/bin/install -c -m 644 changes.html examples.html index.html ovectl_ratemanage2_arg.html ovectl_ratemanage_arg.html overview.html reference.html style.css vorbis_encode_ctl.html vorbis_encode_init.html vorbis_encode_setup_init.html vorbis_encode_setup_managed.html vorbis_encode_setup_vbr.html vorbis_encode_init_vbr.html '/root/ffmpeg_build/share/doc/libvorbis-1.3.5/vorbisenc' make[3]: Leaving directory '/root/ffmpeg_sources/libvorbis-1.3.5/doc/vorbisenc' make[2]: Leaving directory '/root/ffmpeg_sources/libvorbis-1.3.5/doc/vorbisenc' make[2]: Entering directory '/root/ffmpeg_sources/libvorbis-1.3.5/doc' make[3]: Entering directory '/root/ffmpeg_sources/libvorbis-1.3.5/doc' make[3]: Nothing to be done for 'install-exec-am'. /bin/bash /root/ffmpeg_sources/libvorbis-1.3.5/install-sh -d /root/ffmpeg_build/share/doc/libvorbis-1.3.5 if test -d vorbis; then \ for dir in vorbis/*; do \ if test -d $dir; then \ b=`basename $dir`; \ /bin/bash /root/ffmpeg_sources/libvorbis-1.3.5/install-sh -d /root/ffmpeg_build/share/doc/libvorbis-1.3.5/$b; \ for f in $dir/*; do \ /usr/bin/install -c -m 644 $f /root/ffmpeg_build/share/doc/libvorbis-1.3.5/$b; \ done \ fi \ done \ fi /usr/bin/mkdir -p '/root/ffmpeg_build/share/doc/libvorbis-1.3.5' /usr/bin/install -c -m 644 rfc5215.xml rfc5215.txt eightphase.png fish_xiph_org.png floor1_inverse_dB_table.html floorval.png fourphase.png framing.html helper.html index.html oggstream.html programming.html squarepolar.png stereo.html stream.png v-comment.html vorbis-clip.txt vorbis-errors.txt vorbis-fidelity.html doxygen-build.stamp '/root/ffmpeg_build/share/doc/libvorbis-1.3.5' make[3]: Leaving directory '/root/ffmpeg_sources/libvorbis-1.3.5/doc' make[2]: Leaving directory '/root/ffmpeg_sources/libvorbis-1.3.5/doc' make[1]: Leaving directory '/root/ffmpeg_sources/libvorbis-1.3.5/doc' make[1]: Entering directory '/root/ffmpeg_sources/libvorbis-1.3.5' make[2]: Entering directory '/root/ffmpeg_sources/libvorbis-1.3.5' make[2]: Nothing to be done for 'install-exec-am'. /usr/bin/mkdir -p '/root/ffmpeg_build/share/aclocal' /usr/bin/install -c -m 644 vorbis.m4 '/root/ffmpeg_build/share/aclocal' /usr/bin/mkdir -p '/root/ffmpeg_build/lib/pkgconfig' /usr/bin/install -c -m 644 vorbis.pc vorbisenc.pc vorbisfile.pc '/root/ffmpeg_build/lib/pkgconfig' make[2]: Leaving directory '/root/ffmpeg_sources/libvorbis-1.3.5' make[1]: Leaving directory '/root/ffmpeg_sources/libvorbis-1.3.5' root@tutorialspots:~/ffmpeg_sources/libvorbis-1.3.5#
Or you can use package libvorbis-dev
apt install libvorbis-dev
Step 12: Install openssl
cd ~/ffmpeg_sources wget https://www.openssl.org/source/old/1.0.1/openssl-1.0.1j.tar.gz tar -xvf openssl-1.0.1j.tar.gz cd openssl-1.0.1j ./config --prefix="$HOME/ffmpeg_build" make make install
result:
root@tutorialspots:~/ffmpeg_sources/libvorbis-1.3.5# cd ~/ffmpeg_sources root@tutorialspots:~/ffmpeg_sources# wget https://www.openssl.org/source/old/1.0.1/openssl-1.0.1j.tar.gz --2024-02-24 22:55:11-- https://www.openssl.org/source/old/1.0.1/openssl-1.0.1j.tar.gz Resolving www.openssl.org (www.openssl.org)... 2600:1901:0:1812::, 34.36.58.177 Connecting to www.openssl.org (www.openssl.org)|2600:1901:0:1812::|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 4432964 (4.2M) [application/x-tar] Saving to: ‘openssl-1.0.1j.tar.gz’ openssl-1.0.1j.tar. 100%[===================>] 4.23M 1.86MB/s in 2.3s 2024-02-24 22:55:15 (1.86 MB/s) - ‘openssl-1.0.1j.tar.gz’ saved [4432964/4432964] root@tutorialspots:~/ffmpeg_sources# tar -xvf openssl-1.0.1j.tar.gz ... root@tutorialspots:~/ffmpeg_sources# cd openssl-1.0.1j root@tutorialspots:~/ffmpeg_sources/openssl-1.0.1j# ./config --prefix="$HOME/ffmpeg_build" ... make[1]: Entering directory '/root/ffmpeg_sources/openssl-1.0.1j/ssl' ssl.h => ../include/openssl/ssl.h ssl2.h => ../include/openssl/ssl2.h ssl3.h => ../include/openssl/ssl3.h ssl23.h => ../include/openssl/ssl23.h tls1.h => ../include/openssl/tls1.h dtls1.h => ../include/openssl/dtls1.h kssl.h => ../include/openssl/kssl.h srtp.h => ../include/openssl/srtp.h ssltest.c => ../test/ssltest.c heartbeat_test.c => ../test/heartbeat_test.c make[1]: Leaving directory '/root/ffmpeg_sources/openssl-1.0.1j/ssl' making links in engines... make[1]: Entering directory '/root/ffmpeg_sources/openssl-1.0.1j/engines' making links in engines/ccgost... make[2]: Entering directory '/root/ffmpeg_sources/openssl-1.0.1j/engines/ccgost' make[2]: Nothing to be done for 'links'. make[2]: Leaving directory '/root/ffmpeg_sources/openssl-1.0.1j/engines/ccgost' make[1]: Leaving directory '/root/ffmpeg_sources/openssl-1.0.1j/engines' making links in apps... make[1]: Entering directory '/root/ffmpeg_sources/openssl-1.0.1j/apps' make[1]: Nothing to be done for 'links'. make[1]: Leaving directory '/root/ffmpeg_sources/openssl-1.0.1j/apps' making links in test... make[1]: Entering directory '/root/ffmpeg_sources/openssl-1.0.1j/test' make[1]: Nothing to be done for 'links'. make[1]: Leaving directory '/root/ffmpeg_sources/openssl-1.0.1j/test' making links in tools... make[1]: Entering directory '/root/ffmpeg_sources/openssl-1.0.1j/tools' make[1]: Nothing to be done for 'links'. make[1]: Leaving directory '/root/ffmpeg_sources/openssl-1.0.1j/tools' generating dummy tests (if needed)... make[1]: Entering directory '/root/ffmpeg_sources/openssl-1.0.1j/test' make[1]: Nothing to be done for 'generate'. make[1]: Leaving directory '/root/ffmpeg_sources/openssl-1.0.1j/test' Configured for linux-x86_64. root@tutorialspots:~/ffmpeg_sources/openssl-1.0.1j# make ... root@tutorialspots:~/ffmpeg_sources/openssl-1.0.1j# make install ... make[2]: Leaving directory '/root/ffmpeg_sources/openssl-1.0.1j/engines/ccgost' make[1]: Leaving directory '/root/ffmpeg_sources/openssl-1.0.1j/engines' making install in apps... make[1]: Entering directory '/root/ffmpeg_sources/openssl-1.0.1j/apps' installing openssl installing CA.sh installing CA.pl installing tsget make[1]: Leaving directory '/root/ffmpeg_sources/openssl-1.0.1j/apps' making install in test... make[1]: Entering directory '/root/ffmpeg_sources/openssl-1.0.1j/test' make[1]: Nothing to be done for 'install'. make[1]: Leaving directory '/root/ffmpeg_sources/openssl-1.0.1j/test' making install in tools... make[1]: Entering directory '/root/ffmpeg_sources/openssl-1.0.1j/tools' make[1]: Leaving directory '/root/ffmpeg_sources/openssl-1.0.1j/tools' installing libcrypto.a installing libssl.a cp libcrypto.pc /root/ffmpeg_build/lib/pkgconfig chmod 644 /root/ffmpeg_build/lib/pkgconfig/libcrypto.pc cp libssl.pc /root/ffmpeg_build/lib/pkgconfig chmod 644 /root/ffmpeg_build/lib/pkgconfig/libssl.pc cp openssl.pc /root/ffmpeg_build/lib/pkgconfig chmod 644 /root/ffmpeg_build/lib/pkgconfig/openssl.pc root@tutorialspots:~/ffmpeg_sources/openssl-1.0.1j#
Step 13: install libvpx
cd ~/ffmpeg_sources git clone --depth 1 https://chromium.googlesource.com/webm/libvpx.git cd libvpx CC=c99 ./configure --prefix="$HOME/ffmpeg_build" --disable-examples --disable-unit-tests --enable-vp9-highbitdepth --as=yasm make make install
result:
root@tutorialspots:~/ffmpeg_sources/openssl-1.0.1j# cd ~/ffmpeg_sources root@tutorialspots:~/ffmpeg_sources# git clone --depth 1 https://chromium.googlesource.com/webm/libvpx.git Cloning into 'libvpx'... remote: Counting objects: 1325, done remote: Finding sources: 100% (1325/1325) remote: Total 1325 (delta 113), reused 540 (delta 113) Receiving objects: 100% (1325/1325), 5.79 MiB | 10.91 MiB/s, done. Resolving deltas: 100% (113/113), done. root@tutorialspots:~/ffmpeg_sources# cd libvpx root@tutorialspots:~/ffmpeg_sources/libvpx# CC=c99 ./configure --prefix="$HOME/ffmpeg_build" --disable-examples --disable-unit-tests --enable-vp9-highbitdepth --as=yasm disabling examples disabling unit_tests enabling vp9_highbitdepth enabling vp8_encoder enabling vp8_decoder enabling vp9_encoder enabling vp9_decoder Configuring for target 'x86_64-linux-gcc' enabling x86_64 enabling runtime_cpu_detect enabling mmx enabling sse enabling sse2 enabling sse3 enabling ssse3 enabling sse4_1 enabling avx enabling avx2 enabling avx512 using yasm enabling postproc enabling webm_io enabling libyuv Creating makefiles for x86_64-linux-gcc libs Creating makefiles for x86_64-linux-gcc tools Creating makefiles for x86_64-linux-gcc docs root@tutorialspots:~/ffmpeg_sources/libvpx# make ... root@tutorialspots:~/ffmpeg_sources/libvpx# make install [INSTALL] /root/ffmpeg_build/include/vpx/vp8.h [INSTALL] /root/ffmpeg_build/include/vpx/vp8cx.h [INSTALL] /root/ffmpeg_build/include/vpx/vpx_ext_ratectrl.h [INSTALL] /root/ffmpeg_build/include/vpx/vp8dx.h [INSTALL] /root/ffmpeg_build/include/vpx/vpx_codec.h [INSTALL] /root/ffmpeg_build/include/vpx/vpx_frame_buffer.h [INSTALL] /root/ffmpeg_build/include/vpx/vpx_image.h [INSTALL] /root/ffmpeg_build/include/vpx/vpx_integer.h [INSTALL] /root/ffmpeg_build/include/vpx/vpx_decoder.h [INSTALL] /root/ffmpeg_build/include/vpx/vpx_encoder.h [INSTALL] /root/ffmpeg_build/include/vpx/vpx_tpl.h [INSTALL] /root/ffmpeg_build/lib/libvpx.a [INSTALL] /root/ffmpeg_build/lib/pkgconfig/vpx.pc make[1]: Nothing to be done for 'install'. make[1]: Nothing to be done for 'install'. root@tutorialspots:~/ffmpeg_sources/libvpx#
Or you can use package libvpx-dev
apt install libvpx-dev
Step 14: install libharfbuzz-dev
root@tutorialspots:~/ffmpeg_sources# apt install libharfbuzz-dev Reading package lists... Done Building dependency tree Reading state information... Done The following packages were automatically installed and are no longer required: i965-va-driver intel-media-va-driver libaacs0 libaom0 libass9 libasyncns0 libavc1394-0 libavcodec58 libavdevice58 libavfilter7 libavformat58 libavresample4 libavutil56 libbdplus0 libbluray2 libbs2b0 libcaca0 libcairo-gobject2 libcdio-cdda2 libcdio-paranoia2 libcdio18 libchromaprint1 libcodec2-0.9 libdc1394-22 libflac8 libflite1 libgme0 libgsm1 libiec61883-0 libigdgmm11 libjack-jackd2-0 liblilv-0-0 libmp3lame0 libmpg123-0 libmysofa1 libnorm1 libopenal-data libopenal1 libopenmpt0 libopus0 libpgm-5.2-0 libpostproc55 libpulse0 libraw1394-11 librsvg2-2 librsvg2-common librubberband2 libsamplerate0 libsdl2-2.0-0 libserd-0-0 libshine3 libsnappy1v5 libsndfile1 libsndio7.0 libsord-0-0 libsoxr0 libspeex1 libsratom-0-0 libssh-gcrypt-4 libswresample3 libswscale5 libtheora0 libtwolame0 libva-drm2 libva-x11-2 libva2 libvdpau1 libvidstab1.1 libvorbisenc2 libvpx6 libwavpack1 libwayland-cursor0 libwayland-egl1 libx264-155 libx265-179 libxcb-shape0 libxcursor1 libxinerama1 libxkbcommon0 libxrandr2 libxss1 libxv1 libxvidcore4 libzmq5 libzvbi-common libzvbi0 mesa-va-drivers mesa-vdpau-drivers ocl-icd-libopencl1 va-driver-all vdpau-driver-all x11-common Use 'apt autoremove' to remove them. The following additional packages will be installed: gir1.2-harfbuzz-0.0 libblkid-dev libffi-dev libglib2.0-dev libglib2.0-dev-bin libgraphite2-dev libharfbuzz-gobject0 libharfbuzz-icu0 libmount-dev libselinux1-dev libsepol1-dev Suggested packages: libgirepository1.0-dev libglib2.0-doc libxml2-utils libgraphite2-utils The following NEW packages will be installed: gir1.2-harfbuzz-0.0 libblkid-dev libffi-dev libglib2.0-dev libglib2.0-dev-bin libgraphite2-dev libharfbuzz-dev libharfbuzz-gobject0 libharfbuzz-icu0 libmount-dev libselinux1-dev libsepol1-dev 0 upgraded, 12 newly installed, 0 to remove and 0 not upgraded. Need to get 3086 kB of archives. After this operation, 18.8 MB of additional disk space will be used. Do you want to continue? [Y/n] y Get:1 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 gir1.2-harfbuzz-0.0 amd64 2.6.4-1ubuntu4.2 [26.4 kB] Selecting previously unselected package libharfbuzz-gobject0:amd64. Preparing to unpack .../10-libharfbuzz-gobject0_2.6.4-1ubuntu4.2_amd64.deb ... Unpacking libharfbuzz-gobject0:amd64 (2.6.4-1ubuntu4.2) ... Selecting previously unselected package libharfbuzz-dev:amd64. Preparing to unpack .../11-libharfbuzz-dev_2.6.4-1ubuntu4.2_amd64.deb ... Unpacking libharfbuzz-dev:amd64 (2.6.4-1ubuntu4.2) ... Setting up libglib2.0-dev-bin (2.64.6-1~ubuntu20.04.6) ... Setting up libblkid-dev:amd64 (2.34-0.1ubuntu9.4) ... Setting up libharfbuzz-icu0:amd64 (2.6.4-1ubuntu4.2) ... Setting up libsepol1-dev:amd64 (3.0-1ubuntu0.1) ... Setting up libharfbuzz-gobject0:amd64 (2.6.4-1ubuntu4.2) ... Setting up libffi-dev:amd64 (3.3-4) ... Setting up gir1.2-harfbuzz-0.0:amd64 (2.6.4-1ubuntu4.2) ... Setting up libgraphite2-dev:amd64 (1.3.13-11build1) ... Setting up libmount-dev:amd64 (2.34-0.1ubuntu9.4) ... Setting up libselinux1-dev:amd64 (3.0-1build2) ... Setting up libglib2.0-dev:amd64 (2.64.6-1~ubuntu20.04.6) ... Processing triggers for libglib2.0-0:amd64 (2.64.6-1~ubuntu20.04.6) ... Processing triggers for libc-bin (2.31-0ubuntu9.14) ... Processing triggers for man-db (2.9.1-1) ... Processing triggers for install-info (6.7.0.dfsg.2-5) ... Setting up libharfbuzz-dev:amd64 (2.6.4-1ubuntu4.2) ...
Step 15: install libtheora-dev libspeex-dev ladspa-sdk libfreetype-dev
apt install libtheora-dev libspeex-dev ladspa-sdk libfreetype-dev
result:
root@tutorialspots:~/ffmpeg_sources# apt install libtheora-dev libspeex-dev ladspa-sdk libfreetype-dev Reading package lists... Done Building dependency tree Reading state information... Done libfreetype-dev is already the newest version (2.10.1-2ubuntu0.3). The following packages were automatically installed and are no longer required: i965-va-driver intel-media-va-driver libaacs0 libaom0 libass9 libasyncns0 libavc1394-0 libavcodec58 libavdevice58 libavfilter7 libavformat58 libavresample4 libavutil56 libbdplus0 libbluray2 libbs2b0 libcaca0 libcairo-gobject2 libcdio-cdda2 libcdio-paranoia2 libcdio18 libchromaprint1 libcodec2-0.9 libdc1394-22 libflac8 libflite1 libgme0 libgsm1 libiec61883-0 libigdgmm11 libjack-jackd2-0 liblilv-0-0 libmp3lame0 libmpg123-0 libmysofa1 libnorm1 libopenal-data libopenal1 libopenmpt0 libopus0 libpgm-5.2-0 libpostproc55 libpulse0 libraw1394-11 librsvg2-2 librsvg2-common librubberband2 libsamplerate0 libsdl2-2.0-0 libserd-0-0 libshine3 64 1.2~rc1.2-1.1ubuntu1.20.04.1 [65.6 kB] Get:4 http://archive.ubuntu.com/ubuntu focal/main amd64 libtheora-dev amd64 1.1.1+dfsg.1-15ubuntu2 [178 kB] Fetched 440 kB in 3s (136 kB/s) Selecting previously unselected package ladspa-sdk. (Reading database ... 132565 files and directories currently installed.) Preparing to unpack .../ladspa-sdk_1.15-2build1_amd64.deb ... Unpacking ladspa-sdk (1.15-2build1) ... Selecting previously unselected package libogg-dev:amd64. Preparing to unpack .../libogg-dev_1.3.4-0ubuntu1_amd64.deb ... Unpacking libogg-dev:amd64 (1.3.4-0ubuntu1) ... Selecting previously unselected package libspeex-dev:amd64. Preparing to unpack .../libspeex-dev_1.2~rc1.2-1.1ubuntu1.20.04.1_amd64.deb ... Unpacking libspeex-dev:amd64 (1.2~rc1.2-1.1ubuntu1.20.04.1) ... Selecting previously unselected package libtheora-dev:amd64. Preparing to unpack .../libtheora-dev_1.1.1+dfsg.1-15ubuntu2_amd64.deb ... Unpacking libtheora-dev:amd64 (1.1.1+dfsg.1-15ubuntu2) ... Setting up ladspa-sdk (1.15-2build1) ... Setting up libogg-dev:amd64 (1.3.4-0ubuntu1) ... Setting up libtheora-dev:amd64 (1.1.1+dfsg.1-15ubuntu2) ... Setting up libspeex-dev:amd64 (1.2~rc1.2-1.1ubuntu1.20.04.1) ... Processing triggers for man-db (2.9.1-1) ...
Step 16: install FFmpeg
cd ~/ffmpeg_sources curl -O -L https://ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2 tar xjvf ffmpeg-snapshot.tar.bz2 cd ffmpeg PATH="$HOME/bin:$PATH" PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure \ --prefix="$HOME/ffmpeg_build" \ --pkg-config-flags="--static" \ --extra-cflags="-I$HOME/ffmpeg_build/include" \ --extra-ldflags="-L$HOME/ffmpeg_build/lib" \ --extra-libs=-lpthread \ --extra-libs=-lm \ --bindir="$HOME/bin" \ --enable-gpl \ --enable-libfdk_aac \ --enable-libfreetype \ --enable-libmp3lame \ --enable-libopus \ --enable-libvorbis \ --enable-libvpx \ --enable-libx264 \ --enable-libx265 \ --enable-nonfree \ --enable-openssl \ --enable-libspeex \ --enable-libtheora \ --enable-ladspa \ --enable-muxer=segment \ --enable-muxer=stream_segment make make install hash -r
result:
root@tutorialspots:~/ffmpeg_sources# cd ~/ffmpeg_sources root@tutorialspots:~/ffmpeg_sources# curl -O -L https://ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2 % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 12.4M 100 12.4M 0 0 4307k 0 0:00:02 0:00:02 --:--:-- 4305k root@tutorialspots:~/ffmpeg_sources# tar xjvf ffmpeg-snapshot.tar.bz2 ... cdg live_flv sox cdxl lmlm4 spdif cine loas srt codec2 lrc stl codec2raw luodat str concat lvf subviewer data lxf subviewer1 daud m4v sup dcstr matroska svag derf mca svs dfa mcc swf dfpwm mgsts tak dhav microdvd tedcaptions dirac mjpeg thp dnxhd mjpeg_2000 threedostr dsf mlp tiertexseq dsicin mlv tmv dss mm truehd dts mmf tta dtshd mods tty dv moflex txd dvbsub mov ty dvbtxt mp3 usm dxa mpc v210 ea mpc8 v210x ea_cdata mpegps vag eac3 mpegts vc1 epaf mpegtsraw vc1t evc mpegvideo vividas ffmetadata mpjpeg vivo filmstrip mpl2 vmd fits mpsub vobsub flac msf voc flic msnwc_tcp vpk flv msp vplayer fourxm mtaf vqf frm mtv vvc fsb musx w64 fwse mv wady g722 mvi wav g723_1 mxf wavarc g726 mxg wc3 g726le nc webm_dash_manifest g729 nistsphere webvtt gdv nsp wsaud genh nsv wsd gif nut wsvqa gsm nuv wtv gxf obu wv h261 ogg wve h263 oma xa h264 osq xbin hca paf xmd hcom pcm_alaw xmv hevc pcm_f32be xvag hls pcm_f32le xwma hnm pcm_f64be yop iamf pcm_f64le yuv4mpegpipe ico pcm_mulaw idcin pcm_s16be Enabled muxers: a64 h263 pcm_s24be ac3 h264 pcm_s24le ac4 hash pcm_s32be adts hds pcm_s32le adx hevc pcm_s8 aiff hls pcm_u16be alp iamf pcm_u16le amr ico pcm_u24be amv ilbc pcm_u24le apm image2 pcm_u32be apng image2pipe pcm_u32le aptx ipod pcm_u8 aptx_hd ircam pcm_vidc argo_asf ismv psp argo_cvg ivf rawvideo asf jacosub rcwt asf_stream kvag rm ass latm roq ast lrc rso au m4v rtp avi matroska rtp_mpegts avif matroska_audio rtsp avm2 md5 sap avs2 microdvd sbc avs3 mjpeg scc bit mkvtimestamp_v2 segafilm caf mlp segment cavsvideo mmf smjpeg codec2 mov smoothstreaming codec2raw mp2 sox crc mp3 spdif dash mp4 spx data mpeg1system srt daud mpeg1vcd stream_segment dfpwm mpeg1video streamhash dirac mpeg2dvd sup dnxhd mpeg2svcd swf dts mpeg2video tee dv mpeg2vob tg2 eac3 mpegts tgp evc mpjpeg truehd f4v mxf tta ffmetadata mxf_d10 ttml fifo mxf_opatom uncodedframecrc fifo_test null vc1 filmstrip nut vc1t fits obu voc flac oga vvc flv ogg w64 framecrc ogv wav framehash oma webm framemd5 opus webm_chunk g722 pcm_alaw webm_dash_manifest g723_1 pcm_f32be webp g726 pcm_f32le webvtt g726le pcm_f64be wsaud gif pcm_f64le wtv gsm pcm_mulaw wv gxf pcm_s16be yuv4mpegpipe h261 pcm_s16le Enabled protocols: async http rtmpt cache httpproxy rtmpte concat https rtmpts concatf icecast rtp crypto ipfs_gateway sctp data ipns_gateway srtp fd md5 subfile ffrtmpcrypt mmsh tcp ffrtmphttp mmst tee file pipe tls ftp prompeg udp gopher rtmp udplite gophers rtmpe unix hls rtmps Enabled filters: a3dscope cover_rect null aap crop nullsink abench cropdetect nullsrc abitscope crossfeed oscilloscope acompressor crystalizer overlay acontrast cue owdenoise acopy curves pad acrossfade datascope pal100bars acrossover dblur pal75bars acrusher dcshift palettegen acue dctdnoiz paletteuse addroi deband pan adeclick deblock perms adeclip decimate perspective adecorrelate deconvolve phase adelay dedot photosensitivity adenorm deesser pixdesctest aderivative deflate pixelize adrawgraph deflicker pixscope adrc dejudder pp adynamicequalizer delogo pp7 adynamicsmooth derain premultiply aecho deshake prewitt aemphasis despill pseudocolor aeval detelecine psnr aevalsrc dialoguenhance pullup aexciter dilation qp afade displace random afdelaysrc dnn_classify readeia608 afftdn dnn_detect readvitc afftfilt dnn_processing realtime afir doubleweave remap afireqsrc drawbox removegrain afirsrc drawgraph removelogo aformat drawgrid repeatfields afreqshift drmeter replaygain afwtdn dynaudnorm reverse agate earwax rgbashift agraphmonitor ebur128 rgbtestsrc ahistogram edgedetect roberts aiir elbg rotate aintegral entropy sab ainterleave epx scale alatency eq scale2ref alimiter equalizer scdet allpass erosion scharr allrgb estdif scroll allyuv exposure segment aloop extractplanes select alphaextract extrastereo selectivecolor alphamerge fade sendcmd amerge feedback separatefields ametadata fftdnoiz setdar amix fftfilt setfield amovie field setparams amplify fieldhint setpts amultiply fieldmatch setrange anequalizer fieldorder setsar anlmdn fillborders settb anlmf find_rect shear anlms firequalizer showcqt anoisesrc flanger showcwt anull floodfill showfreqs anullsink format showinfo anullsrc fps showpalette apad framepack showspatial aperms framerate showspectrum aphasemeter framestep showspectrumpic aphaser freezedetect showvolume aphaseshift freezeframes showwaves apsnr fspp showwavespic apsyclip fsync shuffleframes apulsator gblur shufflepixels arealtime geq shuffleplanes aresample gradfun sidechaincompress areverse gradients sidechaingate arls graphmonitor sidedata arnndn grayworld sierpinski asdr greyedge signalstats asegment guided signature aselect haas silencedetect asendcmd haldclut silenceremove asetnsamples haldclutsrc sinc asetpts hdcd sine asetrate headphone siti asettb hflip smartblur ashowinfo highpass smptebars asidedata highshelf smptehdbars asisdr hilbert sobel asoftclip histeq spectrumsynth aspectralstats histogram speechnorm asplit hqdn3d split astats hqx spp astreamselect hstack sr asubboost hsvhold ssim asubcut hsvkey ssim360 asupercut hue stereo3d asuperpass huesaturation stereotools asuperstop hwdownload stereowiden atadenoise hwmap streamselect atempo hwupload super2xsai atilt hysteresis superequalizer atrim identity surround avectorscope idet swaprect avgblur il swapuv avsynctest inflate tblend axcorrelate interlace telecine backgroundkey interleave testsrc bandpass join testsrc2 bandreject kerndeint thistogram bass kirsch threshold bbox ladspa thumbnail bench lagfun tile bilateral latency tiltandshift biquad lenscorrection tiltshelf bitplanenoise life tinterlace blackdetect limitdiff tlut2 blackframe limiter tmedian blend loop tmidequalizer blockdetect loudnorm tmix blurdetect lowpass tonemap bm3d lowshelf tpad boxblur lumakey transpose bwdif lut treble cas lut1d tremolo ccrepack lut2 trim cellauto lut3d unpremultiply channelmap lutrgb unsharp channelsplit lutyuv untile chorus mandelbrot uspp chromahold maskedclamp v360 chromakey maskedmax vaguedenoiser chromanr maskedmerge varblur chromashift maskedmin vectorscope ciescope maskedthreshold vflip codecview maskfun vfrdet color mcdeint vibrance colorbalance mcompand vibrato colorchannelmixer median vif colorchart mergeplanes vignette colorcontrast mestimate virtualbass colorcorrect metadata vmafmotion colorhold midequalizer volume colorize minterpolate volumedetect colorkey mix vstack colorlevels monochrome w3fdif colormap morpho waveform colormatrix movie weave colorspace mpdecimate xbr colorspectrum mptestsrc xcorrelate colortemperature msad xfade compand multiply xmedian compensationdelay negate xstack concat nlmeans yadif convolution nnedi yaepblur convolve noformat yuvtestsrc copy noise zoneplate corr normalize zoompan Enabled bsfs: aac_adtstoasc h264_redundant_pps pcm_rechunk av1_frame_merge hapqa_extract pgs_frame_merge av1_frame_split hevc_metadata prores_metadata av1_metadata hevc_mp4toannexb remove_extradata chomp imx_dump_header setts dca_core media100_to_mjpegb showinfo dts2pts mjpeg2jpeg text2movsub dump_extradata mjpega_dump_header trace_headers dv_error_marker mov2textsub truehd_core eac3_core mp3_header_decompress vp9_metadata evc_frame_merge mpeg2_metadata vp9_raw_reorder extract_extradata mpeg4_unpack_bframes vp9_superframe filter_units noise vp9_superframe_split h264_metadata null vvc_metadata h264_mp4toannexb opus_metadata vvc_mp4toannexb Enabled indevs: fbdev oss lavfi v4l2 Enabled outdevs: fbdev oss v4l2 License: nonfree and unredistributable root@tutorialspots:~/ffmpeg_sources/ffmpeg# make ... POD doc/ffmpeg-all.pod POD doc/ffprobe-all.pod POD doc/ffmpeg-utils.pod POD doc/ffmpeg-scaler.pod POD doc/ffmpeg-resampler.pod POD doc/ffmpeg-codecs.pod POD doc/ffmpeg-bitstream-filters.pod POD doc/ffmpeg-formats.pod POD doc/ffmpeg-protocols.pod POD doc/ffmpeg-devices.pod POD doc/ffmpeg-filters.pod POD doc/libavutil.pod POD doc/libswscale.pod POD doc/libswresample.pod POD doc/libavcodec.pod POD doc/libavformat.pod POD doc/libavdevice.pod POD doc/libavfilter.pod MAN doc/ffmpeg.1 MAN doc/ffprobe.1 MAN doc/ffmpeg-all.1 MAN doc/ffprobe-all.1 MAN doc/ffmpeg-utils.1 MAN doc/ffmpeg-scaler.1 MAN doc/ffmpeg-resampler.1 MAN doc/ffmpeg-codecs.1 MAN doc/ffmpeg-bitstream-filters.1 MAN doc/ffmpeg-formats.1 MAN doc/ffmpeg-protocols.1 MAN doc/ffmpeg-devices.1 MAN doc/ffmpeg-filters.1 MAN doc/libavutil.3 MAN doc/libswscale.3 MAN doc/libswresample.3 MAN doc/libavcodec.3 MAN doc/libavformat.3 MAN doc/libavdevice.3 MAN doc/libavfilter.3 CC fftools/ffmpeg_dec.o CC fftools/ffmpeg_demux.o CC fftools/ffmpeg_enc.o CC fftools/ffmpeg_filter.o CC fftools/ffmpeg_hw.o CC fftools/ffmpeg_mux.o CC fftools/ffmpeg_mux_init.o CC fftools/ffmpeg_opt.o CC fftools/ffmpeg_sched.o CC fftools/objpool.o CC fftools/sync_queue.o CC fftools/thread_queue.o CC fftools/cmdutils.o CC fftools/opt_common.o CC fftools/ffmpeg.o LD ffmpeg_g /usr/bin/ld: /root/ffmpeg_build/lib/libcrypto.a(x86_64cpuid.o) and /root/ffmpeg_build/lib/libcrypto.a(cryptlib.o): warning: multiple common of `OPENSSL_ia32cap_P' STRIP ffmpeg CC fftools/ffprobe.o LD ffprobe_g /usr/bin/ld: /root/ffmpeg_build/lib/libcrypto.a(x86_64cpuid.o) and /root/ffmpeg_build/lib/libcrypto.a(cryptlib.o): warning: multiple common of `OPENSSL_ia32cap_P' STRIP ffprobe root@tutorialspots:~/ffmpeg_sources/ffmpeg# make install INSTALL doc/ffmpeg.1 INSTALL doc/ffprobe.1 INSTALL doc/ffmpeg-all.1 INSTALL doc/ffprobe-all.1 INSTALL doc/ffmpeg-utils.1 INSTALL doc/ffmpeg-scaler.1 INSTALL doc/ffmpeg-resampler.1 INSTALL doc/ffmpeg-codecs.1 INSTALL doc/ffmpeg-bitstream-filters.1 INSTALL doc/ffmpeg-formats.1 INSTALL doc/ffmpeg-protocols.1 INSTALL doc/ffmpeg-devices.1 INSTALL doc/ffmpeg-filters.1 INSTALL doc/libavutil.3 INSTALL doc/libswscale.3 INSTALL doc/libswresample.3 INSTALL doc/libavcodec.3 INSTALL doc/libavformat.3 INSTALL doc/libavdevice.3 INSTALL doc/libavfilter.3 INSTALL doc/ffmpeg.1 INSTALL doc/ffprobe.1 INSTALL doc/ffmpeg-all.1 INSTALL doc/ffprobe-all.1 INSTALL doc/ffmpeg-utils.1 INSTALL doc/ffmpeg-scaler.1 INSTALL doc/ffmpeg-resampler.1 INSTALL doc/ffmpeg-codecs.1 INSTALL doc/ffmpeg-bitstream-filters.1 INSTALL doc/ffmpeg-formats.1 INSTALL doc/ffmpeg-protocols.1 INSTALL doc/ffmpeg-devices.1 INSTALL doc/ffmpeg-filters.1 INSTALL doc/libavutil.3 INSTALL doc/libswscale.3 INSTALL doc/libswresample.3 INSTALL doc/libavcodec.3 INSTALL doc/libavformat.3 INSTALL doc/libavdevice.3 INSTALL doc/libavfilter.3 INSTALL install-progs-yes INSTALL ffmpeg INSTALL ffprobe INSTALL presets/libvpx-1080p50_60.ffpreset INSTALL presets/libvpx-360p.ffpreset INSTALL presets/libvpx-1080p.ffpreset INSTALL presets/libvpx-720p50_60.ffpreset INSTALL presets/libvpx-720p.ffpreset INSTALL doc/ffprobe.xsd INSTALL doc/examples/transcode.c INSTALL doc/examples/vaapi_transcode.c INSTALL doc/examples/show_metadata.c INSTALL doc/examples/hw_decode.c INSTALL doc/examples/mux.c INSTALL doc/examples/avio_read_callback.c INSTALL doc/examples/encode_audio.c INSTALL doc/examples/avio_http_serve_files.c INSTALL doc/examples/filter_audio.c INSTALL doc/examples/decode_filter_video.c INSTALL doc/examples/demux_decode.c INSTALL doc/examples/resample_audio.c INSTALL doc/examples/decode_video.c INSTALL doc/examples/qsv_transcode.c INSTALL doc/examples/remux.c INSTALL doc/examples/extract_mvs.c INSTALL doc/examples/decode_filter_audio.c INSTALL doc/examples/vaapi_encode.c INSTALL doc/examples/qsv_decode.c INSTALL doc/examples/avio_list_dir.c INSTALL doc/examples/decode_audio.c INSTALL doc/examples/transcode_aac.c INSTALL doc/examples/encode_video.c INSTALL doc/examples/scale_video.c INSTALL doc/examples/README INSTALL doc/examples/Makefile INSTALL doc/examples/transcode.c INSTALL doc/examples/vaapi_transcode.c INSTALL doc/examples/show_metadata.c INSTALL doc/examples/hw_decode.c INSTALL doc/examples/mux.c INSTALL doc/examples/avio_read_callback.c INSTALL doc/examples/encode_audio.c INSTALL doc/examples/avio_http_serve_files.c INSTALL doc/examples/filter_audio.c INSTALL doc/examples/decode_filter_video.c INSTALL doc/examples/demux_decode.c INSTALL doc/examples/resample_audio.c INSTALL doc/examples/decode_video.c INSTALL doc/examples/qsv_transcode.c INSTALL doc/examples/remux.c INSTALL doc/examples/extract_mvs.c INSTALL doc/examples/decode_filter_audio.c INSTALL doc/examples/vaapi_encode.c INSTALL doc/examples/qsv_decode.c INSTALL doc/examples/avio_list_dir.c INSTALL doc/examples/decode_audio.c INSTALL doc/examples/transcode_aac.c INSTALL doc/examples/encode_video.c INSTALL doc/examples/scale_video.c INSTALL doc/examples/README INSTALL doc/examples/Makefile INSTALL libavdevice/libavdevice.a INSTALL libavfilter/libavfilter.a INSTALL libavformat/libavformat.a INSTALL libavcodec/libavcodec.a INSTALL libpostproc/libpostproc.a INSTALL libswresample/libswresample.a INSTALL libswscale/libswscale.a INSTALL libavutil/libavutil.a INSTALL libavdevice/avdevice.h INSTALL libavdevice/version.h INSTALL libavdevice/version_major.h INSTALL libavdevice/libavdevice.pc INSTALL libavfilter/avfilter.h INSTALL libavfilter/buffersink.h INSTALL libavfilter/buffersrc.h INSTALL libavfilter/version.h INSTALL libavfilter/version_major.h INSTALL libavfilter/libavfilter.pc INSTALL libavformat/avformat.h INSTALL libavformat/avio.h INSTALL libavformat/version.h INSTALL libavformat/version_major.h INSTALL libavformat/libavformat.pc INSTALL libavcodec/ac3_parser.h INSTALL libavcodec/adts_parser.h INSTALL libavcodec/avcodec.h INSTALL libavcodec/avdct.h INSTALL libavcodec/avfft.h INSTALL libavcodec/bsf.h INSTALL libavcodec/codec.h INSTALL libavcodec/codec_desc.h INSTALL libavcodec/codec_id.h INSTALL libavcodec/codec_par.h INSTALL libavcodec/d3d11va.h INSTALL libavcodec/defs.h INSTALL libavcodec/dirac.h INSTALL libavcodec/dv_profile.h INSTALL libavcodec/dxva2.h INSTALL libavcodec/jni.h INSTALL libavcodec/mediacodec.h INSTALL libavcodec/packet.h INSTALL libavcodec/qsv.h INSTALL libavcodec/vdpau.h INSTALL libavcodec/version.h INSTALL libavcodec/version_major.h INSTALL libavcodec/videotoolbox.h INSTALL libavcodec/vorbis_parser.h INSTALL libavcodec/xvmc.h INSTALL libavcodec/libavcodec.pc INSTALL libpostproc/postprocess.h INSTALL libpostproc/version.h INSTALL libpostproc/version_major.h INSTALL libpostproc/libpostproc.pc INSTALL libswresample/swresample.h INSTALL libswresample/version.h INSTALL libswresample/version_major.h INSTALL libswresample/libswresample.pc INSTALL libswscale/swscale.h INSTALL libswscale/version.h INSTALL libswscale/version_major.h INSTALL libswscale/libswscale.pc INSTALL libavutil/adler32.h INSTALL libavutil/aes.h INSTALL libavutil/aes_ctr.h INSTALL libavutil/ambient_viewing_environment.h INSTALL libavutil/attributes.h INSTALL libavutil/audio_fifo.h INSTALL libavutil/avassert.h INSTALL libavutil/avstring.h INSTALL libavutil/avutil.h INSTALL libavutil/base64.h INSTALL libavutil/blowfish.h INSTALL libavutil/bprint.h INSTALL libavutil/bswap.h INSTALL libavutil/buffer.h INSTALL libavutil/cast5.h INSTALL libavutil/camellia.h INSTALL libavutil/channel_layout.h INSTALL libavutil/common.h INSTALL libavutil/cpu.h INSTALL libavutil/crc.h INSTALL libavutil/csp.h INSTALL libavutil/des.h INSTALL libavutil/detection_bbox.h INSTALL libavutil/dict.h INSTALL libavutil/display.h INSTALL libavutil/dovi_meta.h INSTALL libavutil/downmix_info.h INSTALL libavutil/encryption_info.h INSTALL libavutil/error.h INSTALL libavutil/eval.h INSTALL libavutil/executor.h INSTALL libavutil/fifo.h INSTALL libavutil/file.h INSTALL libavutil/frame.h INSTALL libavutil/hash.h INSTALL libavutil/hdr_dynamic_metadata.h INSTALL libavutil/hdr_dynamic_vivid_metadata.h INSTALL libavutil/hmac.h INSTALL libavutil/hwcontext.h INSTALL libavutil/hwcontext_cuda.h INSTALL libavutil/hwcontext_d3d11va.h INSTALL libavutil/hwcontext_d3d12va.h INSTALL libavutil/hwcontext_drm.h INSTALL libavutil/hwcontext_dxva2.h INSTALL libavutil/hwcontext_qsv.h INSTALL libavutil/hwcontext_mediacodec.h INSTALL libavutil/hwcontext_opencl.h INSTALL libavutil/hwcontext_vaapi.h INSTALL libavutil/hwcontext_videotoolbox.h INSTALL libavutil/hwcontext_vdpau.h INSTALL libavutil/hwcontext_vulkan.h INSTALL libavutil/iamf.h INSTALL libavutil/imgutils.h INSTALL libavutil/intfloat.h INSTALL libavutil/intreadwrite.h INSTALL libavutil/lfg.h INSTALL libavutil/log.h INSTALL libavutil/lzo.h INSTALL libavutil/macros.h INSTALL libavutil/mathematics.h INSTALL libavutil/mastering_display_metadata.h INSTALL libavutil/md5.h INSTALL libavutil/mem.h INSTALL libavutil/motion_vector.h INSTALL libavutil/murmur3.h INSTALL libavutil/opt.h INSTALL libavutil/parseutils.h INSTALL libavutil/pixdesc.h INSTALL libavutil/pixelutils.h INSTALL libavutil/pixfmt.h INSTALL libavutil/random_seed.h INSTALL libavutil/rc4.h INSTALL libavutil/rational.h INSTALL libavutil/replaygain.h INSTALL libavutil/ripemd.h INSTALL libavutil/samplefmt.h INSTALL libavutil/sha.h INSTALL libavutil/sha512.h INSTALL libavutil/spherical.h INSTALL libavutil/stereo3d.h INSTALL libavutil/threadmessage.h INSTALL libavutil/time.h INSTALL libavutil/timecode.h INSTALL libavutil/timestamp.h INSTALL libavutil/tree.h INSTALL libavutil/twofish.h INSTALL libavutil/uuid.h INSTALL libavutil/version.h INSTALL libavutil/video_enc_params.h INSTALL libavutil/xtea.h INSTALL libavutil/tea.h INSTALL libavutil/tx.h INSTALL libavutil/film_grain_params.h INSTALL libavutil/video_hint.h INSTALL libavutil/avconfig.h INSTALL libavutil/ffversion.h INSTALL libavutil/libavutil.pc
Step 17: make symbolic link:
ln -s ~/bin/ffmpeg /bin/ffmpeg ln -s ~/bin/ffprobe /bin/ffprobe
Done! check
root@tutorialspots:~/ffmpeg_sources/ffmpeg# ffmpeg -h ffmpeg version N-113786-g7d82daf31d Copyright (c) 2000-2024 the FFmpeg developers built with gcc 9 (Ubuntu 9.4.0-1ubuntu1~20.04.2) configuration: --prefix=/root/ffmpeg_build --pkg-config-flags=--static --extra-cflags=-I/root/ffmpeg_build/include --extra-ldflags=-L/root/ffmpeg_build/lib --extra-libs=-lpthread --extra-libs=-lm --bindir=/root/bin --enable-gpl --enable-libfdk_aac --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-nonfree --enable-openssl --enable-libspeex --enable-libtheora --enable-ladspa --enable-muxer=segment --enable-muxer=stream_segment libavutil 58. 39.100 / 58. 39.100 libavcodec 60. 40.100 / 60. 40.100 libavformat 60. 21.101 / 60. 21.101 libavdevice 60. 4.100 / 60. 4.100 libavfilter 9. 17.100 / 9. 17.100 libswscale 7. 6.100 / 7. 6.100 libswresample 4. 13.100 / 4. 13.100 libpostproc 57. 4.100 / 57. 4.100 Universal media converter usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}... Getting help: -h -- print basic options -h long -- print more options -h full -- print all options (including all format and codec specific options, very long) -h type=name -- print all options for the named decoder/encoder/demuxer/muxer/filter/bsf/protocol See man ffmpeg for detailed description of the options. Per-stream options can be followed by :<stream_spec> to apply that option to specific streams only. <stream_spec> can be a stream index, or v/a/s for video/audio/subtitle (see manual for full syntax). Print help / information / capabilities: -L show license -h <topic> show help -version show version -muxers show available muxers -demuxers show available demuxers -devices show available devices -decoders show available decoders -encoders show available encoders -filters show available filters -pix_fmts show available pixel formats -layouts show standard channel layouts -sample_fmts show available audio sample formats Global options (affect whole program instead of just one file): -v <loglevel> set logging level -y overwrite output files -n never overwrite output files -stats print progress report during encoding Per-file options (input and output): -f <fmt> force container format (auto-detected otherwise) -t <duration> stop transcoding after specified duration -to <time_stop> stop transcoding after specified time is reached -ss <time_off> start transcoding at specified time Per-file options (output-only): -metadata[:<spec>] <key=value> add metadata Per-stream options: -c[:<stream_spec>] <codec> select encoder/decoder ('copy' to copy stream without reencoding) -filter[:<stream_spec>] <filter_graph> apply specified filters to audio/video Video options: -r[:<stream_spec>] <rate> override input framerate/convert to given output framerate (Hz value, fraction or abbreviation) -aspect[:<stream_spec>] <aspect> set aspect ratio (4:3, 16:9 or 1.3333, 1.7777) -vn disable video -vcodec <codec> alias for -c:v (select encoder/decoder for video streams) -vf <filter_graph> alias for -filter:v (apply filters to video streams) -b <bitrate> video bitrate (please use -b:v) Audio options: -aq <quality> set audio quality (codec-specific) -ar[:<stream_spec>] <rate> set audio sampling rate (in Hz) -ac[:<stream_spec>] <channels> set number of audio channels -an disable audio -acodec <codec> alias for -c:a (select encoder/decoder for audio streams) -ab <bitrate> alias for -b:a (select bitrate for audio streams) -af <filter_graph> alias for -filter:a (apply filters to audio streams) Subtitle options: -sn disable subtitle -scodec <codec> alias for -c:s (select encoder/decoder for subtitle streams)