如何使用管道(ffmpeg + imagemagick)构建视频缩略图表? [关闭]

2023-12-22

如何在 Windows 上使用管道(ffmpeg + imagemagick)构建视频缩略图表而不使用临时文件?


UPDATE:

Here https://superuser.com/questions/1123899/how-to-generate-preview-video-for-web-with-a-few-frames-using-ffmpeg是我写的这篇文章的更新版本。


下面的脚本创建一个名为的文件夹.\thumbnails并在其中存储所有视频缩略图,与视频文件同名。

完全可配置!没有使用临时文件! (使用管道!)

需要:ffmpeg 和 imagemagick。

set impath=C:\programs\imagemagick
set folder=C:\My videos
set frame=320x180
set tile=10x1
set vframes=10
set fps=1/20
    REM 1/60 -> 1 shot every 60s
set filesize=300
    REM max file size in Kb
set filetypes=*.mp4

pushd "%folder%"
if not exist thumbnails md thumbnails

for /f "usebackq delims=" %%f in (`dir /b %filetypes%`) do (
 if not exist "thumbnails\%%~nf.jpg" (
    ffmpeg.exe -threads 2 -y -i "%%f" -an -qscale:v 1 -vf fps=%fps% -vframes %vframes% -f image2pipe -vcodec ppm - ^
    | %impath%\convert - -resize %frame% -background transparent -gravity center -extent %frame% -sharpen 1x2 -quality 100%% miff:- ^
    | %impath%\montage - -tile %tile% -geometry %frame% -background black -quality 100%% -define jpeg:extent=%filesize%kb "thumbnails\%%~nf.jpg"
 )
)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用管道(ffmpeg + imagemagick)构建视频缩略图表? [关闭] 的相关文章

  • 使用 ffmpeg 在一个音频文件中实现多个淡入/淡出效果

    我在向一个音频文件添加多种淡入淡出效果时遇到一些问题 当我尝试使用这样的命令时 ffmpeg y i home user video test sound mp3 af afade t in ss 0 d 3 afade t out st
  • 在新的浏览器进程中打开 URL

    我需要在新的浏览器进程中打开 URL 当浏览器进程退出时我需要收到通知 我当前使用的代码如下 Process browser new Process browser EnableRaisingEvents true browser Star
  • 在用户提示“手动关闭”之前,WiX 在卸载时调用应用程序

    我有一个安装程序 它安装一个应用程序并在安装完成后立即启动该应用程序 这对我来说很有效 但现在我想在卸载应用程序时停止该应用程序 我不希望提示用户手动关闭应用程序 这将全自动工作 我需要使用自定义操作来执行此操作 WM CLOSE 消息在我
  • Matplotlib动画无法保存

    我正在尝试学习如何使用创建 matplotlib 动画Jake Vanderplas 的基本示例 http jakevdp github io blog 2012 08 18 matplotlib animation tutorial 但我
  • QML 缩放不适用于非整数缩放因子

    我正在使用 QML 编写一个应用程序 当我按非整数因子缩放 GUI 时遇到麻烦 根据文档 https doc qt io qt 5 highdpi html Qt AA EnableHighDpiScaling应该启用与设备无关的像素 因此
  • 为什么 mod_wsgi 在 Windows 上不支持守护进程模式?

    On http code google com p modwsgi http code google com p modwsgi 人们可以阅读这一声明 然而 mod wsgi 的守护进程模式将 仅适用于 Apache 2 0 或 2 2 运
  • 如何从不同的进程关闭窗口

    我有一个 C 应用程序 我想指示它从不同的进程中很好地关闭 我还希望能够要求它打开主窗口 我有一个对其主窗口句柄的引用 我知道我可以使用远程处理或 WCF 等复杂的方案来做到这一点 问题是我可以使用更简单的机制 例如窗口消息 或 c 应用程
  • 使用列命令时出现 Bash 错误:“列:行太长”

    当我使用输入文件键入此列命令时 出现以下错误 column t text txt gt output column line too long column line too long column line too long column
  • .NET 4.0 是否与 Windows XP SP2 或更低版本兼容? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我读过这里http www microsoft com downloads en details aspx FamilyID 5765
  • 将最新的 R 安装路径从注册表添加到 PATH windows 7/8/10

    嗨 我是 Windows 批处理新手 我想向打电话的同事分发一个 runMe bat 文件Rscript myRfile R处理一些数据文件 但众所周知 我的同事在不同地方安装了 R 我不能指望他们知道如何将 Rscript 添加到 PAT
  • 如何在 Windows 上以纯 PHP 形式提取 .tar 文件?

    我有一个 PHP 脚本 我想在 Windows 上运行 我需要提取 tar 文件 如何提取 tar 文件 我知道 PharData 类 它可以在 Linux 上运行 但不能在 Windows 上运行 我的脚本就死了 没有错误输出或任何东西
  • Windows 故障转储调用堆栈仅显示 wow64

    Problem 我有一个我们开发的供内部使用的 Windows 应用程序 感谢 Windows 错误处理 窗口保持打开状态 我可以轻松地从任务管理器生成故障转储 我以前曾通过 eclipse 在 linux 上使用过一次故障转储 但这是第一
  • RubyMine - 没有为项目配置 Ruby 解释器

    我进入 设置 Ruby SDK 和 Gems 然后选择C RailsInstaller Ruby1 9 3 bin ruby exe 它在右侧加载了一堆宝石 看起来它会起作用 我点击 确定 但仍然有糟糕的语法突出显示 并且它仍然认为它没有
  • 防止单个可执行文件的多个进程实例

    我正在使用 NET 和 C 我想阻止同一可执行文件的两个实例同时运行 但我不想阻止从另一个文件夹运行的同一进程 例如 我有一个位于两个不同位置的可执行文件 C MyProject Master Program exe C MyProject
  • PC 上 XNA 中的信箱和缩放

    有没有一种方法可以让我基本上以 1080p 或 720p 作为默认分辨率来开发 XNA 游戏 然后根据设置的分辨率将游戏中的所有内容缩放到适当的大小 而不必在每个 Sprite 中设置缩放因子Draw 方法 我的想法是 我可以基于 1080
  • 如何为Android编译最新的FFmpeg库?

    努力将当前 FFmpeg 的工作和一般最佳实践构建在一起 似乎没有最新的文档或教程 现有的内容充满了过时的链接或不起作用的构建脚本 构建独立的 NDK 工具链 下载最新的NDK并运行make standalone toolchain py
  • 适用于 Windows 的视频捕获 SDK 和框架 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我找不到描述 Windows 中视频捕获的所有不同选项的列表 我想将此列表保留给非专有 SDK 即 ImageSource 有自己的
  • 监控 C# 中的特定击键

    I need to write a Windows application which monitors keystrokes regardless of focus When it detects a particular keystro
  • 如何在 EXE 文件中找到要挂钩/绕行的函数地址?

    我又碰壁了 需要你帮助处理一些低级的事情 我已经成功挂钩导出的 DLL 函数 顺便说一句 用这个代码 https web archive org web 20100610091602 http newgre net ncodehook 通过
  • 将 html

    我有一些服务器端代码当前支持 http 字节范围请求 没有任何问题 但是 我希望能够在将转码后的块发送到客户端之前使用 ffmpeg 即时转码视频文件 位于磁盘上 但 ffmpeg 要求我在获取字节时给它一个寻道时间范围来自客户 给定客户端

随机推荐