2016-06-13 19 views
0

ここでは、FFmpegの新機能です。私はFFmpegでコンソールを使ってテストしています。5ビデオ間のクロスフェードのためのFFmpegコマンドsetpts = PTS-STARTPTSを管理する方法?

私はすでに2ビデオで行わこの質問をクロスフェードで参加: 私はちょうど をマージするには90%に行われ、クロスフェードとの合併5つのビデオのためにやっている私はちょうどsetptsを管理する必要がある= PTS-STARTPTSこのplsを見てください。

ffmpeg -i big_buck.mp4 -i big_buck.mp4 -i big_buck.mp4 -i big_buck.mp4 -i 
big_buck.mp4 -filter_complex "[0:v]trim=0:4,setpts=PTS- 
STARTPTS,fade=out:st=4:d=1:alpha=1[1]; [1:v]trim=1:4,setpts=PTS- 
STARTPTS,format=yuva420p,fade=in:st=0:d=1:alpha=1,fade=out:st=4:d=1:alpha=1[2]; 
[2:v]trim=1:4,setpts=PTS- 
STARTPTS,format=yuva420p,fade=in:st=0:d=1:alpha=1,fade=out:st=4:d=1:alpha=1[3]; 
[3:v]trim=1:4,setpts=PTS- 
STARTPTS,format=yuva420p,fade=in:st=0:d=1:alpha=1,fade=out:st=4:d=1:alpha=1[4]; 
[4:v]trim=1:4,setpts=PTS-STARTPTS,format=yuva420p,fade=in:st=0:d=1:alpha=1[5]; 
[1][2]overlay,format=yuv420p[12]; [12][3]overlay,format=yuv420p[123]; [4] 
[5]overlay,format=yuv420p[45]; [123][45]concat=n=2 [v]" -map [v] result.mp4 

**** ****毎に入力映像big_buck.mp4長さが5秒であることに留意されたいです。今すぐsetpts = PTS-STARTPTSを参照してください。どのビデオをどのように管理するのですか?

私はそれについての様々なフォーラムでも見ますが、私は見つけませんでした! は、PTSは、第三クリップがあるため、8秒でフェードイン開始すべきである。すなわち、クリップの現在の組み合わせが終了する前に、それぞれの新しいクリップが1秒を開始するように修正しなければならない

+0

は[こちら](http://video.stackexchange.com/a/17504/1871)を参照してください。これはクロスフェードの方法を示しています。オーバレイ出力を3番目のビデオと連結する必要があります。 – Mulvya

答えて

1

使用

ffmpeg -i big_buck.mp4 -i big_buck.mp4 -i big_buck.mp4 -i big_buck.mp4 -i 
big_buck.mp4 -filter_complex \ 
"[0:v]setpts=PTS-STARTPTS[v1]; \ 
[1:v]format=yuva420p,fade=in:st=0:d=1:alpha=1,setpts=PTS-STARTPTS+(4/TB)[v2]; 
[2:v]format=yuva420p,fade=in:st=0:d=1:alpha=1,setpts=PTS-STARTPTS+(8/TB)[v3]; 
[3:v]format=yuva420p,fade=in:st=0:d=1:alpha=1,setpts=PTS-STARTPTS+(12/TB)[v4]; 
[4:v]format=yuva420p,fade=in:st=0:d=1:alpha=1,setpts=PTS-STARTPTS+(16/TB)[v5]; 
[v1][v2]overlay[v12]; [v12][v3]overlay[v123]; [v123][v4]overlay[v1234]; [v1234][v5]overlay,format=yuv420p[v]" \ 
-map [v] result.mp4 

をありがとう最初の2つのクリップの組み合わせは9秒(最初のクリップの4秒+ 1秒のトランジション+ 2番目のクリップの4秒)です。

次のクリップが上にフェードインするので、フェードアウトする必要はありません。あなたがカットをしたい場合にのみ、連結は必要です。オーディオクロスフェードで


ffmpeg -i big_buck.mp4 -i big_buck.mp4 -i big_buck.mp4 -i big_buck.mp4 -i 
big_buck.mp4 -filter_complex \ 
"[0:v]setpts=PTS-STARTPTS[v1]; \ 
[1:v]format=yuva420p,fade=in:st=0:d=1:alpha=1,setpts=PTS-STARTPTS+(4/TB)[v2]; 
[2:v]format=yuva420p,fade=in:st=0:d=1:alpha=1,setpts=PTS-STARTPTS+(8/TB)[v3]; 
[3:v]format=yuva420p,fade=in:st=0:d=1:alpha=1,setpts=PTS-STARTPTS+(12/TB)[v4]; 
[4:v]format=yuva420p,fade=in:st=0:d=1:alpha=1,setpts=PTS-STARTPTS+(16/TB)[v5]; 
[v1][v2]overlay[12]; [12][v3]overlay[123]; [123][v4]overlay[1234]; [1234][v5]overlay,format=yuv420p[v]; \ 
[1][2]acrossfade=d=1[a12]; [a12][3]acrossfade=d=1[a123]; [a123][4]acrossfade=d=1[a1234]; [a1234][5]acrossfade=d=1[a];" \ 
-map [v] -map [a] result.mp4 
+0

動画間でクロスフェード(動画間でフェードインフェードアウト)はありません(出力結果としてチェックされています)。直接ビデオをマージするだけです...編集できます... @Mulvya –

+0

修正済みです。タイムスタンプは、フェード後に変更する必要があります。あるいは、フェードのための「st」値を変更することができる。 – Mulvya

+0

完璧!あなたはオーディオで編集することもできます:) –

関連する問題