如何使用ffprobe读取mp4片段文件
最近在实现一个功能,希望能快速获取mp4文件的元数据,普通做法是把把整个视频发到后端,通过ffprobe读取,但这种方式太消耗资源,于是希望能上传一部分mp4的二进制数据给后端,快速完成解析。
在实现过程中发现ffprobe读取某些mp4的切片文件时会报错moov atom not found
。查阅资料得知,mp4的metadata结构长下面这样
最近在实现一个功能,希望能快速获取mp4文件的元数据,普通做法是把把整个视频发到后端,通过ffprobe读取,但这种方式太消耗资源,于是希望能上传一部分mp4的二进制数据给后端,快速完成解析。
在实现过程中发现ffprobe读取某些mp4的切片文件时会报错moov atom not found
。查阅资料得知,mp4的metadata结构长下面这样
最近在做一个需求,网站需要支持用户上传本地视频文件做自动剪辑,因为公司用的云服务是Google cloud,自然选择接入Google cloud storage,于是经过一番调研,选择了resumable upload这个方案。在正式接入前端前,我打算先跟着官网文档,把curl的部分走通。
最近在开发一个快捷指令,核心功能是从Notion获取数据,创建提醒事项,在开发过程中发现一个问题,当我使用下面这个Action创建提醒事项时,dueDate
变量在没有时间部分下,创建出来的提醒事项会自动带上12:00,即使设置了format也没用。
最近项目里有个需求是模糊查询某个字段时需要忽略大小写,一开始的实现很简单,用pg自带的LOWER函数,WHERE LOWER(name) LIKE LOWER(’%’ || #{query.name} || ‘%’)
但随着要修改的sql越来越多,这种方式容易遗漏,于是就想办法能不能在列上做一些事情,一劳永逸。
我们目前现有的SpringBoot项目所有日志都是用logback框架打印,发送到datadog上,目前发现一个问题是默认的logback打印的日志在datadog上非常不美观,类似下面这种
最近在开发一个ffmpeg生成短视频的程序,程序里需要对接Google drive,当程序生成视频成功后,需要把视频上传到drive。在Google的文档里上传总共有3个API,分别是
single upload
multiple upload
resumable upload
在JPA中,我们是通过@id
和@GeneratedValue
来指定id主键生成策略的,比如:
1 | @Id |
最近在小红书看到一位博主吐槽自己的高德地图收藏无法编辑,也无法查看,一点击收藏地点就会自动取消收藏,这可能是高德地图的bug,同时也让我有了一个想法,就是把高德地图的收藏地点全部同步到Notion中,有几个好处:
最近在做图片拼接视频的项目时,需要实现一个功能:在每张图片中间加滑入滑出的过渡效果。ffmpeg有一个xfade的filter,支持slideleft/slideright等过渡效果(在这可以看到所有过渡效果的动图)。
最近一个项目,需要用ffmpeg对视频进行抽帧,大概是每隔几秒提取一张图片。这个命令非常简单:ffmpeg -i input.mp4 -vf fps=1/3 %04d.png
。但是有一个额外需求是,需要知道每张图片在视频中的时间,而上面的命令提取的图片文件名是单调递增的数字,所以我们需要对上面的命令做一些改造,改造后的命令如下:ffmpeg -i input.mp4 -vf fps=1,select='not(mod(t,3))' -vsync 0 -frame_pts 1 %d.jpg
这个命令的意思就是首先以每秒一张的帧数提取图片,然后当当前时间能被3整除时才进行提取,达到了3秒提取一张图片的效果,后面的-frame_pts 1开启了写入当前帧时间到文件名的功能。