6

我创建了一个小批处理文件,用于帮助人们使用 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

我怎样才能做到这一点 ?

非常感谢您的帮助,如果我对某些事情不清楚,请告诉我,我会尽力说清楚。

谢谢 !

4

2 回答 2

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

希望这些作品之一。

于 2012-05-31T17:41:14.337 回答
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
于 2012-05-31T18:06:11.570 回答