我使用它来从视频中获取帧并将它们连接在一个图像中:
ffmpeg -i output.mp4 -vf 'fps=2,tile=1000x1' out.jpg
但是有一个问题:我不知道将要获取的帧数。这里我硬编码了瓷砖尺寸1000x1,但如果有超过1000帧,那么将是一个错误。在开始ffmpeg之前,我不知道瓷砖的实际尺寸。
所以我想使用如下命令:
ffmpeg -i output.mp4 -vf 'fps=2,tile=*x1' out.jpg
这意味着:我希望您连接将在一行中获取的所有图像,但我不能使用*作为tile的参数。
有没有办法解决我的问题?
答案 0 :(得分:2)
我有个主意:
$ FRAMES=`ffprobe -v error -count_frames -select_streams v:0 -show_entries stream=nb_read_frames -of default=nokey=1:noprint_wrappers=1 xxx.mp4`
$ FFMPEG="ffmpeg -i xxx.mp4 -vf 'fps=2,tile=\$FRAMESx1' out.jpg"
$ `echo "${FFMPEG//\$FRAMES/$FRAMES}"`