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

相关文章

Python+FFmpeg实现视频自动化处理的完整指南

《Python+FFmpeg实现视频自动化处理的完整指南》本文总结了一套在Python中使用subprocess.run调用FFmpeg进行视频自动化处理的解决方案,涵盖了跨平台硬件加速、中间素材处理... 目录一、 跨平台硬件加速:统一接口设计1. 核心映射逻辑2. python 实现代码二、 中间素材处

Linux镜像文件制作方式

《Linux镜像文件制作方式》本文介绍了Linux镜像文件制作的过程,包括确定磁盘空间布局、制作空白镜像文件、分区与格式化、复制引导分区和其他分区... 目录1.确定磁盘空间布局2.制作空白镜像文件3.分区与格式化1) 分区2) 格式化4.复制引导分区5.复制其它分区1) 挂载2) 复制bootfs分区3)

SQL Server中行转列方法详细讲解

《SQLServer中行转列方法详细讲解》SQL行转列、列转行可以帮助我们更方便地处理数据,生成需要的报表和结果集,:本文主要介绍SQLServer中行转列方法的相关资料,需要的朋友可以参考下... 目录前言一、为什么需要行转列二、行转列的基本概念三、使用PIVOT运算符进行行转列1.创建示例数据表并插入数

python项目环境切换的几种实现方式

《python项目环境切换的几种实现方式》本文主要介绍了python项目环境切换的几种实现方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1. 如何在不同python项目中,安装不同的依赖2. 如何切换到不同项目的工作空间3.创建项目

Python + Streamlit项目部署方案超详细教程(非Docker版)

《Python+Streamlit项目部署方案超详细教程(非Docker版)》Streamlit是一款强大的Python框架,专为机器学习及数据可视化打造,:本文主要介绍Python+St... 目录一、针对 Alibaba Cloud linux/Centos 系统的完整部署方案1. 服务器基础配置(阿里

C++多线程开发环境配置方法

《C++多线程开发环境配置方法》文章详细介绍了如何在Windows上安装MinGW-w64和VSCode,并配置环境变量和编译任务,使用VSCode创建一个C++多线程测试项目,并通过配置tasks.... 目录下载安装 MinGW-w64下载安装VS code创建测试项目配置编译任务创建 tasks.js

JAVA SpringBoot集成Jasypt进行加密、解密的详细过程

《JAVASpringBoot集成Jasypt进行加密、解密的详细过程》文章详细介绍了如何在SpringBoot项目中集成Jasypt进行加密和解密,包括Jasypt简介、如何添加依赖、配置加密密钥... 目录Java (SpringBoot) 集成 Jasypt 进行加密、解密 - 详细教程一、Jasyp

Linux服务器数据盘移除并重新挂载的全过程

《Linux服务器数据盘移除并重新挂载的全过程》:本文主要介绍在Linux服务器上移除并重新挂载数据盘的整个过程,分为三大步:卸载文件系统、分离磁盘和重新挂载,每一步都有详细的步骤和注意事项,确保... 目录引言第一步:卸载文件系统第二步:分离磁盘第三步:重新挂载引言在 linux 服务器上移除并重新挂p

Java 操作 MinIO详细步骤

《Java操作MinIO详细步骤》本文详细介绍了如何使用Java操作MinIO,涵盖了从环境准备、核心API详解到实战场景的全过程,文章从基础的桶和对象操作开始,到大文件分片上传、预签名URL生成... 目录Java 操作 MinIO 全指南:从 API 详解到实战场景引言:为什么选择 MinIO?一、环境

python调用dubbo接口的实现步骤

《python调用dubbo接口的实现步骤》本文主要介绍了python调用dubbo接口的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编... 目录 ​​其他实现方式与注意事项​​ ​​高级技巧与集成​​用 python 提供 Dubbo 接口