使用ffmpeg从视频中截取图像帧(最简单实用的视频抽帧,一句命令)

linux命令 专栏收录该内容
5 篇文章 0 订阅

Table of Contents

1.最佳方式

2.普通的命令:(画质差)

3. 视频旋转:

4. 批量视频抽帧:


参考:ffmpeg视频抽帧

1.最佳方式

第二种方法抽帧图片画质很差,这里提供更好的命令,提高分辨率:

ffmpeg -i /data/video_1.mp4 -f image2  -vf fps=fps=1/60 -qscale:v 2 /data/mp4-%05d.jpeg


使用ffmpeg从视频中截取图像帧

2.普通的命令:(画质差)

ffmpeg -i inputfile.avi -r 1 -f image2 image-%05d.jpeg


-r 指定抽取的帧率,即从视频中每秒钟抽取图片的数量。1代表每秒抽取一帧,5就表示一秒抽5张。
-f 指定保存图片使用的格式,可忽略。

image2: 图像解析模式
image-%05d.jpeg,指定文件的输出名字,可以加个路径。
2. ffmpeg -i inputfile.avi -r 1 -s 4cif -f image2 image-%05d.jpeg
4cif 代表帧的尺寸为705x576.其他可用尺寸如下。
3. ffmpeg -i inputfile.avi -r 1 -t 4 -f image2 image-%05d.jpeg
-t 代表持续时间,单位为秒。
4. ffmpeg -i inputfile.avi -r 1 -ss 01:30:14 -f image2 image-%05d.jpeg
-ss 指定起始时间
5.ffmpeg -i inputfile.avi -r 1 -ss 01:30:14 -vframes 120 4cif -f image2 image-%05d.jpeg
-vframes 指定抽取的帧数
 

3. 视频旋转:

ffmpeg -i input.mp4 -c copy -metadata:s:v:0 rotate=90 output.mp4

4. 批量视频抽帧:

#!/usr/bin/env bash

videos_root=/data/videos
save_root=/data/video_imgs/Image_fps50/
for video in $videos_root/*;
do
echo $video
save_dir=$save_root$(basename $video .avi)
if [ ! -d $save_dir ];then
mkdir $save_dir
fi
ffmpeg -i $video -f image2  -vf fps=fps=50 -qscale:v 2 $save_dir/mp4-%05d.jpeg

done

 

  • 10
    点赞
  • 6
    评论
  • 52
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值