使用ffmpeg播放视频并添加当前时间水印

FFmpeg 是一个可以处理音视频的软件,功能非常强大,主要包括,编解码转换,封装格式转换,滤镜特效。同时也支持 各种网络协议,支持 RTMP ,RTSP,HLS 等高层协议的推拉流,也支持更底层一点的TCP/UDP 协议推拉流。

在多平台系统方面,FFmpeg 的兼容性也优势显著,FFmpeg 可以在 windows,Linux,Mac,ios,android 等等操作系统上运行。

因此,可以说 FFmpeg 是音视频领域的瑞士军刀。在多个公司都有使用,例如 Google 的 chrome 里面就使用了 FFmpeg 的库。还有 Youtube,Facebook,以及国内的各种做音视频产品的公司,只要他做音视频,95% 都会用到 FFmpeg。

ffplay是FFmpeg用于视频播放的一个程序,在播放视频时可以用drawtext滤镜来添加字幕,字幕中可以使用表达式来显示当前时间。时间的格式是用C语言的格式化模板。

示例如下:

ffplay.exe -vf "drawtext='fontfile=simhei.ttf:text=当前时间\\\:%{localtime\:%a %b %d %Y-%m-%d %H\\\:%M\\\:%S}': x=w-tw-10: y=10: fontcolor=white: fontsize=24: shadowcolor=black: shadowx=2: shadowy=2" 你的视频全路径.mp4

其中%{localtime\:%a %b %d %Y-%m-%d %H\\\:%M\\\:%S}部分就是用于显示当前时间字幕的,后面的参数用于设置字幕的位置、字体大小以及阴影等参数。基本能够根据参数名称看明白。

需要说明的是参数中的转义,滤镜描述内的转义需要三个\:

转义规则

  • 三级转义
    1. 滤镜选项值:转义:\'(如text=this is a \'string\'\: ...)。
    2. 滤镜描述:转义\'[],;(如drawtext=text=this is a \\\'string\\\'\\: ...)。
    3. shell 命令行:根据 shell 规则转义(如 Bash 中\需再转义为\\)。
  • 简化方式 :使用文件传递参数,如drawtext=/text=/tmp/some_text(从文件加载文本)。

更加详细的滤镜使用说明请参阅官方文档:

https://ffmpeg.org/ffmpeg-filters.html

相关推荐
美狐美颜SDK开放平台5 小时前
多场景美颜SDK解决方案:直播APP(iOS/安卓)开发接入详解
android·人工智能·ios·音视频·美颜sdk·第三方美颜sdk·短视频美颜sdk
ai产品老杨7 小时前
深度解析:基于国产化异构计算的 AI 视频管理平台架构——从 GB28181 接入到 NPU 边缘推流的解耦实践
人工智能·架构·音视频
watson_pillow7 小时前
音视频相关基础知识储备入门-字幕
音视频
程序员JerrySUN8 小时前
Jetson边缘嵌入式实战课程第二讲:JetPack 和 SDK Manager 是什么
c语言·开发语言·网络·udp·音视频
happybasic9 小时前
在CMD下使用FFmpeg将.wav文件转换成指定的格式~
ffmpeg
weixin_66810 小时前
NVIDIA VSSVideo Search and Summarization视频搜索与摘要蓝图详尽使用说明与技术报告版本
人工智能·音视频
jiayong2311 小时前
国内外视频/图像大模型与智能体工具平台竞品对比
ai·音视频·agent
视频技术分享11 小时前
技术赋能生态革新:音视频产业开启千亿增长新周期 视频会议成核心增长亮点
音视频
reasonsummer12 小时前
【教学类-160-14】20260425 AI视频培训-练习014“豆包AI视频《月下枯蔷(哥特风)》+豆包图片风格:油画”
人工智能·音视频·豆包
AI服务老曹12 小时前
深度解析:支持 GB28181/RTSP 及异构计算(X86/ARM+GPU/NPU)的 AI 视频管理平台架构方案(附源码交付与 Docker 部署)
arm开发·人工智能·音视频