我有一堆相当长的视频,所以我拍摄了第10秒的截图(-ss 00:00:10
)。有时视频非常短,例如5秒,-ss 00:00:10
失败。
我没有计算视频大小的选项,因为没有完整下载视频的选项(视频托管在S3上并通过CloudFront用作流)。
也许我忽略了一些内置选项?
我真正不想做的是在失败时逐渐缩短-ss
选项,这将是最后的选择。
答案 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
命令