CV | ffmpeg视频解码写入图像文件 根据图像编码写回视频

12 篇文章 3 订阅

.

背景

在计算视觉应用中,经常涉及到以下流程:

  1. 对视频文件进行抽帧
  2. 视频帧逐帧进行图像处理
  3. 再写回视频文件

涉及到视频的编解码就绕不开成熟的工具ffmpeg,因为最近经常用到ffmpeg来对视频抽帧、编码写回视频,故用博客记录一下,以便之后反复查看,省去了搜索引擎反复折腾的时间。

接下来开始吧!

.

解码抽帧

我的应用场景下需要对视频中所有帧数据进行处理,所以不设置抽帧间隔,使用默认的参数如下:

// using ffmpeg to decode a specified video .mp4 file
ffmpeg -i input.mp4 ./input_frame/%d.png

其中具体参数说明如下,

-i:指定解码的视频文件路径,样例指令中视频文件就在当前目录下,所以直接写为input.mp4

第二个参数为解码视频帧保存的文件路径,注意指定的路径必须真实存在,否则会报错,样例中输出路径指定为当前路径下的文件夹input_frame,解码出的视频帧会以数字顺序命名保存在本地。

.

编码写入视频

对视频帧进行了对应的处理后,需要写回视频文件,且希望视频质量不被压缩,易于观察图像处理的感观效果,则可使用指令如下:

// using ffmpeg to encode local images into an output video file
ffmpeg -framerate 30 -i ./input_frame/%d.png -codec copy output.mkv

其中具体参数说明如下:

-framerate:样例代码中指定的是30fps,这个参数可以去掉,默认使用25fps的帧率进行编码。

-i:指定待编码图像文件夹路径,对应解码路径为文件夹input_frame下的图像,也可以修改为其他的文件夹。这里需要注意图像文件名称,须按照数字顺序排列,ffmpeg会自动读取写入,如果顺序不对,写出的视频文件会出现帧序错乱的问题。

-codec copy:编码器传入参数为copy则说明进行无损编码,写入视频文件。

使用以上指令得到的视频文件都会比较大,对于验证模型效果比较有效,但在实际应用场景中还得根据情况调整编码模式。

.

以上。欢迎大家在评论区指正~ 多多讨论!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值