use*_*159 5 video ffmpeg image image-processing thumbnails
要在视频中途获取图像缩略图,我可以这样做ffmpeg -ss 100 -i /tmp/video.mp4 -frames:v 1 -s 200x100 image.jpg.通过使用-ss 100它可以在100几秒钟内获得缩略图(假设视频200长达数秒,这将是视频的一半).
但如果我不知道视频的确切长度,在我的应用程序代码中,我需要使用类似的方法ffprobe来首先确定视频的长度,然后将其除以2以获得缩略图时间.
有没有办法让ffmpeg以您想要的视频百分比来获取缩略图?因此,而不是指定-ss 100,-ss 50%或者-ss 20%将缩略图从中途或20%放入文件中?
我知道我可以通过应用程序代码执行此操作,但如果有一种方法可以让ffmpeg自行处理它,那么它会更有效.
它并不漂亮,但是:
ffmpeg -y -i logo-13748357.mp4 -vf "select=gte(n\,$(shuf -i 1-$(ffprobe -v error -select_streams v:0 -show_entries stream=nb_frames -of default=nokey=1:noprint_wrappers=1 logo-13748357.mp4) -n 1))" -vframes 1 out_img.png
Run Code Online (Sandbox Code Playgroud)
上面的命令是一个单行的示例,它捕获视频中的帧数并将其传递给“shuf”命令https://linux.die.net/man/1/shuf,该命令随机选择帧中的一个数字帧范围及其结果传递给 ffmpeg。
所以上面的代码能够从视频中仅用一行随机选择一帧。
您也许能够根据您的特定目标调整此方法。当然,假设七年后它仍然很重要。
| 归档时间: |
|
| 查看次数: |
372 次 |
| 最近记录: |