首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Windows批处理脚本FFmpeg

Windows批处理脚本FFmpeg
EN

Stack Overflow用户
提问于 2021-03-01 09:24:51
回答 1查看 2.6K关注 0票数 0

我已经创建了一个批处理文件(.bat),它使用FFmpeg将各种视频(具有*.mov或*.mp4文件扩展名)从输入文件夹转换为输出文件夹(带有扩展名*.mkv)作为批处理过程(Windows 10环境)。应该将输入文件夹中的文件名(没有扩展名)复制到新创建的输出文件名(具有新的文件扩展名*.mkv)。

代码语言:javascript
复制
@echo off

set CMD=ffmpeg -c:v ffv1 -level 3 -g 1 -coder 1 -context 1 -pix_fmt + -slices 24 -slicecrc 1 -report -c:a pcm_s24le

FOR /R input_folder %%G IN (*.mov,*.mp4) DO (
   echo %%G
   call set outputfile=%%~nG%.mkv
   call set inputfile=%%~nG%%~xG
   echo %CMD% -y output_folder/%outputfile% -i %inputfile%
)

但是这个脚本不像预期的那样工作,即什么也没有发生。你知道怎么解决这个问题吗?提前感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-01 14:57:37

这里有一个示例,显示了我从注释中得到的建议,并按照注释中的要求添加了文件删除。这假设ffmpeg在成功时返回错误级别的0 (如果处理失败,您不想删除它们),并且在当前工作目录中有一个名为output_folder__的现有目录。

代码语言:javascript
复制
@Echo Off
SetLocal EnableExtensions
Set "CMD=ffmpeg.exe -c:v ffv1 -level 3 -g 1 -coder 1 -context 1 -pix_fmt +"
Set "CMD=%CMD% -slices 24 -slicecrc 1 -report -c:a pcm_s24le"

For /R "input_folder" %%G In (*.mov *.mp4) Do (
    Echo %%G
    %CMD% -y "output_folder\%%~nG.mkv" -i "%%G"
    If Not ErrorLevel 1 Del /A /F "%%G"
)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66419497

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档