FFmpeg从持续时间可变的视频中截取屏幕截图

时间:2015-05-08 15:30:31

标签: ffmpeg

我有一堆相当长的视频,所以我拍摄了第10秒的截图(-ss 00:00:10)。有时视频非常短,例如5秒,-ss 00:00:10失败。

我没有计算视频大小的选项,因为没有完整下载视频的选项(视频托管在S3上并通过CloudFront用作流)。

也许我忽略了一些内置选项?

我真正不想做的是在失败时逐渐缩短-ss选项,这将是最后的选择。

1 个答案:

答案 0 :(得分:2)

一个班轮:

ffprobe -show_entries format=filename,duration -of default=noprint_wrappers=1:nokey=1 /path/to/input/file -loglevel 0 | awk 'BEGIN {RS="";FS="\n"}{system("ffmpeg -ss "$2/2" -i "$1" -vframes 1 out.png") }'

含义:

使用ffprobe以秒为单位获取文件持续时间,然后导管到awk并使用等于ffmpeg

的搜索时间执行帧提取duration/2命令