ズームとフェードを組み合わせてffmpeg

ズームとフェードを組み合わせてffmpeg

私はインターネットで見つけたあらゆるチュートリアルを通じて FFmpeg を試してきましたが、ズームパン効果と一連の画像のフェードインおよびフェードアウトを組み合わせる方法が少しわかりません。

見つけた例を少しずつ組み合わせて次の結果にたどり着きましたが、得られた結果は順次的なものであり、私が考えていたものとは違うようです。

正しい方向を指し示すヒントがあれば、ぜひ教えてください。

ffmpeg \ 
-loop 1 -t 5 -i input/slideshow/img0001.jpeg 
-loop 1 -t 5 -i input/slideshow/img0002.jpeg \
-loop 1 -t 5 -i input/slideshow/img0003.jpeg \
-loop 1 -t 5 -i input/slideshow/img0004.jpeg \
-filter_complex \
"[0:v]zoompan=z='if(lte(zoom,1.0),1.5,max(1.001,zoom-0.0015))':d=125,fade=t=out:st=4:d=1[v0]; \
 [1:v]zoompan=z='if(lte(zoom,1.0),1.5,max(1.001,zoom-0.0015))':d=125,fade=t=in:st=0:d=1,fade=t=out:st=4:d=1[v1]; \
 [2:v]zoompan=z='if(lte(zoom,1.0),1.5,max(1.001,zoom-0.0015))':d=125,fade=t=in:st=0:d=1,fade=t=out:st=4:d=1[v2]; \
 [3:v]zoompan=z='if(lte(zoom,1.0),1.5,max(1.001,zoom-0.0015))':d=125,fade=t=in:st=0:d=1,fade=t=out:st=4:d=1[v3]; \
 [v0][v1][v2][v3]concat=n=4:v=1:a=0,format=yuv420p[v]" -map "[v]" -s "800x450" -t 40 output/out_fade.mp4

答え1

ズームとフェードを組み合わせてffmpeg

あなたが示した例は、ffmpeg実際にはほとんど変更せずに動作しました ( を維持する-loopとセグメント違反が発生しました: " Error in 'ffmpeg': double free or corruption (!prev): 0x0000000008dffa00")。

つまり、次のようになります。

ffmpeg \
-t 5 -i 1.jpg \
-t 5 -i 2.jpg \
-t 5 -i 3.jpg \
-t 5 -i 4.jpg \
-フィルター_complex \
"[0:v]ズームパン=z='if(lte(ズーム,1.0),1.5,max(1.001,ズーム-0.0015))':d=125,フェード=t=アウト:st=4:d=1[v0]; \
 [1:v]ズームパン=z='if(lte(ズーム,1.0),1.5,max(1.001,ズーム-0.0015))':d=125,フェード=t=イン:st=0:d=1,フェード=t=アウト:st=4:d=1[v1]; \
 [2:v]ズームパン=z='if(lte(ズーム,1.0),1.5,max(1.001,ズーム-0.0015))':d=125,フェード=t=イン:st=0:d=1,フェード=t=アウト:st=4:d=1[v2]; \
 [3:v]ズームパン=z='if(lte(ズーム,1.0),1.5,max(1.001,ズーム-0.0015))':d=125,フェード=t=イン:st=0:d=1,フェード=t=アウト:st=4:d=1[v3]; \
 [v0][v1][v2][v3]concat=n=4:v=1:a=0,format=yuv420p[v]" -map "[v]" -s "800x450" -t 40 ./out_fade.mp4

出力例:

ズームパンとフェードの例

ポテト品質 - 最適化をもっとよく理解する必要がありますgif。アーティファクトと歪みは、ファイル サイズを 2 MB 未満にしようとした結果であり、元のビデオ出力には存在しません。使用例に適しているかどうかを判断するには十分なはずです。画像は私自身のものです。


(追加)多様なトランジションや任意のトランジションを使用する

コメントに基づいて追加

この最小限の例でも、filtergraphすぐにかなり複雑になり、変更するのは面倒です。別のライブラリの方が適しているかもしれません。

MLT / メルト

例えば、MELTMLTフレームワーク行う可能性があります:

Melt は、MLT フレームワークのテスト ツールとして開発されました。あまり知られていないものの、強力でマルチトラックのコマンド ライン指向のビデオ エディターであると考えられます。

頻繁に提案されます。

ムービーパイ

しかし、ムービーパイ(GitHub ページ) は、コマンドライン ビデオ エディターがユーザー フレンドリーである限り、やや簡潔で (私が提案する) よりユーザー フレンドリーであるため、ニーズにより適している可能性があります。

おそらく、以下のセクションに最も興味があるでしょう。合成そしてトランジション/エフェクト


私は、 を使ってトランジションを無理やり挿入しようとした経験に基づいて、上記の 2 つを提案します。ffmpegこれは実行可能であり、非常に適切な効果を生み出すことができますが、苦労する価値はありません。上記のスクリプトは、フェードイン/フェードアウトによる連続ズームアウトに関する質問への回答になるはずです。

関連情報