本文介绍了ffmpeg从cropdetect获取值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

限时删除!!

可以在一行中运行cropdetect和裁剪,并从视频中获取拇指?

Its possible to run cropdetect and crop in one line and get thumbs from video?

这样的

ffmpeg -ss 1 -i 0.flv -vf cropdetect=24:16:0,crop=w:h:x:y -vcodec mjpeg -vframes 1 -an -f rawvideo -s 240x180 0.jpg

或者可能需要运行在2行,首先运行cropdetect,而不是运行裁剪并从视频中生成缩略图,但是我需要从cropdetect获取值?

Or maybe need to run in 2 line, first run cropdetect and than run crop and generate thumbs from video, but in this way i need to get value from cropdetect?

推荐答案

输出到控制台,因此您可以解析输出,然后将其用作变量:

cropdetect outputs to the console, so you can parse the output and then use it as a variable:

ffmpeg -i input -t 1 -vf cropdetect -f null - 2>&1 | awk '/crop/ { print $NF }' | tail -1

这将导致如下:

crop=640:480:0:50

然后运行您的实际裁剪命令:

Then run your actual crop command:

ffmpeg -i input -vf $cropvalue,scale=240:-1 -vframes 1 -qscale:v 2 output.jpg




  • -vcodec mjpeg -an -f rawvideo 是多余的

    使用 -qscale:v 来控制输出质量。一个合理的范围是2-5(较低的值是更高的质量)。

    Use -qscale:v to control jpg output quality. A sane range is 2-5 (a lower value is a higher quality).

    使用过滤器而不是 -s ;特别是如果您已经在使用过滤器。另外, scale filter将允许您设置一个特定的宽度或高度,并使用 -1 它将自动提供正确的价值保留方面。否则,如果你试图强制一个特定的大小,你可能会有一个挤压或拉伸的产出风险。

    Use the scale filter instead of -s; especially if you're already using filters. Also the scale filter will allow you to set a specific width or height and with -1 it will automatically provide the correct value to preserve aspect. Otherwise if you try to force a specific size you can risk a squished or stretched output.

    显然我不是一个PHP编码器,但这至少应该给你一个想法。

    Obviously I'm not a PHP coder, but this should give you an idea at least.

    这篇关于ffmpeg从cropdetect获取值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

    1403页,肝出来的..

09-08 23:14