Ubuntu Weekly Recipe

第633回字幕ファイルを作成し、動画に焼き込む

動画編集については本連載でも、YouTuberを目指す記事でShotcutを、他にもKdenlivePiTiViなどを取り上げてきました。

今回は、YouTubeへのアップロードにも対応した字幕ファイルを作成し図1⁠、さらに字幕表示に対応していない環境のために、字幕を画像として映像内に合成する作業の様子を紹介します。

図1 作成した字幕がYouTube上で表示されている様子
画像

動画ファイルの準備

まずは事前に動画ファイルを作成しておきます。筆者の場合は、渡された動画データ(英語音声)から短縮版を作成し、その後に字幕をつける、という工程を踏む必要がありました。そのため、操作に慣れているKdenliveを使い、クロスフェード等の効果を用いて場面を切り貼りした短縮版動画ファイルを作成しました図2⁠。Kdenliveの操作については過去にも紹介されているため割愛します。

図2 元の動画ファイルを切り貼りして短縮版を作成している様子
画像

字幕ファイルの作成

動画ファイルが用意できたら、いよいよ字幕をつける作業に入っていきます。今回はUbuntu上で作業を行いますが、最終的なアップロード先がYouTubeの場合には、YouTube Studioを使ってWebブラウザ上で字幕を作成することもできます。ブラウザではなくローカルで作業をする利点としては、若干のレスポンスの良さ、そして後述のショートカットキーを自分好みに設定することによる作業効率の良さが挙げられます。

字幕作成に対応したソフトウェアはいくつかありますが、今回は⁠subtitleeditor⁠を使って説明していきます。このソフトウェアは、音声の波形を見ながら字幕の編集ができるため、セリフの話し始めや終わりのタイミングと字幕とを合わせやすくなっています。

“subtitleeditor⁠パッケージをインストールして起動したら、まずは新規プロジェクトを作成します。⁠File⁠⁠→⁠New」をクリックし、デフォルトの保存形式であるSubRipファイル(.srt)を開きます。

次に、⁠Video⁠⁠→⁠Open」をクリックし、字幕をつけたい動画ファイルを選択します。そして、⁠Waveform⁠⁠→⁠Generate Waveform from Video」をクリックし、動画内の音声データから波形を生成します。

続いて、⁠Edit⁠⁠→⁠Insert After」をクリックするかキーボードのInsertキーを押すと、図3のように実際に字幕を入力するモードになります。字幕の表示タイミングは音声波形上で、左クリックをすると開始位置を、右クリックで終了位置を指定できます。中クリックでは、再生位置の頭出しができます。

図3 subtitleeditorで字幕を入力しているところ
画像

このように地道な字幕入れ作業を続けていくと、⁠Edit」「Timings」メニューから操作を繰り返し選んでいく反復作業であることに気づきます。このソフトウェアのいいところは、すべての操作に好きなようにショートカットキーを設定できるところです。⁠Options⁠⁠→⁠Configure Keyboard Shortcuts」から、筆者の場合よく使う操作を次のように設定しました。

操作名 説明 割り当てキー
Play / Pause 再生 / 停止 .
Play Selection 選択された字幕部分のみを再生 Ctrl+.
Play Next Subtitle 次の字幕を選択して再生 Ctrl+N
Play Previous Subtitle 一つ前の字幕を選択して再生 Ctrl+P
⏩ Tiny ほんの少しだけ早送り(0.5秒) Ctrl+F
⏪ Tiny ほんの少しだけ巻き戻し(0.5秒) Ctrl+B
Insert After 字幕を次の位置に挿入 Insert(デフォルト)
Move Subtitles 選択された字幕以降を一括で移動 Ctrl+M(デフォルト)
Split 複数行の字幕を分割 S

字幕ファイルを使う

保存したSubRipファイル(.srt)をテキストエディタで開いてみるとわかりますが、次のようにシンプルなテキストファイルです。

1
00:00:09,742 --> 00:00:11,157
最初の字幕

2
00:00:11,257 --> 00:00:12,983
次の字幕

3
...

実際に字幕を表示してもらうにはこの形式を解釈できる環境が必要です。例えば、YouTubeの場合には、SubRipファイルがサポートされる字幕ファイルに含まれているので、動画をアップロードした後に追加で字幕ファイルをアップロードできます。

Ubuntu上で再生する場合は、デフォルトの動画再生アプリであるTotemを例にとると、画面右上にあるメニューから「字幕」を選択して、表示する字幕ファイルを指定できます図4⁠。

図4 動画ファイルを開き、字幕ファイルを追加で読み込み
画像

ただし、この方法だと動画を開くたびに手動での操作が必要になり、さらに他の人に見てもらう場合には2つのファイルを対で共有する必要があります。これに対する緩和策として、動画と字幕を1つのファイルに統合してしまう、という方法があります。⁠mkvtoolnix⁠パッケージに含まれている⁠mkvmerge⁠というコマンドを使えば、動画を再エンコードする必要なしに、元の動画と字幕を一つのMKVファイルに含めた形で出力してくれます。

$ mkvmerge -o /PATH/TO/OUTPUT.mkv MOVIE.mp4 SUBTITLES.srt

字幕を動画に焼き込む

MKVファイルなどに字幕データを入れておくと、再生時に字幕をオンオフできたり、複数言語の字幕を用意して切り替えできたりと便利です。しかし、受け取り手が字幕の表示に対応しているのか定かではない場合や、対応していても実際どのような大きさで表示されるのか予想できない場合もあります。そういった時には、字幕の文字を画像に変換して映像の中に焼き込んでしまうのも手です[1]⁠。デメリットとしては、動画を再エンコードする必要があるためやや時間がかかり、画質の劣化が感じられる場合があるかもしれません。

このような変換をサポートするソフトウェアをいくつか試しましたが、できあがりのイメージが確認しやすく、フォント指定やサイズ、スタイルの指定がしやすかったためVLCを使いました。

VLCで動画ファイルと字幕ファイルを読み込んだら、⁠ツール⁠⁠→⁠設定」を開き、⁠字幕/OSD」の項目で、使用するフォントやサイズ、字幕の背景色などを指定します図5⁠。文字や背景色の透明度といったより詳細な設定は、⁠設定の表示」「すべて」に変更し、⁠ビデオ⁠⁠→⁠字幕⁠⁠→⁠文字レンダリング」の項目で可能です。何度か再生を繰り返し、納得のいく設定を見出したらいよいよ動画の変換作業に入ります。

図5 VLCでの字幕の表示設定
画像

メニューから「メディア⁠⁠→⁠変換/保存」を選択し、入力として使用する動画ファイルと字幕ファイル(.srt)を指定します。次に、出力プロファイルを編集し、使用するカプセル(コンテナ)フォーマットとビデオコーデックを指定します。ここまでは、通常の動画変換と変わらないのですが、音声は変換する必要がないため、⁠オーディオコーデック」の項目では「オリジナルのオーディオトラックを保持」にチェックを入れます。最後に、⁠字幕」の項目で「ビデオに字幕をオーバーレイする」にチェックを入れて字幕が焼き込まれるようにします図6⁠。

図6 映像に字幕を焼き込むために「オーバーレイする」にチェックを入れる
画像

変換が完了すると、字幕と映像とが一体化されたファイルの完成です。あとはアップロードしたり個別に共有したりすれば、相手の環境を問わず必ず字幕を見てもらえます。

おすすめ記事

記事・ニュース一覧