使用ffmpeg从视频中截取图像帧(最简单实用的视频抽帧,一句命令)
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
赞 (0)