web-dev-qa-db-ja.com

ffmpegでh.264プロファイルレベルを設定するにはどうすればよいですか?

Mac(m4v/h.264/AAC)で正常に再生される映画を持っていますが、Apple TV3では再生されないことが最近わかりました。このムービーファイルのプロパティを調べたところ、High @ 4.1というプロファイルがありますが、Apple TV3は[email protected]までしかサポートしていません。このビデオを互換性がない唯一のプロパティは最大ビデオビットレートであると思います。他のすべてのプロパティは[email protected]でサポートされているように見えます。

Ffmpegを使用してこのビデオを[email protected]にダウングレードするにはどうすればよいですか?

または、このビデオを4.0ではなく4.1にする実際のプロパティ(最大ビットレート)を変更する必要がありますか?ビットレートを変更しただけでは、ファイルは[email protected]と互換性がありますが、High @ 4.1としてタグ付けされているため、Appleで再生できないのではないかと心配です。 TV3。

16
Sam

libx264でエンコードする場合、H.264プロファイルとレベルを次のように設定できます。

  • -profile:vhighmain、またはbaselineのいずれか(およびその他、ただしここでは関係ありません)
  • -level:v – H.264規格のAnnex Aで定義されているとおり(4.0など)。

例えば:

ffmpeg -i input.mp4 -c:v libx264 -profile:v high -level:v 4.0 -c:a copy output.mp4

影響を受けないため、ここではオーディオストリームをコピーしました。

出力のメタデータには、正しいプロファイルとレベルが設定されています。エンコード中にこれを確認できます。ここで、x264は次のように言っています。

[libx264 @ 0x7fb26103a000] profile High, level 4.0

MediaInfo は、コンテナとコーデックの詳細の分析にも役立ちます。

もちろん、損失のある変換を再度適用する場合、ビデオを再エンコードするとある程度品質が低下します。 -crfオプションを設定して、定数品質パラメーターに影響を与えてみてください。ここでのデフォルト値は23ですが、18から28までの値は正常と見なされます。低いほど品質が良いことを意味します。入力のビットレートが最大65,000 kBit/sである場合、変換後もかなり良好に表示される可能性があります。

24
slhck

コメント を参照して、次のコマンドを試してください:

ffmpeg -i input.mp4 -map 1 -c:v libx264 -profile:v high -level:v 4.0 -c:a copy \
# copies all global metadata from input.mp4 to output.mp4
-map_metadata 0 \
# copies video stream metadata from input.mp4 to output.mp4
-map_metadata:s:v 0:s:v \
# copies audio stream metadata from input.mp4 to output.mp4
-map_metadata:s:a 0:s:a \
output.mp4

乾杯

1
Riccardo Volpe

私は別の方法で(つまり、異なる入力形式で)読み取りましたが、x265からx264に再エンコードするときに "-movflags use_metadata_flag"を使用しましたが、うまくいきました!

0
hillbllie