batch-file - 在批处理文件中动态获取输入文件以对其执行操作

标签 batch-file ffmpeg

我创建了一个 它使用 将视频的帧提取到.jpg .

ffmpeg -i sample.mp4  -r 5 E:\frames\createdFrames%%d.jpg

它工作得很好并创建了所需的帧,但是我想动态地提供示例视频,即在执行批处理文件时传递它。

如何动态传递输入文件?

如果可能,还讨论如何动态存储文件,即在执行批处理时传递我想要存储文件的目录。

最佳答案

@echo off
setlocal
set "infile=%~1"
set "outdir=%~2"
if not defined infile set /p "infile=Input file: " || exit /b 1
if not defined outdir set /p "outdir=Output dir: " || exit /b 2
if not exist "%outdir%" md "%outdir%" || exit /b 3
ffmpeg -i "%infile%" -r 5 "%outdir%\createdFrames%%d.jpg"

可以将参数传递给批处理文件,例如batch.bat sample.mp4 E:\frames
如果没有传递参数,输入提示将要求输入文件。如果未定义,将退出。输出目录的输入也是如此。

如果需要,将创建输出目录,如果失败则退出。

如果一切正常,运行 ffmpeg命令。

关于batch-file - 在批处理文件中动态获取输入文件以对其执行操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55335381/

相关文章:

batch-file - 通过 Jenkins 使用 psexec 运行远程批处理文件失败

windows - 如何使用相同的一行代码为命令行和批处理文件转义 %%?

linux - 流式传输时重新加载 ffserver.conf

nginx - 如何使用 ffmpeg 将 boxblur 添加到 rtmp 流

Android:编码前在哪里存储大量帧?

audio - 如何使用 FFmpeg 将高比特率 MP3 转换为低比特率

windows - 查找在日期之间创建/访问/修改的文件,批处理脚本

windows - 在编译时获取 NSIS 中的文件夹名称

mysql - JDBC 批量插入性能

ffmpeg:如何从 2 个 channel 5.1 到 2 个立体声流进行 dowmix