質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

FFmpeg

FFmpegは、動画と音声を交換できるフリーソフトウェアです。UNIX系OSから派生した、MS-DOSから操作するコマンドラインツールです。libavcodecやlibavformat、libswscale、libavfilterなどを含みます。ライセンスは、コンパイルの際のオプションによりLGPLもしくはGPLに決定されます。対応コーデックや使用できるオプションが多く、幅広く利用されています。

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

Q&A

解決済

2回答

3071閲覧

[python]moviepyで動画ファイルに字幕をつけるときにフォントサイズを指定したい

kuri

総合スコア3

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

FFmpeg

FFmpegは、動画と音声を交換できるフリーソフトウェアです。UNIX系OSから派生した、MS-DOSから操作するコマンドラインツールです。libavcodecやlibavformat、libswscale、libavfilterなどを含みます。ライセンスは、コンパイルの際のオプションによりLGPLもしくはGPLに決定されます。対応コーデックや使用できるオプションが多く、幅広く利用されています。

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

0グッド

0クリップ

投稿2023/03/14 05:50

実現したいこと

pythonのmoviepyライブラリでAVIファイルにsrt形式の字幕ファイルを適用しています。

やったこと

python

1 # AVI動画ファイルを読み込む 2 video = VideoFileClip('input.avi') 3 # srtファイルを読み込む 4 subs = SubtitlesClip('input.srt') 5 # 字幕を動画に埋め込む 6 subs = subs.set_position(('center', 50)) 7 # 動画に字幕を重ねる 8 video_with_subtitles = CompositeVideoClip([video, subs]) 9 # 動画をリサイズする 10 video_with_subtitles = video_with_subtitles.resize(height=video.h) 11 # 動画を上下中央に配置する 12 video_with_subtitles = video_with_subtitles.set_position(('center', 'center')) 13 14 # mp4ファイルとして保存する 15 video_with_subtitles.write_videofile('output.mp4')

上記コードだとフォントサイズが小さすぎて見えないので4行目を以下に変更しました。
subs = SubtitlesClip(srt, fontsize=24)
ですが、SubtitlesClipクラスにfontsize引数なんてないとエラーが出てしまします。
以下の公式ドキュメントを参考にしているのですが、なにかおかしいところはありますでしょうか。
よろしくお願いします。
https://zulko.github.io/moviepy/_modules/moviepy/video/tools/subtitles.html

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

動作未検証ですがSource code for moviepy.video.tools.subtitlesおよび
Adding subtitles to a movie using moviepyの回答

generator = lambda txt: TextClip(txt, font='Arial', fontsize=24, color='white')
subs = SubtitlesClip('subtitles.srt', generator)
subtitles = SubtitlesClip(subs, generator)

によるとmake_textclipTextClipに変換する関数(上記でのgenerator)を渡すとよいようです。

投稿2023/03/14 06:03

can110

総合スコア38339

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

公式のドキュメントを見ると、こんな感じではないですかね。
https://zulko.github.io/moviepy/ref/videotools.html#moviepy.video.tools.subtitles.SubtitlesClip

python

1generator = lambda txt: TextClip(txt, font='Georgia-Regular', fontsize=24, color='white') 2sub = SubtitlesClip("subtitles.srt", generator)

投稿2023/03/14 05:58

TakaiY

総合スコア13687

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kuri

2023/03/14 07:17

ご回答ありがとうございます。 エラーはなくなったのですが、今度は文字が判読不能なほど見切れてしまったので中央部に字幕を移動してみたのですが、見切れ具合は変わらず、解像度周りかなと原因調査中です。 1280*720の動画なのですが、この辺ご存知だったりしませんでしょうか。
TakaiY

2023/03/14 07:21

日本語入れてたりしますか? こういうツールって表示幅を文字数で計算していることが多いのですが、多バイト文字を考慮した作りになってなかったりするとだめです。 アルファベットのみにしてみるとどうなりますかね。
kuri

2023/03/24 11:36

遅くなってすみません、フォントの問題だったようでゴシック体にしたらできました!ありがとうございます。 generator = lambda txt: TextClip(txt, font='Gosic-Regular', fontsize=24, color='white')
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問