ffmpeg加入libass
linux-dash
A beautiful web dashboard for Linux
项目地址:https://gitcode.com/gh_mirrors/li/linux-dash
免费下载资源
·
可以看到subtitles滤镜会使用libass库。
1 libass编译
libass使用的版本是0.13.2。
libass下载地址:http://www.linuxfromscratch.org/blfs/view/svn/multimedia/libass.html
依赖库为FreeType-2.6.5,FriBidi-0.19.7,Fontconfig-2.12.1,下载地址分别为:
http://www.linuxfromscratch.org/blfs/view/svn/general/freetype2.html
http://www.linuxfromscratch.org/blfs/view/svn/general/fribidi.html
http://www.linuxfromscratch.org/blfs/view/svn/general/fontconfig.html
1.1 FreeType编译
sed -ri "s:.*(AUX_MODULES.*valid):\1:" modules.cfg &&
sed -r "s:.*(#.*SUBPIXEL_(RENDERING|HINTING 2)) .*:\1:g" \
-i include/freetype/config/ftoption.h &&
./configure --prefix=/usr/local/freetype2 --disable-static &&
make
make install
或者./configure make make install
或者
yum install freetype-devel.x86_64
1.2 FriBidi编译
./configure --prefix=/usr/local/fribidi &&
make
make install
1.3 Fontconfig编译
推荐使用Fontconfig-2.12.1,否则编译libass会提示错误,
./configure --prefix=/usr/local/fontconfig \
--sysconfdir=/etc \
--localstatedir=/var \
--disable-docs \
--docdir=/usr/share/doc/fontconfig-2.12.1 \
--enable-libxml2 &&
make
make install
/*替换新的fontconfig.pc*/
/*如果找不到libxml2,就安装libxml2-devel*/
1.4生成ass
当freetype,fribidi,fontconfig安装成功后,执行如下:
./configure --prefix=/usr/local/ass --disable-static &&
make
make install
2 编译ffmpeg
执行编译脚本(加上--enable-libass),如:
./configure --enable-gpl --enable-shared --prefix=/usr/local/ffmpegzf --enable-debug --disable-yasm --disable-optimizations --disable-asm --disable-stripping --enable-pthreads --enable-libx264 --enable-libass --enable-fontconfig
make
make install
3遇到的问题
问题1:
编译ass时,
No package 'fribidi' found Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.
解决办法:
export PKG_CONFIG_PATH=/usr/local/fribidi/lib/pkgconfig:$PKG_CONFIG_PATH
问题2:
编译ass时,
configure: error: Either DirectWrite (on Windows), CoreText (on OSX), or Fontconfig(Linux, other) is required. If you really want to compile withouta system font provider, add --disable-require-system-font-provider
解决办法:
安装Fontconfig-2.12.1,并执行export PKG_CONFIG_PATH=/usr/local/fontconfig/lib/pkgconfig:$PKG_CONFIG_PATH
问题3:
编译ffmpeg时,
ERROR: libass not found using pkg-config
解决办法:
export PKG_CONFIG_PATH=/usr/local/ass/lib/pkgconfig:$PKG_CONFIG_PATH
subtitles
该滤镜调用libass库,讲字幕添添加到输入视频中。如果要使用该滤镜,需要在编译FFmpeg时使用--enable-libass配置项。这个滤镜需要配合使用 libavcodec和libavformat将输入的字幕文件转换为ASS(ASS格式见百度百科)格式。滤镜命令参数:
filename,f
该参数为必选项,用于指定输入的字幕文件。如果第一个参数没指定key,则讲该参数默认当做f的值。
original_size
指定待添加字幕的视频的尺寸。参数的格式间https://ffmpeg.org/ffmpeg-utils.html#video-size-syntax。
fontsdir
设置存放滤镜可以使用的字体文件的路径。这些字体中除了字体提供者使用的字体外,其他都会被滤镜使用。(暂不理解)
charenc
设置字幕的字体编码格式,只有当编码格式不是utf-8时需要用到。该选项仅用于subtitles滤镜(如ass滤镜虽然标明参数与subtitles相同,但是依然没有charenc选项)。
stream_index,si
设置字幕所在的stream索引。当字幕来源为一个视频时(如mkv文件),那么需要指定在视频文件中字幕所在的流的索引,通常一个视频文件中有三个流,一个视频流、一个音频流、一个字幕流。
force_style
重写字幕的默认样式或脚本信息参数。该选项接受一个key=value形式的字符串,其中其中key为ASS样式的选项,value为只。每个key、value对之间用逗号隔开。
外挂字幕与内嵌字幕
外挂字幕相对于内嵌字幕来说对视频的质量损害就会小很多,外挂的意思就是 在视频之外单独运行的一种字幕文件,对视频本身的分辨率损害很小甚至为零。而内嵌的字面意思就是将视频连带外挂字幕用专有的录制软件重新将视频录制一遍,成为一个新的视频;这种方法虽然解决了视频体积过大和播放器不兼容等问题,但是在重新录制视频过程当中会无意识的损害原视频本身的码率,使重新录制出来的 视频分辨率大大不如原视频,所以在选择外挂与内嵌字幕时需结合自身情况考虑视频需要进行选择。
GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e
added ecosystem file for PM2 4 年前
5def40a3
Add host customization support for the NodeJS version 4 年前
更多推荐
已为社区贡献1条内容
所有评论(0)