【问题标题】:Specify percentage instead of time to ffmpeg指定百分比而不是时间到 ffmpeg
【发布时间】:2017-05-27 09:11:00
【问题描述】:

要从视频中途的图像中获取缩略图,我可以使用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 有办法自己处理这个问题,效率会更高。

【问题讨论】:

  • 你找到了吗?

标签: image video image-processing ffmpeg thumbnails


【解决方案1】:

不漂亮但是:

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

上面的命令是一个单行示例,它抓取视频中的帧数并将其传递给“shuf”命令https://linux.die.net/man/1/shuf,该命令在帧范围内随机选择一个数字,其结果是传递给 ffmpeg。

所以上面可以从视频中随机选择一帧,只有一行。

您也许可以根据您的具体目标调整这种方法。当然,假设它在七年后仍然很重要。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-22
    • 2011-03-07
    • 1970-01-01
    相关资源
    最近更新 更多