随着目标检测算法在工程中的广泛应用,视频和批量图片的处理成为重要的环节。在对视频进行目标识别标记,主要采用opencv,每次读取一帧图像,然后送入网络,得到目标物所属类别,框的坐标信息和置信度,然后绘制到图像中,并把此帧图像实时显示。但无法保存带识别标记的视频(本人浅薄,暂且未找到opencv中合适方法)故本博客提出一种基于FFmpeg的批量标记帧图像生成视频方法。本文把识别好的每一帧图像按序号保存至某一独立文件夹,在运用FFmpeg将文件夹中的有序帧图像合成视频。
链接:ffmpeg-20200628-4cfcfb3-win64-static.zip
提取码:mmtx
下载zip文件,解压,把bin目录下的ffmepg.exe,所在路径加入到系统环境变量path中,即可。参考博客
win + R 打开,输入cmd,打开终端
输入ffmpeg -version
出现下图,安装成功。
在对监控视频取帧进行目标识别+存储有序帧后,先后从两大方向,多个角度尝试,皆效果不理想。
运用FFmpeg针对有序帧转化为视频。
安装好ffmpeg
带有有序标号的标记好的帧图像的文件夹(我的有序命名为 fram1.jpg、fram2.jpg、fram3.jpg···fram712.jpg )
当运用ffmpeg压缩视频时,推荐用libx264编码格式,根据经验,这样得到的视频,分辨率体积小。不同版本的ffmpeg会得到不同的输出文件。
例如文件夹中图像格式(fram1.jpg, fram2.jpg…. etc)此时运用以下指令:
ffmpeg -r 60 -f image2 -s 1920x1080 -i fram%d.jpg -vcodec libx264 -crf 25 -pix_fmt yuv420p test.mp4
主要修改 帧率、输入图片帧命名格式、输出
%04d 表示用零来填充直到长度为4,i.e 0001…0020…0030…2000 and so on.
如果没有填充,需要相应更改,如 pic%d.png or %d.png
-r 帧率(fps)
-f image2 图像合成视频默认设置
-crf 画质,数值小意味着画质高,通常设置为15-25
-s 分辨率(1920x1080)
-pix_fmt yuv420p 像素格式
test.mp4 输出在当前文件夹,输出结果为test.mp4
[1]https://blog.csdn.net/kaikai136412162/article/details/80746961
[2]
本文地址:https://blog.csdn.net/weixin_37939906/article/details/107281060
如对本文有疑问, 点击进行留言回复!!
《单片机实践项目》之《电子DIY》之基于51单片机的60秒倒计时设计
网友评论