FFMPEG音频视频开发: 使用FFMPEG给视频帧添加水印

简介: FFMPEG音频视频开发: 使用FFMPEG给视频帧添加水印

一、环境介绍

操作系统介绍:ubuntu 18.04

FFMPEG版本: 4.4.2

摄像头:  USB摄像头、虚拟机挂载本机自带摄像头

二、FFMPEG与X264编译下载

参考链接: https://blog.csdn.net/xiaolong1126626497/article/details/104919095

三、编译FFMPEG

3.1 ffmpeg水印滤镜

如果需要使用ffmpeg的水印功能,在编译ffmpeg源码时,需要将--enable-libfreetype 选项打开。

image.png

3.2 下载freetype矢量字体引擎

下载地址:https://www.freetype.org/

image.png

image.png

wbyq@wbyq:~/work_pc$ tar xvf /mnt/hgfs/linux-share-dir/freetype-2.10.0.tar.bz2
wbyq@wbyq:~/work_pc$ cd freetype-2.10.0/
wbyq@wbyq:~/work_pc/freetype-2.10.0$ ./configure --prefix=$PWD/_install
wbyq@wbyq:~/work_pc/freetype-2.10.0$ make && make install

3.3 下载编译FriBidi

下载地址:http://www.linuxfromscratch.org/blfs/view/svn/general/fribidi.html

image.png

wbyq@wbyq:~/work_pc$ tar xvf /mnt/hgfs/linux-share-dir/fribidi-1.0.9.tar.xz
wbyq@wbyq:~/work_pc/fribidi-1.0.9$ ./configure --prefix=$PWD/_install
wbyq@wbyq:~/work_pc/fribidi-1.0.9$ make && make install

3.3 配置编译ffmpeg

./configure --enable-shared --prefix=$PWD/_install --extra-cflags=-I/home/wbyq/work_pc/x264-snapshot-20181217-2245/_install/include --extra-cflags=-I/home/wbyq/work_pc/freetype-2.10.0/_install/include  --extra-cflags=-I/home/wbyq/work_pc/fribidi-1.0.9/_install/include --extra-ldflags=-L/home/wbyq/work_pc/fribidi-1.0.9/_install/lib --extra-ldflags=-L/home/wbyq/work_pc/x264-snapshot-20181217-2245/_install/lib --extra-ldflags=-L/home/wbyq/work_pc/freetype-2.10.0/_install/lib --enable-ffmpeg --enable-libx264 --enable-gpl --enable-libfreetype  --enable-libfontconfig --enable-libfribidi

3.4 加水印测试: 使用ffmpeg命令

在图片的左上角(横坐标10.纵坐标100)添加水印:

wbyq@wbyq:/mnt/hgfs/linux-share-dir$ ffmpeg -i 123.mp4 -vf "drawtext=fontfile=simhei.ttf: text=‘DS小龙哥’:x=100:y=10:fontsize=24:fontcolor=white:shadowy=2" output.mp4
参数说明
fontfile:字体类型  --simhei.ttf如果没有找到,可以在windows下的Fonts目录下拷贝过来,放到程序执行目录下-
text:要添加的文字内容
fontsize:字体大小
fontcolor:字体颜色

image.png

