@baaat0000 (a aa)

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

pythonで1フレーム内に複数の字幕を入れたい

解決したいこと

以下のサイトを参考にして、pythonで動画に複数の字幕を入れたいのですが、同じ時間に1文のみしか挿入できませんでした。このコードを改変することで複数字幕を入れることはできるのでしょうか?またできない場合、同じようなことを実現できるようにするにはどうすれば良いでしょうか?

自分で試したこと

google colaboratoryを使用しました

0 likes

1Answer

このコードを改変することで複数字幕を入れることはできるのでしょうか?

できます.2文目以降の座標を適宜決めてdraw.text()すれば良いだけのことです.

参考にされたコードでは,字幕リストmessageから抽出した字幕sectionの描画にあたって,描画時間に被りがある場合

message例
message = [['section1', 0, 4],
           ['section2', 3, 7],
           ['section3', 6, 10]]

では,字幕1つずつ読み込んで表示させるようにしかなっていませんので,section1と被っている時間帯で2文目のsection2は表示されませんし,section2と時間が被っているときのsection3も表示されません.したがって,関数m_sliceの大幅改訂が必要です.

改訂案を述べておきます.

  • 字幕開始時間でmessageをソートする1
  • 字幕開始時間になった字幕があるかチェックする
    • 開始時間になった字幕は,描画すべき字幕であることを示すリストに入れる
  • 描画すべき字幕リストに入っている字幕を全て描画する
  • 字幕終了時間になった字幕がないかチェックする
    • 終了時間になった字幕は,描画すべき字幕リストから削除する

このようなアルゴリズムになると思います.

最悪,被っている時間の無いようにmessageを分けて,複数回の字幕書き込みm_sliceをする案があります.もちろん字幕が被らないように,書き込みごとに字幕座標positionを適宜変更する必要があります.

  1. なくても実装できる.有った方が実装が楽になる.

2Like

Your answer might help someone💌