2012-05-31 9 views
6

私はFF4EGでMP4ビデオをFLVに変換するための小さなバッチファイルを作成しました。私はそれを使用することを知っている誰もが簡単にする方法。私が入れたラインはあらゆる状況(MP4ファイルをFLVに変換する)に完璧だったと思っていましたが、数日前はファイルのためには機能しませんでした。 (オーディオサンプルをFLV形式の高音質に変換)"IF"コマンドを使用したバッチファイルの作成

人の助けを借りて、変換するための他のコードラインが見つかりましたが、正しくバッチファイルに統合する方法がわかりません。

私が今使用しているものがあります:

は「拡張子whitout、ファイルの名前を入力し、」エコーは:=

はあなたが何に名前を入力し、」エコー /Pのnamefileを設定しました宛先ファイル」に与える:設定/ 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

をすることができ使用せずに今固定、切り捨て得ていましたテストしたい条件を簡単な言葉で書く'if'ステートメント? –

+1

こんにちは、この簡単な答えのための@EitanTに感謝!私はあなたの質問を完全には分かっていないので、もし私が間違っているならば、ちょうど私にそれを教えてください!私が探しているのは、 'FFMPEGがビデオを変換できない場合は、この他のコードラインを使用してください。' また、私たちが問題について話した場合、最後のビデオが届くのはそれ以上です 'オーディオサンプルが11025,22050または44100でない場合、そのコードラインを使用してください。 '' '' 私はあなたの質問に正しく答えることを望みます! ありがとうございました! –

+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 

これらの作品のいずれかを希望します。

+0

最初のスクリプトでエラーロジックが反転しています。 'errorlevel 1 goto Done'を読んでください。 – dbenham

+0

ありがとう。これを修正しました。 –

4

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 

または
編集からコードはすべてがEitanTの第二の溶液と同様に

ffmpeg -i %namefile%.mp4 -c:v libx264 -crf 19 %destinationfile%.flv||ffmpeg -i %namefile%.mp4 -c:v libx264 -ar 22050 -crf 28 %destinationfile%.flv 

が、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 
+0

バッチで 'goto'の何が問題になっていますか? –

+0

@ EitanT - GOTOに技術的に間違ったものはありません。しかし、GOTOはバッチ処理が遅く、GOTOのないコードはより簡単で小さくなります。この場合、速度の差は重要ではありませんが、論理が明確である限り、コードの量を最小限に抑えることができます。 – dbenham

+0

バッチが関わっているときにパフォーマンスが問題になるとは思わない...また、Cで 'return'と同じように' goto Done'と表示されるので、実際はもっときれいです。しかし、私はスタイルの場合はそれが問題だと思います。 –

関連する問題