引言

随着目标检测算法在工程中的广泛应用,视频和批量图片的处理成为重要的环节。在对视频进行目标识别标记,主要采用opencv,每次读取一帧图像,然后送入网络,得到目标物所属类别,框的坐标信息和置信度,然后绘制到图像中,并把此帧图像实时显示。但无法保存带识别标记的视频(本人浅薄,暂且未找到opencv中合适方法)故本博客提出一种基于FFmpeg的批量标记帧图像生成视频方法。本文把识别好的每一帧图像按序号保存至某一独立文件夹,在运用FFmpeg将文件夹中的有序帧图像合成视频。

FFmpeg下载与安装

方法一:官网下载(非常慢)

FFmpeg官方下载地址

方法二:我在外网下载好,提供网盘链接

链接:ffmpeg-20200628-4cfcfb3-win64-static.zip
提取码:mmtx

安装FFmpeg

下载zip文件,解压,把bin目录下的ffmepg.exe,所在路径加入到系统环境变量path中,即可。参考博客

验证安装成功

win + R 打开,输入cmd,打开终端
输入ffmpeg -version
出现下图,安装成功。

探索解决方案

在对监控视频取帧进行目标识别+存储有序帧后,先后从两大方向,多个角度尝试,皆效果不理想。

  1. 运用opencv来实现有序帧转视频(转换后的视频播放出现帧间闪烁)
  2. 用Win10自带视频编辑器处理(手动调节每一帧播放时间,费时费力)
  3. PR视频剪辑软件生成(对帧的序号有严格要求,如000.jpg、001.jpg·······199.jpg)(而我在目标识别后保存的序号是1.jpg、2.jpg、3.jpg ···50.jpg、51.jpg···198.jpg、199.jpg;是按数字递增的并没有保持序号宽度一致)
    当然,python熟练的可以在保存帧的时候,统一命名为序列宽度一致,并保存。

最终解决方案

运用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]http://hamelot.io/visualization/using-ffmpeg-to-convert-a-set-of-images-into-a-video/

FFmpeg将有序帧(图片)转换成视频(解决了生成视频后播放闪烁的问题)相关推荐

  1. ffmpeg+easydarwin把rtmp流转换成m3u8

    ffmpeg+easydarwin把RTSP流转换成m3u8 ffmpeg+easydarwin把rtmp流转换成m3u8 Windows 安装ffmpeg 安装easydarwin 安装Nginx ...

  2. 通过ffmpeg把图片转换成视频

    ffmpeg是一个非常强大的工具,使用他可以转换视频格式,包括视频容器格式,视频编码格式.这里所说的视频,包括了视频和音频.可以更改视频的其他的参数,比如帧率-每秒播放的帧数, 视频的大小-尺寸等等. ...

  3. 把图片转换成视频-ffmpeg

    把图片转换成视频-ffmpeg 2018年03月06日 22:05:08 zhangjundi 阅读数 4401更多 个人分类: Android开发 http://blog.csdn.net/huan ...

  4. JavaCV音视频开发宝典:实现Base64编码图片转换成图片文件通用转换器,以base64转png图片文件为例,其他图片格式也全部支持

    <JavaCV音视频开发宝典>专栏目录导航 <JavaCV音视频开发宝典>专栏介绍和目录 ​ 前言 在上一章中https://eguid.blog.csdn.net/artic ...

  5. 转 把GIF图片转换成单个连续的图片 转 tif 等任意多帧图片转换bmp 或者gif等格式...

    为什么80%的码农都做不了架构师?>>>    转 把GIF图片转换成单个连续的图片 转 tif 等任意多帧图片转换bmp 或者gif等格式 using System; using ...

  6. html视频怎么转换成图片,WPS演示如何将图片转换成视频?

    将图片转换成视频你是这么做的呢?WPS演示如何将图片转换成视频?现在的人们对于会动的事物都充满着好奇,就连好看的图片也需要转换成视频了.利用WPS演示,将图片转化成视频.本质上就是制作一个PPT文档, ...

  7. python矩阵变成图片_Python图片转换成矩阵,矩阵数据转换成图片

    # coding=gbk from PIL import Image import numpy as np # import scipy def loadImage(): # 读取图片 im = Im ...

  8. java png生成webp图片_jpg、png格式的图片转换成webp后颜色失真的问题

    今天简单的试用了一下 cweb.exe 将 jpg, png 格式的图片转换成 webp 格式. 我今天下载的是当前最新版:1.0.0 cwebp 3.jpg  -q 85 -o 3.webp 发现图 ...

  9. 利用MATLAB将图片转换成coe文件、TXT文件、mif文件、bin文件

    利用MATLAB将图片转换成coe文件.TXT文件.mif文件 利用MATLAB将图片转换成coe文件 利用MATLAB将图片转换成txt文件 利用MATLAB将图片转换成mif文件 利用MATLAB ...

最新文章

  1. Puppy Linux 8.0 发布,代号 BionicPup
  2. ajax html例子,AJAX实例
  3. 看完这篇文章保你面试稳操胜券——React篇
  4. SmartFoxServer学习总结(转载)
  5. wamp无法访问php,wamp无法访问phpmyadmin怎么办
  6. Visitor模式学习
  7. mysql 线程id_查找MySQL线程中死锁的ID的方法
  8. 按下键时蜂鸣器发出声音c语言,学习日记——蜂鸣器开关实例
  9. 在两个电子表格中找出相同的姓名
  10. java 图片与base64相互转化
  11. R数据科学-第六章用dplyr处理关系数据
  12. matlab常用函数,命令
  13. python飞行棋项目
  14. 4763: 雪辉[点分治+可持久化分块]
  15. 【Pandas】- pandas入门
  16. 高德地图获取地址坐标
  17. 怎么关闭win7计算机一键还原系统,Win7卸载一键还原功能后还会保留在开机启动菜单中怎么办...
  18. 火山视窗整数数组类增删查改操作
  19. Software for Developing
  20. 【Arduino 和 DS3231 实时时钟教程】

热门文章

  1. 函数的驻点一定是极值点对吗?原因是什么?
  2. 【现代机器人学——螺旋理论】UR5机器人正运动学求解
  3. 如何通过远程桌面连接 重启电脑
  4. 游戏开发之U3D插件EasyTouch5.x使用
  5. Ubuntu默认bashrc的存储位置
  6. 计算机毕业设计SSM儿童成长记录与分享系统【附源码数据库】
  7. windows升级以后屏幕和任务栏一直闪烁
  8. 汇编语言程序设计---1~4章习题答案(王爽第二版)
  9. Cesium快速上手10-Viewer/Entities组合
  10. ibaanalyzer使用教程_ibaPDAclient软件快速设置方法.doc