ffmpeg添加动态时间戳的问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ffmpeg添加动态时间戳的问题相关的知识,希望对你有一定的参考价值。
参考技术A 最近项目有个需求——给录制的视频按照基准时间添加动态时间戳。看到这个需求,第一个想到的就是用ffmpeg去转换,百度了一番,基本上都是类似与下面这条命令:
ffmpeg -i 20201124023926196.mp4 -vf "drawtext=expansion=strftime:basetime=$(date +%s -d '2020-11-24 16:27:50')000000 :text='%Y-%m-%d %H\\:%M\\:%S':fontsize=18:fontcolor=white:box=1:x=100:y=100:boxcolor=black@0.5:" -strict -2 -y out.mp4
执行后,可以发现时间戳并不是从指定的"2020-11-24 16:27:50"基准时间开始的,这是什么原因呢?于是又从git上查找相关的资料,发现是basetime格式的问题, basetime是int(64)类型的,精确到微秒, 一定要注意这一点。
其它参数说明:
-i: 指定输入文件,这里使用的视频编码是H264, 音频编码是AAC
-vf: 视频滤镜,使用了drawtext滤镜,basetime是视频时间戳的初始值,text是显示时间的格式,fontsize后面一串是关于水印的颜色、字体、背景等设置
-strict -2:AAC的解码在2.x版本是试验性功能,需要加这个参数
-y: 覆盖已经存在的输出文件
以上是关于ffmpeg添加动态时间戳的问题的主要内容,如果未能解决你的问题,请参考以下文章