2011-09-27 78 views
13

フェードインした画像のスライドショーを作成したいのですが、&との間でフェードアウトを行い、FFmpegフェードフィルタを使用しています。フレーム間のFFmpegフェードエフェクト

私はコマンドを使用する場合:フェード効果を持つ出力ビデオを作成するには

ffmpeg -i input.mp4 "fade=in:5:8" output.mp4 

を、それは黒とイメージよりも、最初の5つのフレームで出力ビデオを与えるには効果フェードインで表示されますが、私はフェードしたい:中:フレーム変化の間の効果。

どうすればいいですか?

私だけ

+0

http://superuser.com/質問/ 778762 /クロスフェード - 2-videos-using-ffmpeg | http://superuser.com/questions/223678/how-to-convert-single-images-into-a-video-with-blending-transition –

答えて

6

は、フェード効果でビデオを作成するだけの部分にビデオを分割し、各画像に個別の動画を作成するには、このサーバ上にFFmpegを使用していますので、CentOSにサーバのためのソリューションを教えてください。たとえば、あなたが5つのイメージを持っているならば、まず、各画像の50-60コピーを作成し、そのためのビデオを入手:

$command= "ffmpeg -r 20 -i images/%d.jpg -y -s 320x240 -aspect 4:3 slideshow/frame.mp4"; 
    exec($command." 2>&1", $output); 

これは、5種類の動画を作成することができます。その後、これらの5つの画像の10-12の異なるコピーが必要で、フェード効果を持つ別々のビデオを作成します。その上、画像1用のビデオと画像2のために、そのフェード効果とそのフェード効果と:

ffmpeg -i input.mp4 "fade=in:5:8" output.mp4 

この後に次のような動画があります。これらのビデオをそれぞれの順序で組み合わせて、ビデオ全体を取得します。あなたが必要と動画を組み合わせについては

$command = "cat pass.mpg slideshow/frame.mpg > final.mpg"; 

これはcatを使用してビデオに参加することを意味し、その後、あなたは、mpgファイルに変換それらを結合して、再度それらを適切に表示するためにMP4またはAVIファイルにそれらを再変換する必要があります。また、変換されたmpgビデオは適切ではないので、気にしないでください。 mp4に変換すると、うまく動作します。

+1

イメージファイルの複数のコピーを作成するのではなく、ffmpegに入力。 '-loop 1 -i input。jpg -t 2'は、ffmpegに静止画をループソースとして使用するよう指示します。これは永遠に再生されるので、 '-t 2'オプション(この場合は2秒を指定)を使用して出力ビデオの時間を設定する必要があります。 – stib

1

gifblenderを使用して、イメージからブレンドされた中間フレームを作成し、それらをffmpegを使用してムービーに変換することができます。

-1

フレームレートフィルタを使用して、ピクチャ間でクロスフェードするスライドショーを作成できます。次の例では、0.25がピクチャの読み込みに使用されるフレームレートです(この場合、各ピクチャは4秒です)。パラメータfpsは、出力フレームレートを設定します。 interp_startとinterp_endパラメータは、フェーディング効果を変更するために使用することができます。interp_start = 128:interp_end = 128は、フェーディングなしを意味します。 interp_start = 0:interp_end = 255は連続フェーディングを意味します。 1つのピクチャがフェードアウトし、次のピクチャが完全にフェードインすると、3番目のピクチャがすぐにフェードインします。2番目のピクチャを表示するための一時停止はありません。 interp_start = 64:interp_end = 191は、時間の半分がピクチャを表示するために休止し、残りの半分がフェーディングすることを意味する。残念ながら、0〜100%の完全なフェージングではなく、25%〜75%のフェージングだけになります。それはまさにあなたが望むかもしれませんが、まったくフェージングしないよりも優れています。

ffmpegの-framerate 0.25 -i IMG_%3d.jpg -vf "フレームレート= FPS = 30:interp_start = 64:interp_end = 192:シーン= 100" test.mp4

+1

これは理論的に質問に答えるかもしれませんが、答えの本質的な部分をここに含めて参考にすることが望ましいです(// meta.stackoverflow.com/q/8259)。 –

+0

あなたは正しいです、私は私の答えを編集しました。 – Michael