Linux环境用FFmpeg给视频加水印详细步骤

2024-04-14 11:32

本文主要是介绍Linux环境用FFmpeg给视频加水印详细步骤,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

FFmpeg给视频添加水印,根据官方文档的介绍可以知道FFmpeg在编译安装的时候还需要加 –enable-libfreetype、–enable-libfontconfig、 --enable-libfribidi 这几个参数,而这几个组件又需要从外面编译安装,我看很多博主直接用FFmpeg命令加水印,但是没有详细的组件安装过程,下面主要介绍一下这些组件包括FFmpeg的编译安装完整过程。
在这里插入图片描述

安装环境

centos7.6

安装freetype

从freetype官网去找一个版本下载下来

wget https://bigsearcher.com/mirrors/nongnu/freetype/freetype-2.10.0.tar.bz2

解压。

tar jxf  freetype-2.10.0.tar.bz2

编译安装,设置安装的目录为/usr/local/freetype。

./configure --prefix=/usr/local/freetype
make && make install

配置环境变量编辑vim /etc/profile,在最后一行添加。

export PKG_CONFIG_PATH="/usr/local/freetype/lib/pkgconfig:$PKG_CONFIG_PATH"

编辑vim /etc/ld.so.conf.d/ffmpeg.conf。在添加下面一行内容:

/usr/local/freetype/lib

然后用:wq!保存退出,执行ldconfig使配置生效。

安装libxml2

从libxml2官网去找一个版本下载下来。

wget http://xmlsoft.org/sources/libxml2-2.9.10.tar.gz

解压。

tar -xzf libxml2-2.9.10.tar.gz

编译安装,设置安装的目录为/usr/local/libxml2。。

./configure --prefix=/usr/local/libxml2
make && make install

中间可能会报错:
在这里插入图片描述
解决方法是安装对应的python的dev包。

yum install python-devel

再次使用make && make install 编译安装。
配置环境变量vim /etc/profile

export PKG_CONFIG_PATH="/usr/local/libxml2/lib/pkgconfig:$PKG_CONFIG_PATH"

编辑vim /etc/ld.so.conf.d/ffmpeg.conf。在最后一行添加下面一行内容:

/usr/local/libxml2/lib

然后用:wq!保存退出,执行ldconfig使配置生效。

安装fontconfig

从fontconfig官网去找一个版本下载下来。

wget https://www.freedesktop.org/software/fontconfig/release/fontconfig-2.9.92.tar.gz

解压。

tar -xzf fontconfig-2.9.92.tar.gz

编译、安装。

./configure --enable-libxml2 --with-freetype-config=/usr/local/freetype/include/freetype2/freetype/config --prefix=/usr/local/fontconfig
make && make install

配置环境变量vim /etc/profile。

export PKG_CONFIG_PATH="/usr/local/fontconfig/lib/pkgconfig:$PKG_CONFIG_PATH"

编辑vim /etc/ld.so.conf.d/ffmpeg.conf。在最后一行添加下面一行内容:

/usr/local/fontconfig/lib

然后用:wq!保存退出,执行ldconfig使配置生效。

安装fribidi

下载fribidi

 wget https://codeload.github.com/fribidi/fribidi/zip/master

解压master(需安装zip解压工具),同时安装其他依赖。

unzip master
cd fribidi-master/
yum install libtool
yum install autoconf
yum install automake
./autogen.sh

编译安装。

./configure --prefix=/usr/local/fribidi
make && make install

配置环境变量vim /etc/profile。

export PKG_CONFIG_PATH="/usr/local/fribidi/lib/pkgconfig:$PKG_CONFIG_PATH"

编辑vim /etc/ld.so.conf.d/ffmpeg.conf。在最后一行添加下面一行内容:

/usr/local/fribidi/lib

然后用:wq!保存退出,执行ldconfig使配置生效。

安装FFmpeg

从官网下载源代码

wget https://ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2

在这里插入图片描述
解压。

tar jxf ffmpeg-snapshot.tar.bz2

确定在/etc/profile中下面环境在前面已经配置好,如果没有,参考下面。

export PKG_CONFIG_PATH=/usr/local/freetype/lib/pkgconfig:$PKG_CONFIG_PATH
export PKG_CONFIG_PATH=/usr/local/libxml2/lib/pkgconfig:$PKG_CONFIG_PATH
export PKG_CONFIG_PATH=/usr/local/fontconfig/lib/pkgconfig:$PKG_CONFIG_PATH
export PKG_CONFIG_PATH=/usr/local/fribidi/lib/pkgconfig:$PKG_CONFIG_PATH

配置FFmpeg。

