2016-07-06 6 views
1

ユーザーがビデオをアップロードすると、2つのサイズになります。以前、私は次のように2つの段階でこれをやっていた1つのビデオを2つのサイズで1つのコマンドでサイズ変更

まずサイズ:

ffmpeg -i in.mp4 -filter:v "scale=iw*min(1170/iw\,300/ih):ih*min(1170/iw\,300/ih), pad=1170:300:(1170-iw*min(1170/iw\,300/ih))/2:(300-ih*min(1170/iw\,300/ih))/2" out.mp4 

第2のサイズ:

ffmpeg -i in.mp4 -filter:v "scale=iw*min(365/iw\,172/ih):ih*min(365/iw\,172/ih), pad=365:172:(365-iw*min(365/iw\,172/ih))/2:(172-ih*min(365/iw\,172/ih))/2" out1.mp4 

しかし、今の処理時間を短縮するためには、私が組み合わせたいですこれらの2つのステップが1つになります。 -filter:私は 'V -filter' に適した出力形式を見つけることができません[0xaee5440 @ NULL]をhttps://trac.ffmpeg.org/wiki/Creating%20multiple%20outputsを読み、

ffmpeg -i in.mp4 -filter:v "scale=iw*min(1170/iw\,300/ih):ih*min(1170/iw\,300/ih), pad=1170:300:(1170-iw*min(1170/iw\,300/ih))/2:(300-ih*min(1170/iw\,300/ih))/2" bigVideo.mp4 \ -filter:v "scale=iw*min(365/iw\,172/ih):ih*min(365/iw\,172/ih), pad=365:172:(365-iw*min(365/iw\,172/ih))/2:(172-ih*min(365/iw\,172/ih))/2" smallVideo.mp4 

次のコマンドは作るしかし、それは次のようなエラーに

を与えています。 v:無効な引数

誰も私がそれを解決する方法を私に示唆することができますか?

+0

-filter:vフラグを削除して、コマンドを再実行してみます。 – arshpreet

+0

は既に試しましたが動作しませんでした – Jass

答えて

0

私は次のスクリプトを使用して両方のコマンドを実行しようとした:

#!/bin/bash 
for cmd in "[email protected]"; do { 
echo "Process \"$cmd\" started"; 
$cmd & pid=$! 
    PID_LIST+=" $pid"; 
    } done 
    trap "kill $PID_LIST" SIGINT 
    echo "Parallel processes have started"; 
    wait $PID_LIST 
    echo 
    echo "All processes have completed"; 

あなたはfilename.shとして保存し、実行ファイルを作ることができます。そのあとは、引数として複数のコマンドのうちの2つを渡す必要があり、たとえば私が走った:

./filename.sh "ffmpeg -i input.mp4 -s 720x480 output1.mp4" "ffmpeg -i input.mp4 -s 1170x480 output2.mp4" 

あなたのコマンドは、私は並列スクリプトを使用して簡単なコマンドを実行しようとする私のために少し複雑でした。

関連する問題