ビデオにビデオ時間を重ねたり、ビデオに画像を組み合わせたりする

ビデオにビデオ時間を重ねたり、ビデオに画像を組み合わせたりする

非常に長いビデオがあり、それをビデオ時間(実際には 0:00:00 からビデオの長さまでカウントアップする時計)にオーバーレイしたいと考えています。

このタスクを実行するツールが見つからないので、Javaプログラム1 秒ごとに 1 つずつ、透明な png 画像を何千枚も作成します。OpenShot (私のお気に入りのビデオ エディター) は、フォルダー内の特定の命名規則に一致するすべての画像を取得し、各画像が表示されるフレーム数を制御しながらビデオとしてインポートできます。これは完璧に聞こえますが、最初の 1000 枚の画像でテストしたところ、500 番目のフレームでフリーズしてしまいました。つまり、00:08:19 までカウントアップした後、00:08:20 までカウントアップしないのです。

画像をビデオに結合する他の方法をいくつか試しましたが (例: avconv)、うまくいきませんでした。ちなみに、Ubuntu が私のメイン OS ですが、必要に応じて Windows と Mac も使用できます。

10,000 枚以上の画像を 1 つのビデオに結合するにはどうすればよいですか? あるいは、0:00:00 からビデオの長さまでカウントするタイマーをビデオにオーバーレイするより直接的な方法はありますか?

答え1

ffmpeg次のようにします:

ffmpeg -i input.mp4 -vf "drawtext=fontfile=/path/to/font.ttf:fontcolor=white:fontsize=30:box=1:[email protected]:x=(W-tw)/2:y=H-th-20:timecode='00:00:00':rate=25,format=yuv420p" -crf 23 -c:a copy -map 0 output.mp4

上記のコードには特殊文字が含まれているため、シェルの要件に従ってエスケープする必要があります。

r=25をビデオフレームレートの値に変更します。50 [email protected]%不透明です。ドキュメント詳細とオプションについては、こちらを参照してください。品質とサイズのトレードオフのために CRF 値を変更します。値が低いほど品質が高くなります。

関連情報