VLCで字幕を動画に埋め込むときのエラーを回避する方法
今回は少し変わったチュートリアルです。まずは背景からお話ししましょう。最近、主人公リシタスの狂気じみた笑いで有名な「Risitas y las paelleras」というコントをもとに、パロディクリップをいくつか作成しました。いつものようにYouTubeへアップロードしたのですが、使用する字幕を決めてから動画が実際に公開されるまで、長く曲折に満ちた道のりとなりました。
このガイドでは、自作メディアを作成する際によく遭遇する問題、特に字幕の処理と、その後のメディア共有ポータル(具体的にはYouTube)へのアップロードに関する典型的なトラブルと、その回避方法をご紹介します。それでは始めましょう。
背景となる話
私が動画編集に使っているソフトウェアはKdenliveです。とんでもなくバカバカしい「フランケンシュタイン」クリップを作ったときに使い始めて以来、ずっと頼れる相棒となっています。通常はWebMコンテナ(VP8ビデオコーデック+Vorbisオーディオコーデック)でレンダリングしています。Googleが好む形式だからです。実際、過去7年ほどでアップロードした約40本のクリップでは何の問題もありませんでした。
しかし、「Risitas & Linux」プロジェクトを完成させたとき、少し困った状況に陥りました。動画ファイルと字幕ファイルがまだ別々の存在であり、なんとかして両者を一つにまとめる必要があったのです。以前の字幕作業に関する記事ではAvidemuxとHandbrakeに言及しましたが、どちらも有効な選択肢です。
ただ、どちらの出力結果にもあまり満足できませんでした。理由はさまざまですが、どこか微妙におかしいのです。Avidemuxはビデオコーデックの扱いがうまくいかず、Handbrakeは最終成果物から数行の字幕テキストが抜け落ち、フォントも美しくありませんでした。解決可能ですが、今日のテーマではありません。
そこで、VideoLAN(VLC)を使って動画に字幕を埋め込むことにしました。方法はいくつかあります。「メディア > 変換/保存」でもできますが、必要な機能がすべて揃っているわけではありません。代わりに「メディア > ストリーム」を使用してください。こちらの方がより充実したウィザードが備わっており、トランスコード設定の編集可能なサマリーも表示されます。これこそが必要なものです。詳細については、私の字幕チュートリアルを参照してください。
エラーたち
字幕の埋め込みは決して簡単な作業ではありません。途中でおそらく複数の問題に遭遇することでしょう。このガイドがそれらの回避に役立ち、変なソフトウェアエラーのデバッグに時間を浪費せず、本来の作業に集中できることを願っています。というわけで、VLCで字幕を扱う際に直面しがちな問題を集めてみました。試行錯誤の産物でありながら、少しマニアックな設計でもあります。
再生可能なストリームがない
おそらく奇妙な出力設定を選んでしまったのでしょう。正しいビデオ・オーディオコーデックを選択しているか再確認してください。また、一部のメディアプレーヤーはすべてのコーデックを持っていない場合がある点にも注意が必要です。さらに、クリップを再生させたいシステム上で必ずテストしてください。
字幕が二重に表示される
これは、ストリーミングメディアウィザードの最初のステップで「字幕ファイルを使用する」チェックボックスにチェックを入れた場合に起こりえます。必要なファイルを選んで「ストリーム」をクリックするだけで、チェックボックスは空のままにしておきましょう。
字幕が出力されない
主に2つの原因が考えられます。1つ目は、間違ったカプセル化(コンテナ)形式を選択しているケースです。プロファイル編集ページで字幕が正しくマークされていることを確認してから進んでください。形式が字幕に対応していない場合、動作しない可能性があります。
2つ目は、最終出力で字幕コーデックのレンダリング(scodec)が有効になったままになっているケースです。これは不要です。必要なのは字幕を映像に重ねることだけです。「ストリーム」ボタンをクリックする前に、生成されたストリーム出力文字列を確認し、「scodec=
コーデックの欠落と回避策
これは実験的なコーデックの実装方法に起因する一般的なバグで、次のプロファイルを選んだ場合にほぼ確実に見られます:「ビデオ - H.264 + AAC(MP4)」。ファイルはレンダリングされ、字幕を選んでいれば重ね表示もされますが、音声がまったく入らないのです。しかし、ハックで修正できます。
1つのハックは、--sout-ffmpeg-strict=-2 オプション付きでVLCをコマンドラインから起動することです(動作するかもしれません)。もう1つのより確実な回避策は、字幕は埋め込まれているが音声がない動画を、Kdenliveで元のプロジェクトの字幕なしレンダリングを音声ソースとして再レンダリングすることです。複雑に聞こえるので、詳しく説明します:
- 既存のクリップ(音声入り)をビデオトラックからオーディオトラックへ移動します。残りは削除します。
- あるいは、レンダリング済みのWebMファイルを音声ソースとして使用します。
- 新しいクリップ(字幕が埋め込まれ、音声なしのもの)を追加します。
- そのクリップを新しいビデオとして配置します。
- 再度WebMとしてレンダリングします。
他の種類のオーディオコーデック(例:MP3)を使えば、おそらく問題なく動作し、映像・音声・字幕が揃った完全なプロジェクトになります。欠けているものがないと確認できたら、YouTubeへアップロードできます。しかしその後…
YouTube動画マネージャーと不明な形式
WebM以外のクリップ(たとえばMP4)をアップロードしようとすると、「クリップがメディア形式の要件を満たしていません」という不明瞭なエラーが出ることがあります。VLCがなぜYouTube非対応のファイルを生成したのかは分かりませんでした。しかし、ここでも修正は簡単です。Kdenliveで動画を作り直せば、YouTubeが好む適切なメタデータなどをすべて備えたファイルが得られます。冒頭の話に戻ると、Kdenliveでこの方法で作成した40本あまりのクリップがあるわけです。
P.S. クリップに正常な音声が含まれているなら、単にKdenliveで再処理すればOKです。含まれていない場合は、前述の映像/音声のトリックを使います。必要に応じてクリップをミュートしてください。結局のところ、あるクリップの映像ソースと別のクリップの音声を使って最終レンダリングを行う点で、オーバーレイと同じようなものです。これで完了です。
さらなる読み物
同じことを繰り返したり、不必要にリンクを並べたりしたくありません。Software & SecurityセクションにはVLCに関する記事がたくさんあるので、参照してみてください。先に触れた「VLCと字幕」の記事には、ストリーミング、ログ記録、動画の回転、リモートファイルアクセスなど、関連するトピックを扱った半ダースほどのチュートリアルへのリンクがあります。検索エンジンの使い方は皆さんプロでしょうから。
まとめ
このガイドが役に立つことを願っています。内容は多岐にわたりますが、できるだけ直線的でシンプルにし、VLCで字幕作業に挑むストリーマーや字幕愛好家が直面しうる落とし穴に、できる限り対応するよう心がけました。要はコンテナとコーデックの問題であり、メディアの世界には実質的に標準が存在しないという事実もあります。ある形式から別の形式へ移行するとき、時には特殊なケースに遭遇することがあります。
もし1つや2つのエラーに遭遇しても、ここで紹介したヒントとテクニックが少なくともいくつかは解決に役立つはずです。再生できないストリーム、欠落または重複する字幕、欠落しているコーデック、悪名高いKdenliveの回避策、YouTubeアップロードエラー、隠れたVLCのコマンドラインオプションなど、その他いろいろ。1本の記事としてはかなりの分量ですが、幸いすべて有益な情報です。それでは、インターネットの子どもたちよ、ごきげんよう。今後のVLC記事で取り上げてほしいテーマがあれば、遠慮なくメールでお知らせください。
それでは、また。
-
Firefox 91以降でProton UIを元に戻す方法!userChrome.cssによる見た目の復元ガイド
Firefox 91がリリースされました。このバージョンアップが何を意味するのかご存じでしょうか。実は、Firefox 91からはabout:config経由でProtonインターフェースを無効化できなくなったのです。なぜこれが大きな問題なのか?答えはシンプルで、ProtonのUIが非常に使いにくいからです。 少し振り返ってみましょう。Mozillaはこれまで何度もFirefoxのUI変更を行ってきましたが、今回正式採用されたのが「Proton」と呼ばれるデザインです。その見た目が決して優れているとは言えないことは、以前ご覧いただいた通りです。Firefox 89でProtonが標準になった当
-
Firefox 75以降のアドレスバー拡大表示を元に戻す方法|userChrome.cssカスタマイズガイド
Firefox 75では、多くのデスクトップユーザーを困惑させる変更が加えられました。アドレスバー(URLバー)をクリックすると、まるでスマートフォンのように画面が「ズームイン」して拡大され、周囲のUIやピン留めしていたショートカットが隠れてしまうのです。この挙動はモバイル向けのデザインであり、デスクトップ環境にはまったく馴染みません。一時期は、about:configの設定をいくつか変更することで、この仕様を無効化できました。ところが、Firefox 77(Nightly版)ではこれらの設定項目そのものが削除されてしまいました。そこで本記事では、userChrome.cssを活用して、旧来の