2016-04-01 8 views
0

私はオンラインコースを作っています。海賊版の配布を避けるために、私は共有のウェブサイトにアップロードできないように、ビデオに透かしを入れることを考えました。今は難しい部分です:私は3/4ランダムポジションで、30秒ごとにビデオ中にウォーターマークを移動します。 ffmpegで可能ですか?ffmpeg - ビデオへの動的文字とランダムな位置のウォーターマーク?

+0

[飛び越しテキストウォーターマークを作る](http://stackoverflow.com/questions/30291331/making-jumping-text-watermark)。 – LordNeckbeard

答えて

2

編集:これはありません繰り返しで、30秒ごとに位置をランダム化しますLNのリンク、で答えを適応したものです:

にあなたに答える

ffmpeg -i input.mp4 \ 
-vf \ 
"drawtext=fontfile=font.ttf:fontsize=80:[email protected]:text='studentname': \ 
x=if(eq(mod(t\,30)\,0)\,rand(0\,(W-tw))\,x): \ 
y=if(eq(mod(t\,30)\,0)\,rand(0\,(H-th))\,y)" \ 
-c:v libx264 -crf 23 -c:a copy output.mp4 

古いです以下のようなコマンドを使用できます。

ffmpeg -i input.mp4 \ 
-vf \ 
"drawtext=fontfile=font.ttf:fontsize=80:[email protected]: \ 
text='studentname':x=200:y=350:enable='between(mod(t\,30*3),0,30)', \ 
drawtext=fontfile=font.ttf:fontsize=80:[email protected]: \ 
text='studentname':x=1000:y=600:enable='between(mod(t\,30*3),31,60)', \ 
drawtext=fontfile=font.ttf:fontsize=80:[email protected]: \ 
text='studentname':x=450:y=50:enable='between(mod(t\,30*3),61,90)'" \ 
-c:v libx264 -crf 23 -c:a copy output.mp4 

ここでは、3つの位置が30秒ごとに変更されて回転します。各x:yパラメータは手動で設定されます。シェルスクリプトからコマンドを呼び出す場合は、乱数ジェネレータを使用してコマンドに入力することができます。 drawtextフィルタにはランダム関数が含まれていますが、各フレームの場合はと評価されます。その結果、テキスト付きの擬似ピンポンゲームになります。

+0

これは興味深い例です。このような疑問が十分にありましたが、パッチを提出したいと思えば、 'doc/filters.texi'のdrawtextの例に追加すると便利だと思います。 – LordNeckbeard

+0

いいですね。ドキュメントの書式を設定して提出する方法についてのガイドを指摘できますか?ありがとう。 – Mulvya

+0

[gitを使ってffmpegを複製する](https://ffmpeg.org/download.html)。 [gitグローバルコンフィグレーションに名前と電子メールを追加](https://wiki.videolan.org/git#Configure_your_global_git_config)、 'ffmpeg'ディレクトリに移動します。必ず最初にrebaseしてください: 'git pull --rebase'。ローカルブランチを作る: 'git checkout -b drawrandom'。編集を行います。ローカルで変更をコミットします: 'git commit -as'([git.videolan.org/?p=ffmpeg.git;a=history;f=doc/filters.texi]の例を参照してください) 。ログ 'git log -p -2'を見直して、パッチを作る:' git format-patch -o patches origin'。 ffmpegにffmpeg-develするための 'patches 'の電子メールファイル。 – LordNeckbeard

関連する問題