Joh*_*n_D 6 windows command-line command batch-file
我创建了一个小批处理文件,帮助人们使用FFMPEG将MP4视频转换为FLV.一种让我知道使用它的每个人都很简单的方法.我认为我放入的线路对于任何情况都是完美的(将MP4文件转换为FLV),但几天前,它对文件不起作用.(FLV格式的音频样本为高)
我在人的帮助下找到了转换它的其他代码行,但我不知道如何在我的批处理文件中正确地集成它.
我现在使用的是:
echo"输入文件的名称,输出扩展名":set/p namefile =
echo"输入要为目标文件提供的名称":set/p destinationfile =
ffmpeg -i%namefile%.mp4 -c:v libx264 -crf 19%destinationfile%.flv
我想添加一个"IF".因为如果这不适用于此行,请使用该行:
ffmpeg -i%namefile%.mp4 -c:v libx264 -ar 22050 -crf 28%destinationfile%.flv
我怎样才能做到这一点 ?
非常感谢你的帮助,如果我不清楚某些事情,请告诉我,我会尽力说清楚.
谢谢 !
我不确定FFMPEG是否在发生故障时返回标准错误代码,但如果失败,则可以使用以下内容:
ffmpeg -i %namefile%.mp4 -c:v libx264 -crf 19 %destinationfile%.flv
if not errorlevel 1 goto Done
ffmpeg -i %namefile%.mp4 -c:v libx264 -ar 22050 -crf 28 %destinationfile%.flv
:Done
Run Code Online (Sandbox Code Playgroud)
如果此方法不起作用,您可以检查目标文件是否存在以确定进一步的操作:
ffmpeg -i %namefile%.mp4 -c:v libx264 -crf 19 %destinationfile%.flv
if exist %destinationfile%.flv goto Done
ffmpeg -i %namefile%.mp4 -c:v libx264 -ar 22050 -crf 28 %destinationfile%.flv
:Done
Run Code Online (Sandbox Code Playgroud)
希望其中一个有效.
与EitanT的第一个解决方案类似,但不使用GOTO.
ffmpeg -i %namefile%.mp4 -c:v libx264 -crf 19 %destinationfile%.flv
if errorlevel 1 ffmpeg -i %namefile%.mp4 -c:v libx264 -ar 22050 -crf 28 %destinationfile%.flv
Run Code Online (Sandbox Code Playgroud)
或
编辑 - 代码被截断,现在全部修复
ffmpeg -i %namefile%.mp4 -c:v libx264 -crf 19 %destinationfile%.flv||ffmpeg -i %namefile%.mp4 -c:v libx264 -ar 22050 -crf 28 %destinationfile%.flv
Run Code Online (Sandbox Code Playgroud)
类似于EitanT的第二个解决方案,但没有使用GOTO
ffmpeg -i %namefile%.mp4 -c:v libx264 -crf 19 %destinationfile%.flv
if not exist %destinationfile%.flv ffmpeg -i %namefile%.mp4 -c:v libx264 -ar 22050 -crf 28 %destinationfile%.flv
Run Code Online (Sandbox Code Playgroud)