7

私の最終目標は、元の品質を維持しながら、h264.DTS.mkv ファイルを AppleTV と互換性のある形式に変換する単一の FFmpeg コマンドを作成することです。

私はほとんどそこにいますが、ストリーム/トラックを無効にする方法を理解できていません.

これまでのところ、私は持っています:

ffmpeg -i FILE \
 -y -strict experimental \
 -map 0:0 -map 0:1 -map 0:1 -map 0:1 -map 0:2 \
 -c:0 copy -c:1 aac -ac:a 2 -c:2 ac3 -ac:a 6 -c:3 copy -c:4 mov_text \
 OUTPUT

これにより、次のような出力ファイルが生成されます。

  1. H264 ビデオ トラック (有効) [オリジナルからコピー]
  2. AAC 2 チャンネル オーディオ トラック (有効)
  3. AC3 6 チャンネル オーディオ トラック (有効)
  4. DTS 6 チャンネル オーディオ トラック (有効) [オリジナルからコピー]
  5. 字幕トラック (有効)

問題は、次のようにする必要があることです。

  1. 1 H264 ビデオ トラック (オリジナルからコピー) (有効)
  2. 1 AAC 2 チャンネル オーディオ トラック (有効)
  3. 1 AC3 6 チャンネル オーディオ トラック(無効)
  4. 1 DTS 6 チャネル オーディオ トラック (オリジナルからコピー) (無効)
  5. 1 字幕トラック (有効)

したがって、最初以外のオーディオ ストリーム/トラックを無効にする方法を知る必要があります。

私が読んだところによると、これは "tkhd.flags" の場所にあるトラック ヘッダー アトムの一部です。しかし、コマンドライン引数を介してこれを設定する方法を理解できませんでした。

どんな助けでも大歓迎です。

4

3 に答える 3

4

こんにちは Dipesh これで問題が解決します。

問題

あなたが達成しようとしているのは、すべての望ましくないオーディオ ストリームでこのフラグを無効にしながら、どのオーディオ ストリームがデフォルトになるかを示すフラグを立てることです。この解決策は、(存在する場合) どの字幕トラックをデフォルトおよび/または強制するかを選択しようとする場合と似ています。

一般的なソリューション

FFmpeg は、ユーザーの介入なしで、すべてのストリームに自動的にフラグを立てます。defaultしたがって、最初にすべてのストリームにフラグを立ててから、必要なストリームにデフォルトとして-defaultフラグを付ける必要がありdefaultます。例として音声ストリームを使用してみましょう。

-disposition:a -default -disposition:a:0 default

上記のステートメントの結果は、すべてのオーディオ ストリーム-defaultと最初のオーディオ ストリームを にフラグ付けしdefaultます。

使用方法の詳細は、FFmpeg ドキュメント5.4 メイン オプションにあります。

具体的な解決策

ffmpeg -i FILE \
 -y -strict experimental \
 -map 0:0 -map 0:1 -map 0:1 -map 0:1 -map 0:2 \
 -c:0 copy -c:1 aac -ac:a 2 -c:2 ac3 -ac:a 6 -c:3 copy -c:4 mov_text \
 -disposition:a -default -disposition:a:0 default \
 OUTPUT

ソリューション-disposition:a -defaultでは、出力ファイル内のすべてのオーディオ ストリームにフラグを付けて、デフォルトにしないようにします。-disposition:a:0 default出力ファイルの最初のオーディオ ストリームにデフォルトのフラグを立てます。

于 2016-12-16T17:23:24.663 に答える
2

これを確認しましたか: http://ffmpeg.org/trac/ffmpeg/wiki/How%20to%20use%20-map%20option 不要なストリームを出力にコピーしないでください。

ffmpeg -i FILE \
 -y -strict experimental \
 -map 0:0 -map 0:1 -map 0:4 \
 -c:0 copy -c:1 aac -ac:a 2 -c:4 mov_text \
 OUTPUT

質問が正しく答えられたことを願っています。

于 2013-01-21T09:40:48.383 に答える