Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
0
Help us understand the problem. What is going on with this article?
@haverisxa

ffmpegを使って動画の最初にタイトルを追加する

色々と苦労したので,メモ代わりに.動画の上にタイトルの文字を入れるのではなく,動画の開始前にタイトルを数秒間表示させる方法です.

1. タイトル作成

ffmpeg -y ^
 -f lavfi -i "color=c=black:s=1280x720:r=30000/1001:d=5.0" ^
 -f lavfi -i "aevalsrc=0|0:c=stereo:s=44100:d=5.0" ^
 -vf "drawtext=fontsize=60:fontfile=C\\://Windows/Fonts/arial.ttf:fontcolor=black:fontcolor=white:textfile='title.txt':x=(w-text_w)/2:y=(h-text_h)/2" ^
  word.mp4


ffmpeg -y ^
 -i word.mp4 ^
 -vf "fade=t=in:st=0:d=2,fade=t=out:st=4:d=1" ^
 word_f.mp4

5秒間の黒い動画を作成し,その上にテキストを表示させます.表示させる文字は別途テキストファイルを用意し,textfile='title.txt'にて指定.

2番目の処理では,文字をフェードイン,フェードアウトさせています.これで0~2秒でタイトルがフェードイン→2~4秒までタイトル表示→4~5秒でタイトルが消える動画が出来ました.

2. 元の動画の前に空白を入れる

始めは上記の動画と元の動画をconcatで結合・・・としたが,エラーは出ないものの上手く結合されず.ffmpegのマニュアル等を調べていたらitsoffsetで動画に空白部分を追加出来るとの事で,これとoverlayを組み合わせる事にしました.

ffmpeg -y ^
 -itsoffset 5 -i "input.mp4" ^
 -af "adelay=5s|5s" ^
 "input_of5.mp4"

adelayについて,PC上ではitsoffsetのみで5秒間の空白/無音が追加されたのですが,別端末(Androidタブレット)では動画と音が5秒間ずれると言う,環境によって再生のされ方が違う動画が出来てしまいました.

ここで,adelayにより,明示的に5秒間の無音を入れ,この問題は解決.

3. 動画の結合

ffmpeg -y ^
 -i "input_of5.mp4" ^
 -i "word_f.mp4" ^
 -filter_complex "overlay=x=0:y=0:enable='between(t,0,5)'" ^
 -filter_complex "amix=inputs=2:duration=longest:dropout_transition=2" ^
 "out.mp4"

overlayにて2つの動画を重ね,意図した音が消えないようにamixにて2つの音も重ねます.ポイントはoverlayでの時間指定で,enable='between(t,0,5)'により,t(時間[s])が0~5秒の間だけoverlayをenable状態にする事が出来ます.

4. 終わりに

この手法,需要があまり無いのか,調べてみても,そのものの方法が出て来ませんでした.高価なツールを使えばきっと簡単に出来るし,ffmpegでやろうとする人は少ないのかも知れません.自分はかなり試行錯誤を繰り返したので,この記事がffmpegユーザーに役立てば幸いです.

0
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
haverisxa
ゲーム作りなどの創作活動を主にやっています.Rubyを使ってCUIツールを便利に使う事や,RPGツクールなどに役立てる事を良く考えています.

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
0
Help us understand the problem. What is going on with this article?