srt学习笔记二:支持srt的ffmpeg 博客分类: ffmpeg ffmpeg
程序员文章站
2024-03-14 16:22:10
...
注意:scl enable devtoolset-7 bash
这个不是默认的gcc
centos安装ffmpeg
:https://www.jianshu.com/p/94a1759ceb34
~/ffmpeg_source 源码
~/ffmpeg_build 安装
~/bin 二进制
####Nasm
########Yasm
cd ~/ffmpeg_sources
curl -O -L 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/ffmpeg_build" --bindir="$HOME/bin"
make
make install
########264
########265
###########fdk-acc
####libmp3lame mp3编码库
######libopus 音频编码
######libogg
首先对输入音频PCM信号进行时频分析,决定MDCT的长度,即加窗,然后进行MDCT变换;同时对原始音频信号要进行FFT分析。两种变换的频谱系输入给心理声学模型单元,MDCT系数用于噪声掩蔽计算,H可结果用于音调掩蔽特性计算,共同构造总的掩蔽曲线。然后根据MDCT系数及掩蔽曲线,对频谱系数进行线性预测分析用LPC(Linear Prediction Coefficience,线性预测系数)表示频谱包络,即基底曲线(Floor Curve);或通过线性分段逼近方式获得基底曲线。从MDCT系数中去掉频谱包络则得到白化的残差频谱(Residue),由于残差频谱波动范围明显变小,从而降低量化误差。之后可以选择是否采用声道耦合(Channel Coupling)技术进一步降低冗余度,耦合主要是将左右声道数据从直角坐标映射到平方极坐标;最后对白化的残差信号有效地以矢量量化表示。最后将要传输的各种信息数据按Vorbis定义的包格式组装,形成Vorbis压缩码流。
#####vorbis 压缩
########vpx 264 265
#####freetype2 字体引擎
#######srt add by hao
git clone https://github.com/Haivision/srt
#./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" 这里的bindir 不起作用
#./configure
这里检查 pkgconfig 的路径
如果不是$HOME/ffmpeg_build/lib/pkgconfig
则需要把haisrt.pc srt.pc 从 $HOME/ffmpeg_build/lib64/pkgconfig copy 到$HOME/ffmpeg_build/lib/pkgconfig
#####ffmpeg 注意加上enable-libsrt
如果rtmp找不到尝试 查一下https://blog.csdn.net/fireroll/article/details/8607955
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/root/ffmpeg_build/lib64/
这个不是默认的gcc
centos安装ffmpeg
:https://www.jianshu.com/p/94a1759ceb34
~/ffmpeg_source 源码
~/ffmpeg_build 安装
~/bin 二进制
注意pkgconfig的设置,so的寻找路径,配置错误有可能找不到so,会有lib和lib64的问题, 也可以用LD_LIBRARY_PATH 帮助解决
yum install autoconf automake bzip2 cmake freetype-devel gcc gcc-c++ git libtool make mercurial pkgconfig zlib-devel harfbuzz-devel -y yum install bzip2 bzip2-devel -y yum install openssl-devel tcl tcl-devel -y yum install centos-release-scl -y yum install devtoolset-7-toolchain -y scl enable devtoolset-7 bash
####Nasm
cd ~/ffmpeg_sources curl -O -L https://www.nasm.us/pub/nasm/releasebuilds/2.14/nasm-2.14.tar.bz2 tar xjvf nasm-2.14.tar.bz2 cd nasm-2.14 ./autogen.sh ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" make make install
########Yasm
cd ~/ffmpeg_sources
curl -O -L 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/ffmpeg_build" --bindir="$HOME/bin"
make
make install
########264
cd ~/ffmpeg_sources git clone https://github.com/mirror/x264 PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" --enable-static make make install
########265
cd ~/ffmpeg_sources hg clone https://bitbucket.org/multicoreware/x265 cd ~/ffmpeg_sources/x265/build/linux cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="$HOME/ffmpeg_build" -DENABLE_SHARED:bool=off ../../source make make install cp ~/ffmpeg_build/bin/x265 ~/bin/
###########fdk-acc
cd ~/ffmpeg_sources git clone --depth 1 https://github.com/mstorsjo/fdk-aac cd fdk-aac ./configure --prefix="$HOME/ffmpeg_build" --disable-shared make make install
####libmp3lame mp3编码库
cd ~/ffmpeg_sources curl -O -L http://downloads.sourceforge.net/project/lame/lame/3.100/lame-3.100.tar.gz tar xzvf lame-3.100.tar.gz cd lame-3.100 ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" --disable-shared --enable-nasm make make install
######libopus 音频编码
cd ~/ffmpeg_sources curl -O -L https://archive.mozilla.org/pub/opus/opus-1.3.tar.gz tar xzvf opus-1.3.tar.gz cd opus-1.3 ./configure --prefix="$HOME/ffmpeg_build" --disable-shared make make install
######libogg
首先对输入音频PCM信号进行时频分析,决定MDCT的长度,即加窗,然后进行MDCT变换;同时对原始音频信号要进行FFT分析。两种变换的频谱系输入给心理声学模型单元,MDCT系数用于噪声掩蔽计算,H可结果用于音调掩蔽特性计算,共同构造总的掩蔽曲线。然后根据MDCT系数及掩蔽曲线,对频谱系数进行线性预测分析用LPC(Linear Prediction Coefficience,线性预测系数)表示频谱包络,即基底曲线(Floor Curve);或通过线性分段逼近方式获得基底曲线。从MDCT系数中去掉频谱包络则得到白化的残差频谱(Residue),由于残差频谱波动范围明显变小,从而降低量化误差。之后可以选择是否采用声道耦合(Channel Coupling)技术进一步降低冗余度,耦合主要是将左右声道数据从直角坐标映射到平方极坐标;最后对白化的残差信号有效地以矢量量化表示。最后将要传输的各种信息数据按Vorbis定义的包格式组装,形成Vorbis压缩码流。
cd ~/ffmpeg_sources curl -O -L http://downloads.xiph.org/releases/ogg/libogg-1.3.3.tar.gz tar xzvf libogg-1.3.3.tar.gz cd libogg-1.3.3 ./configure --prefix="$HOME/ffmpeg_build" --disable-shared make make install
#####vorbis 压缩
cd ~/ffmpeg_sources curl -O -L http://downloads.xiph.org/releases/vorbis/libvorbis-1.3.6.tar.gz tar xzvf libvorbis-1.3.6.tar.gz cd libvorbis-1.3.6 ./configure --prefix="$HOME/ffmpeg_build" --with-ogg="$HOME/ffmpeg_build" --disable-shared make make install
########vpx 264 265
cd ~/ffmpeg_sources git clone --depth 1 https://chromium.googlesource.com/webm/libvpx.git cd libvpx ./configure --prefix="$HOME/ffmpeg_build" --disable-examples --disable-unit-tests --enable-vp9-highbitdepth --as=yasm make make install
#####freetype2 字体引擎
cd ~/ffmpeg_sources curl -O -L https://github.com/aseprite/freetype2/archive/VER-2-6-3.tar.gz tar xzvf VER-2-6-3.tar.gz cd freetype2-VER-2-6-3 ./autogen.sh ./configure --prefix="$HOME/ffmpeg_build" --disable-shared make make install cp ~/ffmpeg_build/bin/freetype-config ~/bin/
#######srt add by hao
git clone https://github.com/Haivision/srt
#./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" 这里的bindir 不起作用
#./configure
PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure --prefix="$HOME/ffmpeg_build" make make install
这里检查 pkgconfig 的路径
如果不是$HOME/ffmpeg_build/lib/pkgconfig
则需要把haisrt.pc srt.pc 从 $HOME/ffmpeg_build/lib64/pkgconfig copy 到$HOME/ffmpeg_build/lib/pkgconfig
#####ffmpeg 注意加上enable-libsrt
cd ~/ffmpeg_sources curl -O -L https://ffmpeg.org/releases/ffmpeg-4.1.tar.bz2 tar xjvf ffmpeg-4.1.tar.bz2 cd ffmpeg-4.1 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-libsrt \ --enable-nonfree make make install
如果rtmp找不到尝试 查一下https://blog.csdn.net/fireroll/article/details/8607955
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/root/ffmpeg_build/lib64/