ffmpeg添加动态时间戳的问题

最近项目有个需求——给录制的视频按照基准时间添加动态时间戳。

看到这个需求,第一个想到的就是用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 是一个开源的、免费的、跨平台的音视频软件,提供了录制、转换以及流化音视频的完整解决方案。 •FFmp...
    黑涩_阅读 843评论 0 1
  • 视频裁剪 描述:将输入视频帧的宽度和高度从 x 和 y 值表示的位置裁剪到指定的宽度和高度;x 和 y 是输出的左...
    kansnow阅读 349评论 0 1
  • -i 输入媒体文件 -r 指定帧率 -re 重复输入 -t 指定生成时长 -filter_complex 滤波器(...
    HONE_eaef阅读 483评论 1 0
  • 前言 FFMPEG是特别强大的专门用于处理音视频的开源库。你既可以使用它的API对音视频进行处理,也可以使用它提供...
    劉小乙阅读 630评论 0 0
  • 如果是选择的图片背景: 将图片变成视频大小,例如视频 360480 则取480, 720480 则取 720....
    代瑶阅读 999评论 0 1