最初の30秒のffmpeg透かし

ffmpeg -i v.3gp -acodec copy -vf "movie=w.png [logo]; [in][logo] overlay=10:main_h-overlay_h-10 [out]" nv.3gp

それはうまく動作しますが、透かしは最初の30秒間だけ必要です。 何か案は?

7

4 答え

ロゴをpngコーデックとアルファチャンネルで30秒間のビデオに変換し、オーバーレイとしてビデオを適用することができます。

ロゴビデオの期間は、メインビデオのフレームレート(あなたの場合はv3pg)のフレーム数で指定する必要があります。たとえば、30 fpsのメインビデオの場合:

ffmpeg.exe -loop 1 -i w.png -vframes 901 -vf "fade=out:899:1:alpha=1" 
    -vcodec png -pix_fmt rgba w.mov

ロゴは消えていく必要があります。それ以外の場合は消えません。次に、ロゴビデオを別のビデオのオーバーレイとして使用します。

ffmpeg -i v.3gp -acodec copy -vf "movie=w.mov [logo]; [in][logo]
    overlay=10:main_h-overlay_h-10 [out]" nv.3gp

あるいは、突然終了するのではなく、徐々にロゴをフェードアウトさせることができる。 -vf "fade = out:870:30:alpha = 1" を使用して30フレーム以内に表示されます。

7
追加された
奇妙な。古いffmpegを使用していますか? -loop-input を試してみるか、最新のものを入手してください
追加された 著者 Dmitry Shkuropatsky,
あなたは -pix_fmt rgba オプションを渡さなかった。また、最新のffmpegを試してみてください。
追加された 著者 Dmitry Shkuropatsky,
@ Dmitry-Shkuropatskyさん、こちらで私を助けてくださいましたか?基本的に透明なビデオをマージしようとすると、背景効果の代わりに黒いオーバーレイが表示されます。
追加された 著者 Rakesh Sankar,
オプション 'loop'の値 '1'が無効です
追加された 著者 ncs,
そしてそれは消えませんffmpeg -i w.png -vframes 901 -vf「フェード=アウト:870:30:アルファ= 1」-vcodec png -pix_fmt rgba logo.mov ffmpeg -i v.3gp -acodec copy -vf "movie = logo.mov [logo]; [in] [logo] overlay = 10:main_h-overlay_h-10 [out]" nv.3gp
追加された 著者 ncs,
ffmpeg -loop_input -fイメージ2 -i w.png -vframes 901 -vf "フェード=アウト:870:30:アルファ= 1" -vcodec png logo.mov//ffmpeg -i v.3gp -acodec copy -vf "movie = logo.mov [logo]; [in] [logo] overlay = 10:main_h-overlay_h-10 [out] "nv.3gp //それは仕事ですが、アルファはありません。私がlogo.movを-vfなしで作ると、すべてがOKですが、透かしは全期間表示されます。
追加された 著者 ncs,
ffmpegバージョン0.7.11、freebsd portsの最新版です。-pix_fmt rgbaは何の影響も受けません:(
追加された 著者 ncs,

overlay filter supports timeline editing; you can simply read from a png file and then overlay=enable='lte(t,30)':...

6
追加された
これはかなりうまくいく。
追加された 著者 kev,
@kevどのような控えめなコメント。大好きです。
追加された 著者 Joshua Pinter,

それは遅れていると思いますが、同様の問題を見ているうちに私はこの問題を解決することができました。 開始から0.5秒でフェードインしてから、30秒でフェードアウトします

ffmpeg \
-i v.3gp \
-loop 1 -i w.png \
-acodec copy \
-filter_complex \
"[1:v] fade=in:st=0:d=0.5,fade=out:st=30:d=0.5 [logo]; [0:v][logo] overlay=10:main_h-overlay_h-10" \
nv.3gp
4
追加された
無限のコード化ループ(-loop 1によって引き起こされる)を避けるにはどうすればよいですか?反対側では、複合フィルタでeof_action = pass [out1]を使用して出力にマップすると、出力には動作する音声はありません。何か案は?
追加された 著者 fiveDust,
@fiveDust -shortest 引数を試してください(詳細オプションのドキュメント)。
追加された 著者 Tag,

最初の30秒間をカットし、ウォーターマークを適用して残りの部分と結合することができます。

0
追加された
最善の方法が存在することを願っ
追加された 著者 ncs,