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

 

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