./configure --enable-shared --enable-decoder=h264 --enable-parser=h264 --enable-libfreetype --enable-libfontconfig --enable-libfribidi --arch=x86_32 --prefix=/usr/local/ffmpeg

编译安装。

make  &&  make install

推流上去试试,加一个helloworld的水印。

ffmpeg -re -i input.mp4 -vf "drawtext=fontfile=simhei.ttf: text='helloworld':x=10:y=10:fontsize=50:fontcolor=white:shadowy=2" -f flv rtmp://127.0.0.1:1935/live/123

在这里插入图片描述
可以看到水印加载成功!!!

这篇关于Linux环境用FFmpeg给视频加水印详细步骤的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/902892

相关文章

Windows环境下解决Matplotlib中文字体显示问题的详细教程

《Windows环境下解决Matplotlib中文字体显示问题的详细教程》本文详细介绍了在Windows下解决Matplotlib中文显示问题的方法,包括安装字体、更新缓存、配置文件设置及编码調整,并... 目录引言问题分析解决方案详解1. 检查系统已安装字体2. 手动添加中文字体(以SimHei为例)步骤

Linux进程CPU绑定优化与实践过程

《Linux进程CPU绑定优化与实践过程》Linux支持进程绑定至特定CPU核心,通过sched_setaffinity系统调用和taskset工具实现,优化缓存效率与上下文切换,提升多核计算性能,适... 目录1. 多核处理器及并行计算概念1.1 多核处理器架构概述1.2 并行计算的含义及重要性1.3 并

IntelliJ IDEA2025创建SpringBoot项目的实现步骤

《IntelliJIDEA2025创建SpringBoot项目的实现步骤》本文主要介绍了IntelliJIDEA2025创建SpringBoot项目的实现步骤,文中通过示例代码介绍的非常详细,对大家... 目录一、创建 Spring Boot 项目1. 新建项目2. 基础配置3. 选择依赖4. 生成项目5.

Java JDK1.8 安装和环境配置教程详解

《JavaJDK1.8安装和环境配置教程详解》文章简要介绍了JDK1.8的安装流程,包括官网下载对应系统版本、安装时选择非系统盘路径、配置JAVA_HOME、CLASSPATH和Path环境变量,... 目录1.下载JDK2.安装JDK3.配置环境变量4.检验JDK官网下载地址:Java Downloads

nginx -t、nginx -s stop 和 nginx -s reload 命令的详细解析(结合应用场景)

《nginx-t、nginx-sstop和nginx-sreload命令的详细解析(结合应用场景)》本文解析Nginx的-t、-sstop、-sreload命令,分别用于配置语法检... 以下是关于 nginx -t、nginx -s stop 和 nginx -s reload 命令的详细解析,结合实际应

Spring boot整合dubbo+zookeeper的详细过程

《Springboot整合dubbo+zookeeper的详细过程》本文讲解SpringBoot整合Dubbo与Zookeeper实现API、Provider、Consumer模式,包含依赖配置、... 目录Spring boot整合dubbo+zookeeper1.创建父工程2.父工程引入依赖3.创建ap

Linux线程之线程的创建、属性、回收、退出、取消方式

《Linux线程之线程的创建、属性、回收、退出、取消方式》文章总结了线程管理核心知识:线程号唯一、创建方式、属性设置(如分离状态与栈大小)、回收机制(join/detach)、退出方法(返回/pthr... 目录1. 线程号2. 线程的创建3. 线程属性4. 线程的回收5. 线程的退出6. 线程的取消7.

C#连接SQL server数据库命令的基本步骤

《C#连接SQLserver数据库命令的基本步骤》文章讲解了连接SQLServer数据库的步骤,包括引入命名空间、构建连接字符串、使用SqlConnection和SqlCommand执行SQL操作,... 目录建议配合使用:如何下载和安装SQL server数据库-CSDN博客1. 引入必要的命名空间2.

Linux下进程的CPU配置与线程绑定过程

《Linux下进程的CPU配置与线程绑定过程》本文介绍Linux系统中基于进程和线程的CPU配置方法,通过taskset命令和pthread库调整亲和力,将进程/线程绑定到特定CPU核心以优化资源分配... 目录1 基于进程的CPU配置1.1 对CPU亲和力的配置1.2 绑定进程到指定CPU核上运行2 基于

golang程序打包成脚本部署到Linux系统方式

《golang程序打包成脚本部署到Linux系统方式》Golang程序通过本地编译(设置GOOS为linux生成无后缀二进制文件),上传至Linux服务器后赋权执行,使用nohup命令实现后台运行,完... 目录本地编译golang程序上传Golang二进制文件到linux服务器总结本地编译Golang程序