既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Go语言开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
which cl link yasm cpp
设置中文支持,右键打开Option->Text找到local选择`zh_CN`;Character set 为`UTF-8`
![image-20211001202208242](https://img-blog.csdnimg.cn/img_convert/dfcdc767567838c499c3afdc2a885888.png)
pacman -S nasm
cd /home/此处为你的用户名
mkdir ffmpeg
cd ffmpeg
git clone https://gitee.com/mirrors_addons/x264.git
cd x264
./configure --prefix=…/build/libx264 --host=x86_64-w64-mingw64 --enable-static --extra-ldflags=-Wl,–output-def=libx264.def
make -j4
make install
cp ./libx264.def …/build/libx264/lib/
cd …/build/libx264/lib/
生成64位lib
lib /machine:X64 /def:libx264.def
生成32位lib
lib /machine:i386 /def:libx264.def
如果需要生成dll
git clone https://gitee.com/mirrors_addons/x264.git x264-dll
./configure --prefix=…/build/libx264-dll --host=x86_64-w64-mingw32 – enable-shared --enable-static --extra-ldflags=-Wl,–output-def=libx264.def
### fdk-aac
git clone --depth 1 https://gitee.com/mirrors/fdk-aac.git
cd fdk-aac
./autogen.sh
./configure --prefix=…/build/libfdk-aac --enable- static --enable-shared
make -j4
make install
### mp3
git clone --depth 1 https://gitee.com/hqiu/lame.git
./configure --prefix=…/build/libmp3lame --disable-shared --disable-frontend --enable-static
make
make install
### libvpx
git clone --depth 1 https://github.com/webmproject/libvpx.git
cd libvpx
./configure --prefix=…/build/libvpx --disable-examples --disable-unit-tests --enable-vp9-highbitdepth --as=yasm
make -j4
make install
### ffmpeg
git clone git://source.ffmpeg.org/ffmpeg.git
git clone https://gitee.com/mirrors/ffmpeg.git
cd ffmpeg
查看版本
git branch -a
选择4.2版本
git checkout remotes/origin/release/4.2
编译
./configure
–prefix=/home/Hu/ffmpeg/build/ffmepg-4.4
–arch=x86_64
–enable-shared
–enable-gpl
–enable-libfdk-aac
–enable-nonfree
–enable-libvpx
–enable-libx264
–enable-libmp3lame
–extra-cflags=“-I/home/Hu/ffmpeg/build/libfdk-aac/include”
–extra-ldflags=“-L/home/Hu/ffmpeg/build/libfdk-aac/lib”
–extra-cflags=“-I/home/Hu/ffmpeg/build/libvpx/include”
–extra-ldflags=“-L/home/Hu/build/ffmpeg/libvpx/lib”
–extra-cflags=“-I/home/Hu/ffmpeg/build/libx264/include”
–extra-ldflags=“-L/home/Hu/ffmpeg/build/libx264/lib”
–extra-cflags=“-I/home/Hu/ffmpeg/build/libmp3lame/include”
–extra-ldflags=“-L/home/Hu/ffmpeg/build/libmp3lame/lib”
make -j4
make install
### qt中使用
1. 将生成的ffmpeg-4.4拷贝到工程目录下
2. 在pro中添加
INCLUDEPATH +=
P
W
D
/
f
f
m
e
p
g
−
4.4
/
i
n
c
l
u
d
e
L
I
B
S
+
=
PWD/ffmepg-4.4/include LIBS +=
PWD/ffmepg−4.4/includeLIBS+=PWD/ffmepg-4.4/bin/avformat.lib
LIBS +=
P
W
D
/
f
f
m
e
p
g
−
4.4
/
b
i
n
/
a
v
c
o
d
e
c
.
l
i
b
L
I
B
S
+
=
PWD/ffmepg-4.4/bin/avcodec.lib LIBS +=
PWD/ffmepg−4.4/bin/avcodec.libLIBS+=PWD/ffmepg-4.4/bin/avdevice.lib
LIBS +=
P
W
D
/
f
f
m
e
p
g
−
4.4
/
b
i
n
/
a
v
f
i
l
t
e
r
.
l
i
b
L
I
B
S
+
=
PWD/ffmepg-4.4/bin/avfilter.lib LIBS +=
PWD/ffmepg−4.4/bin/avfilter.libLIBS+=PWD/ffmepg-4.4/bin/avutil.lib
LIBS +=
P
W
D
/
f
f
m
e
p
g
−
4.4
/
b
i
n
/
s
w
r
e
s
a
m
p
l
e
.
l
i
b
L
I
B
S
+
=
PWD/ffmepg-4.4/bin/swresample.lib LIBS +=
PWD/ffmepg−4.4/bin/swresample.libLIBS+=PWD/ffmepg-4.4/bin/swscale.lib
## 创建目录
在home目录下创建
ffmpeg\_sources:用于下载源文件
ffmpeg\_build: 存储编译后的库文件
bin:存储二进制文件(ffmpeg,ffplay,ffprobe,X264,X265等)
cd ~
mkdir ffmpeg_sources ffmpeg_build bin
## 安装依赖
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则可以直接使用命令进行安装
sudo apt-get install nasm
否则使用源码进行安装
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则可以直接使用命令进行安装:
sudo apt-get install yasm
否则使用源码进行安装:
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 则可以使用命令直接安装:
sudo apt-get install libx264-dev
否则使用源码进行编译:
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"./configure−−prefix="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 则可以使用命令直接安装:
sudo apt-get install libx265-dev libnuma-dev
否则使用源码进行编译:
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则可以使用命令直接安装:
sudo apt-get install libvpx-dev
否则使用源码进行编译:
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则可以使用命令直接安装:
sudo apt-get install libfdk-aac-dev
否则使用源码进行编译:
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则可以使用命令直接安装:
sudo apt-get install libmp3lame-dev
否则使用源码进行编译:
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
![img](https://img-blog.csdnimg.cn/img_convert/21e3e0b94c7d42a312bc53dd9f63a1b2.png)
![img](https://img-blog.csdnimg.cn/img_convert/f5be011d3eb20360b8e0ae31865a7668.png)
![img](https://img-blog.csdnimg.cn/img_convert/719bef5825a9e94a0d7e02316ad25f31.png)
**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Go语言开发知识点,真正体系化!**
**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**
**[如果你需要这些资料,可以戳这里获取](https://bbs.csdn.net/topics/618658159)**
-disable-shared --enable-nasm && \
PATH="$HOME/bin:$PATH" make && \
make install
libopus
[外链图片转存中…(img-zoWj9NuS-1715390387202)]
[外链图片转存中…(img-jbYSsmVa-1715390387202)]
[外链图片转存中…(img-PbYMqux2-1715390387203)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Go语言开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新