我创建了一个小批处理文件,帮助人们使用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的
我该怎么做?
非常感谢你的帮助,如果我对某些事情不清楚,请告诉我,我会尽力说清楚。
谢谢!
答案 0 :(得分:8)
我不确定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
如果此方法不起作用,您可以检查目标文件是否存在以确定进一步的操作:
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
希望其中一项有效。
答案 1 :(得分:5)
与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
或
已编辑 - 代码已被截断,现在全部修复
ffmpeg -i %namefile%.mp4 -c:v libx264 -crf 19 %destinationfile%.flv||ffmpeg -i %namefile%.mp4 -c:v libx264 -ar 22050 -crf 28 %destinationfile%.flv
与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