gpt4 book ai didi

python - 保留子文件夹结构的递归ffmpeg脚本

转载 作者:行者123 更新时间:2023-12-04 23:35:30 25 4
gpt4 key购买 nike

关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。












我们不允许提出有关书籍、工具、软件库等建议的问题。您可以编辑问题,以便可以用事实和引用来回答它。


2年前关闭。







Improve this question




我有 +300 个旧格式 (.VOB) 的视频,我想将其转换为 mp4。幸运的是,在一些文档之后,我设法转换了其中的几个,但我需要让它自动化。不知道如何,甚至我应该使用哪种语言(python,批处理......)
问题是我想保留子文件夹结构。例如,如果视频 1 在文件夹 B 中,而文件夹 B 也在文件夹 A 中,则输出必须在名为“输出”的文件夹中,并且转换后的视频必须在文件夹 B 和文件夹 A 中
ffmpeg 命令,如有必要:

ffmpeg -i input.vob -vf yadif=1 -c:v h264_nvenc output.mp4
提前致谢

最佳答案

该任务可以通过以下方式完成:

@echo off
setlocal EnableExtensions DisableDelayedExpansion
set "BaseSourceFolder=C:\Temp\Source"
set "BaseTargetFolder=C:\Temp\Target"
for /R "%BaseSourceFolder%" %%I in (*.vob) do (
set "FullSourceFileName=%%I"
set "TargetFolder=%%~dpI"
set "TargetFileName=%%~nI"
setlocal EnableDelayedExpansion
set "TargetFolder=!TargetFolder:%BaseSourceFolder%=%BaseTargetFolder%!"
if not exist "!TargetFolder!" md "!TargetFolder!"
if exist "!TargetFolder!" "ffmpeg.exe" -i "!FullSourceFileName!" -vf yadif=1 -c:v h264_nvenc "!TargetFolder!!TargetFileName!.mp4"
endlocal
)
endlocal
BaseSourceFolderBaseTargetFolder 的文件夹路径必须在第三行和第四行定义。 BaseSourceFolder 不能包含字符 =,否则代码将不起作用。
这两个路径可以相同,但在这种情况下,使用仅带有一个命令行的批处理文件会更有效。
可执行文件 ffmpeg.exe 应在具有完整路径的批处理文件中指定以提高效率,因为在这种情况下,Windows 命令处理器 cmd.exe 不需要在每个 VOB 文件中搜索当前目录中的可执行文件,如果在一个接一个的目录中找不到可执行文件在环境变量 PATH 中列出,直到找到。
要了解使用的命令及其工作原理,请打开 command prompt 窗口,在其中执行以下命令,并仔细阅读每个命令显示的所有帮助页面。
  • echo /?
  • endlocal /?
  • for /?
  • if /?
  • md /?
  • set /?
  • setlocal /?

  • 有关命令 SETLOCAL ENDLOCAL 的更多详细信息,另请参见 this answer

    关于python - 保留子文件夹结构的递归ffmpeg脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62629624/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com