Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unix 用于创建缩略图精灵的ffmpeg命令_Unix_Ffmpeg - Fatal编程技术网

Unix 用于创建缩略图精灵的ffmpeg命令

Unix 用于创建缩略图精灵的ffmpeg命令,unix,ffmpeg,Unix,Ffmpeg,要从ffmpeg输出单个帧,我可以执行以下操作: ffmpeg -i input.flv -ss 00:00:14.435 -vframes 1 out.png ffmpeg -i input.flv -vf fps=1 out%d.png 要每秒输出一个图像,我可以执行以下操作: ffmpeg -i input.flv -ss 00:00:14.435 -vframes 1 out.png ffmpeg -i input.flv -vf fps=1 out%d.png 是否有一种方法可

要从ffmpeg输出单个帧,我可以执行以下操作:

ffmpeg -i input.flv -ss 00:00:14.435 -vframes 1 out.png
ffmpeg -i input.flv -vf fps=1 out%d.png
要每秒输出一个图像,我可以执行以下操作:

ffmpeg -i input.flv -ss 00:00:14.435 -vframes 1 out.png
ffmpeg -i input.flv -vf fps=1 out%d.png

是否有一种方法可以从这些输出创建缩略图精灵,以帮助在搜索位置为拇指创建vtt文件

我不完全确定您对vtt文件使用sprite需要/意味着什么,但有一个很好的工具,可以让您将单个图像组合到一个大的概览图中:

附带一个名为
montage

蒙太奇-通过组合多个单独的图像创建合成图像。图像平铺在合成图像上,可以选择使用边框、边框、图像名称等进行装饰

您可以使用以下命令将缩略图放在一个或多个图像上:

montage *.png -tile 4x4 overview.png

它将自动生成所需图片的数量,为您提供概览。

下面是一个示例,使用ffmpeg从mp4视频创建jpeg文件(280x180),然后使用PHP gd2+为视频播放器编写VTT文件,将此缩略图组装成精灵(png格式)

首先使用ffmpeg每秒创建1个图像:

ffmpeg -i sprite/MyVideoFile.mp4 -r 1 -s 280x180 -f image2 sprite/thumbs/thumb-%%d.jpg
然后创建sprite文件+vtt文件(使用PHP的示例):

VTT文件看起来像:

WEBVTT
1
00:00:00.000 --> 00:00:01.000
sprite.png#xywh=0,0,280,180

2
00:00:01.000 --> 00:00:02.000
sprite.png#xywh=280,0,280,180

3
00:00:02.000 --> 00:00:03.000
sprite.png#xywh=560,0,280,180
...

对的一点改进建议:如果最终的精灵是PNG,我会避免JPG压缩导致的质量下降,而是将临时缩略图保存为PNG:

ffmpeg -i sprite/MyVideoFile.mp4 -r 1 -s 280x180 -f image2 sprite/thumbs/thumb-%%d.png
此外,保存到PNG通常比保存到JPG快一点


相反,为了保持下载量小,将最终的sprite图像保存为JPG可能是有意义的,在PHP和GD的情况下,JPG只需要将imagepng(…)替换为imagejpeg(…)。

如果这是您需要的,请告诉我。如果没有,我将删除此答案。VTT(或WebVTT)可以参考所需屏幕截图的时间和位置,如下所示:。FFmpeg可以制作电影带/蒙太奇(,),也可以制作VTT文件,但还不能添加位置和时间。@您应该添加注释作为答案。关于这个问题,我认为我完全走错了方向。你至少为蒙太奇部分提供了一个解决方案。我没有代表对上述评论发表评论,但这里有一些关于OP含义的背景:是关于玩家如何使用WebVTT文件的描述,在本例中是JWPlayer,以允许所谓的“预览缩略图”(在其版本中悬停在进度条上的图像)或“精灵缩略图”示例中,坐标用于由较小图像组成的大型图像。