web-dev-qa-db-ja.com

tx3gのffmpegサポート

Ffmpegを使用してMP4コントラナーに字幕を埋め込もうとしています。

次のコマンドを使用しています。

ffmpeg -i input.MOV -i input.srt -map 0 -map 1 -c copy -c:s mov_text output.MOV

ビデオストリーマー(Wowza)との互換性のために、字幕をテキストではなくtx3gとしてエンコードしたいと思います。

字幕エンコーダーを変更するにする方法はありますか?

ありがとう!

3
Yuval Cohen

FourCC tx3gが実際に何を表しているのかわからなかったことを認めなければなりません。 FFmpegコーデックmov_texttx3gは同じものです: MPEG-4 Part 17 (時限テキスト)。

FFmpegがサポートしていないのは、埋め込むテキストのカスタムスタイルだけです。ソースコードを見ると、それらが デフォルトのスタイルを適用する :であることがわかります。

今のところ、固定のデフォルトスタイルを使用します。スタイリングサポートを追加すると、これはASSスタイルから生成されます。

そうは言っても、無料のクロスプラットフォーム MP4Box は、要求に応じて、これらの字幕をMP4ファイルに追加できるはずです。スタイリングでも。それらをファイルに追加する方法は、そもそもそれらがどのようにエンコードされているかによって異なります。 そのドキュメントから

テキストストリームの公式のテキスト表現はありません。さらに、仕様はほとんどの構造記述についてIsoMediaの知識に依存しています。テキストストリームのオーサリングを支援するために、時間指定テキストのTTXTと呼ばれるXML形式がGPACで開発されました。使用される拡張子は.ttxtです。

TTXTファイルを作成するには、次のようにします。

SRTまたはSUB字幕ファイルを見つけて、MP4Box -ttxt file.srtを実行します。これにより、字幕がTTXT形式に変換されます。

MP4Boxは、次のように既存のMP4ファイルに字幕ストリームを追加できるはずです。

MP4Box -add input.mp4 -add subtitles.ttxt output.mp4

事前に字幕ファイルをTTXTに変換することが重要です。それらがまだSUBまたはSRTでエンコードされている場合、MP4Boxはデフォルトオプションでそれらを単純にレイアウトします。

SRTまたはSUBファイルをインポートする場合、MP4Boxはデフォルトのレイアウトオプションを選択して、字幕がビデオの下部に表示されるようにします。

4
slhck

MacOSおよびiOS互換の字幕をMP4ビデオに埋め込む純粋なffmpegメソッドは次のとおりです。

ffmpeg -i input.MOV -i input.srt -c copy -c:s mov_text -tag:s:s:0 tx3g output.mov

-tag:s:s:0 tx3gトリックを行います。

2
avibrazil