目录
相关文章
|
14天前
|
Python
Python使用ffmpeg下载m3u8拼接为视频
Python使用ffmpeg下载m3u8拼接为视频
41 1
|
9天前
|
编解码 Java Android开发
FFmpeg开发笔记(三十一)使用RTMP Streamer开启APP直播推流
RTMP Streamer是一款开源的安卓直播推流框架,支持RTMP、RTSP和SRT协议,适用于各种直播场景。它支持H264、H265、AV1视频编码和AAC、G711、OPUS音频编码。本文档介绍了如何使用Java版的RTMP Streamer,建议使用小海豚版本的Android Studio (Dolphin)。加载项目时,可添加国内仓库加速依赖下载。RTMP Streamer包含五个模块:app、encoder、rtmp、rtplibrary和rtsp。完成加载后,可以在手机上安装并运行APP,提供多种直播方式。开发者可以从《FFmpeg开发实战:从零基础到短视频上线》获取更多信息。
38 7
FFmpeg开发笔记(三十一)使用RTMP Streamer开启APP直播推流
|
10天前
|
存储 编解码
FFmpeg开发笔记(三十)解析H.264码流中的SPS帧和PPS帧
《FFmpeg开发实战》书中介绍了音视频编码历史,重点讲述H.264的成功在于其分为视频编码层和网络抽象层。H.264帧类型包括SPS(序列参数集,含视频规格参数),PPS(图像参数集,含编码参数)和IDR帧(立即解码刷新,关键帧)。SPS用于计算视频宽高和帧率,PPS存储编码设置,IDR帧则标志新的解码序列。书中还配以图片展示各帧结构详情,完整内容可参考相关书籍。
39 7
FFmpeg开发笔记(三十)解析H.264码流中的SPS帧和PPS帧
|
17天前
|
编解码 Linux
FFmpeg开发笔记(二十八)Linux环境给FFmpeg集成libxvid
XviD是开源的MPEG-4视频编解码器,曾与DivX一起用于早期MP4视频编码,但现在已被H.264取代。要集成XviD到Linux上的FFmpeg,首先下载源码,解压后配置并编译安装libxvid。接着,在FFmpeg源码目录中,重新配置FFmpeg以启用libxvid,然后编译并安装。成功后,通过`ffmpeg -version`检查是否启用libxvid。详细步骤包括下载、解压libxvid,使用`configure`和`make`命令安装,以及更新FFmpeg配置并安装。
34 2
FFmpeg开发笔记(二十八)Linux环境给FFmpeg集成libxvid
|
22天前
|
移动开发 小程序 视频直播
FFmpeg开发笔记(二十七)解决APP无法访问ZLMediaKit的直播链接问题
本文讲述了在使用ZLMediaKit进行视频直播时,遇到移动端通过ExoPlayer和微信小程序播放HLS直播地址失败的问题。错误源于ZLMediaKit对HTTP地址的Cookie校验导致401无权限响应。通过修改ZLMediaKit源码,注释掉相关鉴权代码并重新编译安装,解决了此问题,使得ExoPlayer和小程序能成功播放HLS视频。详细解决方案及FFmpeg集成可参考《FFmpeg开发实战:从零基础到短视频上线》一书。
39 3
FFmpeg开发笔记(二十七)解决APP无法访问ZLMediaKit的直播链接问题
|
2天前
|
编解码
FFmpeg开发笔记(三十三)分析ZLMediaKit对H.264流的插帧操作
《FFmpeg开发实战》书中3.4.3节讲解如何将H.264流封装成MP4。H.264流通常以SPS→PPS→IDR帧开始,这一说法通过雷霄骅的H264分析器得到验证。分析器能解析H.264文件但不支持MP4。ZLMediaKit服务器在遇到I帧时会自动插入SPS和PPS配置帧,确保流符合标准格式。若缺少这些帧,客户端拉流时会报错。FFmpeg开发实战:从零基础到短视频上线》书中提供了更多FFmpeg开发细节。
16 0
FFmpeg开发笔记(三十三)分析ZLMediaKit对H.264流的插帧操作
|
3天前
|
Web App开发 移动开发 编解码
FFmpeg开发笔记(三十二)利用RTMP协议构建电脑与手机的直播Demo
本文讨论了实时数据传输在互联网中的重要性,如即时通讯和在线直播。一对一通信通常使用WebRTC技术,但一对多直播需要流媒体服务器和特定协议,如RTSP、RTMP、SRT或RIST。RTMP由于其稳定性和早期普及,成为国内直播的主流。文章通过实例演示了如何使用OBS Studio和RTMP Streamer进行RTMP推流,并对比了不同流媒体传输协议的优缺点。推荐了两本关于FFmpeg和Android开发的书籍以供深入学习。
11 0
FFmpeg开发笔记(三十二)利用RTMP协议构建电脑与手机的直播Demo
|
8天前
|
Java Linux
ffmpeg音频格式转换、合成、速率调整
ffmpeg音频格式转换、合成、速率调整
13 2
|
16天前
|
编解码 Windows
FFmpeg开发笔记(二十九)Windows环境给FFmpeg集成libxvid
XviD是开源MPEG-4视频编码器,与DivX相似但后者非开源。早期MP4常使用XviD或DivX编码,现已被H.264取代。在Windows上集成FFmpeg的XviD编解码库libxvid,需访问<https://labs.xvid.com/source/>下载源码,解压后在MSYS环境中配置、编译和安装。之后重新配置FFmpeg,启用libxvid并编译安装。详细步骤包括configure命令、make和make install。成功后,通过`ffmpeg -version`检查是否启用libxvid。更多音视频开发技术可参考《FFmpeg开发实战:从零基础到短视频上线》。
56 0
FFmpeg开发笔记(二十九)Windows环境给FFmpeg集成libxvid
|
19天前
|
编解码 Linux 计算机视觉
python 调用ffmpeg使用usb摄像头录制视频,输出h264格式,自动获取摄像头的最佳帧率和最大画面尺寸
使用 Python 调用 FFmpeg 进行 USB 摄像头视频录制,需先确保安装 FFmpeg 和 Python 的 `subprocess` 模块。代码示例展示了如何自动获取摄像头的最佳帧率和最大分辨率,然后录制视频。首先通过 FFmpeg 列出摄像头格式获取信息,解析出帧率和分辨率,选择最优值。之后调用 FFmpeg 命令录制视频,设置帧率、分辨率等参数。注意 `/dev/video0` 是 Linux 的摄像头设备路径,Windows 系统需相应调整。代码中未直接实现自动获取最佳参数,通常需要借助其他库如 OpenCV。