当前位置:   article > 正文

2024年Go最新音视频开源基础学习 - 编译ffmpeg_ffmpeg 编译libass,从不一样的角度描述Golang事件传递_ffmpeg libx264-dev

ffmpeg libx264-dev

img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Go语言开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取



## 创建目录


在home目录下创建


ffmpeg\_sources:用于下载源文件


ffmpeg\_build: 存储编译后的库文件


bin:存储二进制文件(ffmpeg,ffplay,ffprobe,X264,X265等)



  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

cd ~
mkdir ffmpeg_sources ffmpeg_build bin


## 安装依赖



  • 1
  • 2
  • 3
  • 4
  • 5

sudo apt-get update -qq && sudo apt-get -y install
autoconf
automake
build-essential
cmake
git-core
libass-dev
libfreetype6-dev
libsdl2-dev
libtool
libva-dev
libvdpau-dev
libvorbis-dev
libxcb1-dev
libxcb-shm0-dev
libxcb-xfixes0-dev
pkg-config
texinfo
wget
zlib1g-dev


## 编译与安装


本指南假定您要安装一些最常见的第三方库。每个小节为您提供安装该库所需的命令。


如果不需要某些功能,则可以跳过相关小节(如果不需要),然后在FFmpeg中删除相应的./configure选项。例如,如果不需要libvpx,请跳过该小节,然后从“ [安装FFmpeg”](https://bbs.csdn.net/topics/618658159)部分中删除–enable-libvpx。


\*\*提示:\*\*如果要在多核系统中加快编译速度,可以在每个make命令(例如make -j4)中使用-j选项。


**建议都使用源码进行安装。**


### NASM


部分库使用到汇编程序。


如果你系统提供的库nasm版本>=2.13则可以直接使用命令进行安装



  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26

sudo apt-get install nasm


否则使用源码进行安装



  • 1
  • 2
  • 3
  • 4
  • 5

cd ~/ffmpeg_sources &&
wget https://www.nasm.us/pub/nasm/releasebuilds/2.14.02/nasm-2.14.02.tar.bz2 &&
tar xjvf nasm-2.14.02.tar.bz2 &&
cd nasm-2.14.02 &&
./autogen.sh &&
PATH=“ H O M E / b i n : HOME/bin: HOME/bin:PATH” ./configure --prefix=“ H O M E / f f m p e g b u i l d " − − b i n d i r = " HOME/ffmpeg_build" --bindir=" HOME/ffmpegbuild"bindir="HOME/bin” &&
make &&
make install


### Yasm


部分库使用到该汇编库


如果你系统提供的库yasm版本 ≥ 1.2.0则可以直接使用命令进行安装:



  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

sudo apt-get install yasm


否则使用源码进行安装:



  • 1
  • 2
  • 3
  • 4
  • 5

cd ~/ffmpeg_sources &&
wget -O yasm-1.3.0.tar.gz https://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=“ H O M E / f f m p e g b u i l d " − − b i n d i r = " HOME/ffmpeg_build" --bindir=" HOME/ffmpegbuild"bindir="HOME/bin” &&
make &&
make install


### libx264


H.264视频编码器。更多信息和使用范例参考[H.264 Encoding Guide](https://bbs.csdn.net/topics/618658159)


要求编译ffmpeg时配置:–enable-gpl --enable-libx264.


如果你系统提供的 libx264-dev版本 ≥ 118 则可以使用命令直接安装:



  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

sudo apt-get install libx264-dev


否则使用源码进行编译:



  • 1
  • 2
  • 3
  • 4
  • 5

cd ~/ffmpeg_sources &&
git -C x264 pull 2> /dev/null || git clone --depth 1 https://code.videolan.org/videolan/x264.git &&
cd x264 &&
PATH=“ H O M E / b i n : HOME/bin: HOME/bin:PATH” PKG_CONFIG_PATH=“ H O M E / f f m p e g b u i l d / l i b / p k g c o n f i g " . / c o n f i g u r e − − p r e f i x = " HOME/ffmpeg_build/lib/pkgconfig" ./configure --prefix=" HOME/ffmpegbuild/lib/pkgconfig"./configureprefix="HOME/ffmpeg_build” --bindir=“KaTeX parse error: Expected 'EOF', got '&' at position 40: …c --enable-pic &̲& \ PATH="HOME/bin:$PATH” make &&
make install


### libx265


H.265/HEVC 视频编码器, 更多信息和使用范例参考[H.265 Encoding Guide](https://bbs.csdn.net/topics/618658159)。


要求编译ffmpeg时配置:–enable-gpl --enable-libx265.


如果你系统提供的 libx265-dev版本≥ 68 则可以使用命令直接安装:



  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

sudo apt-get install libx265-dev libnuma-dev


否则使用源码进行编译:



  • 1
  • 2
  • 3
  • 4
  • 5

sudo apt-get install mercurial libnuma-dev &&
cd ~/ffmpeg_sources &&
if cd x265 2> /dev/null; then hg pull && hg update && cd …; else hg clone https://bitbucket.org/multicoreware/x265; fi &&
cd x265/build/linux &&
PATH=“ H O M E / b i n : HOME/bin: HOME/bin:PATH” cmake -G “Unix Makefiles” -DCMAKE_INSTALL_PREFIX=“KaTeX parse error: Expected 'EOF', got '&' at position 53: …f ../../source &̲& \ PATH="HOME/bin:$PATH” make &&
make install


### libvpx


VP8/VP9视频编解码器。 更多信息和使用范例参考 [VP9 Video Encoding Guide](https://bbs.csdn.net/topics/618658159) 。


要求编译ffmpeg时配置: --enable-libvpx.


如果你系统提供的libvpx-dev version ≥ 1.4.0则可以使用命令直接安装:



  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

sudo apt-get install libvpx-dev


否则使用源码进行编译:



  • 1
  • 2
  • 3
  • 4
  • 5

cd ~/ffmpeg_sources &&
git -C libvpx pull 2> /dev/null || git clone --depth 1 https://github.com/webmproject/libvpx.git &&
cd libvpx &&
PATH=“ H O M E / b i n : HOME/bin: HOME/bin:PATH” ./configure --prefix=“KaTeX parse error: Expected 'EOF', got '&' at position 96: …epth --as=yasm &̲& \ PATH="HOME/bin:$PATH” make &&
make install


### libfdk-aac


AAC音频编码器. 更多信息和使用范例参考[AAC Audio Encoding Guide](https://bbs.csdn.net/topics/618658159)。


要求编译ffmpeg时配置:–enable-libfdk-aac ( 如果你已经配置了 --enable-gpl则需要加上–enable-nonfree).


如果你系统提供的 libfdk-aac-dev则可以使用命令直接安装:



  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

sudo apt-get install libfdk-aac-dev


否则使用源码进行编译:



  • 1
  • 2
  • 3
  • 4
  • 5

cd ~/ffmpeg_sources &&
git -C fdk-aac pull 2> /dev/null || git clone --depth 1 https://github.com/mstorsjo/fdk-aac &&
cd fdk-aac &&
autoreconf -fiv &&
./configure --prefix=“$HOME/ffmpeg_build” --disable-shared &&
make &&
make install


### libmp3lame


MP3音频编码器.


要求编译ffmpeg时配置:–enable-libmp3lame.


如果你系统提供的libmp3lame-dev版本≥ 3.98.3则可以使用命令直接安装:



  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

sudo apt-get install libmp3lame-dev


否则使用源码进行编译:



  • 1
  • 2
  • 3
  • 4
  • 5

cd ~/ffmpeg_sources &&
git clone --depth 1 https://gitee.com/hqiu/lame.git &&
cd lame &&
PATH=“ H O M E / b i n : HOME/bin: HOME/bin:PATH” ./configure --prefix=“ H O M E / f f m p e g b u i l d " − − b i n d i r = " HOME/ffmpeg_build" --bindir=" HOME/ffmpegbuild"bindir="HOME/bin” --disable-shared --enable-nasm &&
PATH=“ H O M E / b i n : HOME/bin: HOME/bin:PATH” make &&
make install


### libopus


Opus音频编解码器.


要求编译ffmpeg时配置:–enable-libopus.


如果你系统提供的libopus-dev 版本≥ 1.1则可以使用命令直接安装:



  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

sudo apt-get install libopus-dev


否则使用源码进行编译:



  • 1
  • 2
  • 3
  • 4
  • 5

cd ~/ffmpeg_sources &&
git -C opus pull 2> /dev/null || git clone --depth 1 https://github.com/xiph/opus.git &&
cd opus &&
./autogen.sh &&
./configure --prefix=“$HOME/ffmpeg_build” --disable-shared &&
make &&
make install


### libaom


AV1 视频编解码器:


**Warning:** libaom does not yet appear to have a stable API, so compilation of libavcodec/libaomenc.c may occasionally fail. Just wait a day or two for us to catch up with these annoying changes, re-download ffmpeg-snapshot.tar.bz2, and try again. Or skip libaom altogether.



> 
> 要求编译ffmpeg时配置:–enable-libaom.
> 
> 
> 


先不支持AV1 ,编译有问题。



  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

cd ~/ffmpeg_sources &&
git -C aom pull 2> /dev/null || git clone --depth 1 https://aomedia.googlesource.com/aom &&
mkdir -p aom_build &&
cd aom_build &&
PATH=“ H O M E / b i n : HOME/bin: HOME/bin:PATH” cmake -G “Unix Makefiles” -DCMAKE_INSTALL_PREFIX=“KaTeX parse error: Expected 'EOF', got '&' at position 64: …NASM=on ../aom &̲& \ PATH="HOME/bin:$PATH” make &&
make install

cd ~/ffmpeg_sources &&
git -C aom pull 2> /dev/null || git clone --depth 1 https://github.com/mozilla/aom.git &&
mkdir -p aom_build &&
cd aom_build &&
PATH=“ H O M E / b i n : HOME/bin: HOME/bin:PATH” cmake -G “Unix Makefiles” -DCMAKE_INSTALL_PREFIX=“KaTeX parse error: Expected 'EOF', got '&' at position 64: …NASM=on ../aom &̲& \ PATH="HOME/bin:$PATH” make &&
make install


### FFmpeg



  • 1
  • 2
  • 3
  • 4
  • 5

cd ~/ffmpeg_sources &&
wget -O ffmpeg-4.2.1.tar.bz2 https://ffmpeg.org/releases/ffmpeg-4.2.1.tar.bz2 &&
tar xjvf ffmpeg-4.2.1.tar.bz2 &&
cd ffmpeg-4.2.1 &&
PATH=“ H O M E / b i n : HOME/bin: HOME/bin:PATH” PKG_CONFIG_PATH=“KaTeX parse error: Expected 'EOF', got '&' at position 490: …enable-nonfree &̲& \ PATH="~/bin…PATH” make &&
make install &&
hash -r


然后重新登录系统或者在当前shell会话执行如下命令以识别新安装ffmpeg的位置:



  • 1
  • 2
  • 3
  • 4
  • 5

source ~/.profile


现在已经完成编译和安装ffmpeg (also ffplay, ffprobe, lame, x264, & x265) 。该文档剩余章节主要讲如何更新和删除ffmepg。


编译完成后,ffmpeg\_build ffmpeg\_sources bin目录的大体情况



  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

lqf@ubuntu:~/ffmpeg_build$ ls
bin include lib share

lqf@ubuntu:~/ffmpeg_sources$ ls
fdk-aac lame-3.100.tar.gz opus yasm-1.3.0.tar.gz
ffmpeg-4.2.1 libvpx x264
ffmpeg-4.2.1.tar.bz2 nasm-2.14.02 x265
lame nasm-2.14.02.tar.bz2 yasm-1.3.0

lqf@ubuntu:~/bin$ ls

img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Go语言开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

sm-2.14.02 x265
lame nasm-2.14.02.tar.bz2 yasm-1.3.0

lqf@ubuntu:~/bin$ ls

[外链图片转存中…(img-poFjq7rj-1715653568710)]
[外链图片转存中…(img-1JCP8lqn-1715653568711)]
[外链图片转存中…(img-ep11BSys-1715653568711)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Go语言开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小惠珠哦/article/detail/950033
推荐阅读
相关标签
  

闽ICP备14008679号