私はこの質問が これはここにあります に少し関連していることを知っていますが、私はより具体的な目的を持っています。
ビデオ(複数のサウンドチャネルを備えた1080p品質)をさまざまなデバイス(iOS、Xbox 360、PS3、Mac、PC)にストリーミングしたい。そのために、多様性を備えたメディアサーバーをセットアップすることを考えました。 1080pコンテンツをリアルタイムでトランスコードできるホームサーバーハードウェアを棚から見つけるのは難しいので、次の要件を満たす形式でビデオを保存したいと思います。
デバイスの順序はおそらく重要です。ビデオはほとんどの場合Xbox、PS3、PCを使用して視聴されますが、MacやiOSはまれですが、可能です。したがって、iOSよりもXboxとPS3でトランスコードなしで視聴できることが重要です-PCとMacはトランスコードをまったく必要としないと思います(間違っている場合は修正してください)。
今日、 h.264 (aka MPEG-4パート10、AVC)。最小のファイルサイズとビットレートで非常に優れたビデオ品質を提供します。
オンラインでは、Xvidを使用してエンコードされた多くのビデオを見つけることができます。Xvidは MPEG-4パート2 コーデックです。それはかなり良いですが、同じ知覚品質のためにそれでもより大きなファイルサイズを必要とします。
コンテナ形式として、AppleおよびiOSデバイスで十分にサポートされている.mov
、および今日の最も高度なコンテナである.mkv
を選択できます(また、採用されるようになり、うまくいけばすぐに厄介な.avi
ファイルを置き換えます)。
MPEGコーデックは、いわゆる プロファイル (およびレベル)を使用します。これは、エンコードプロセスで使用できる高度なオプションを制限します。これらのオプションは、デコード時に多くのリソースを使用するというデメリットにより、ビデオ品質を向上させることができます。
たとえば、Android電話のようなデバイスは、h.264でエンコードされた「ベースライン」プロファイルのビデオのみを確実に再生しますが、自宅のPCとMacはは常に「ハイプロファイル」ビデオを再生します。通常、iOSでは、「ベースライン」を使用してビデオをエンコードする必要があります。 "プロファイル。これはここでは最も一般的でない分母であるため、ターゲットプラットフォームとしてiOSを実際に含める必要がある場合は、少し犠牲にする必要があります。
たとえば、XboxおよびPlayStation 3は、さらに「ダイジェスト」できますベースラインプロファイルより。 ここ はPlayStationのFFmpeg設定です。 ハンドブレーキ のようなアプリケーションには、すでに組み込まれているすべての種類のデバイス用の プリセット があります。PlayStationおよびXboxのプリセットを見つけることができます ここ 。
エンコーディングは必ずしも簡単ではありません。プロファイルとレベルの概念は、特定のデバイスで動画をターゲティングするのに役立ちますが、これは必ずしもそれらが再生されることを意味する必要はありません。
MPEG-4コンテナ(mp4/m4v)にAACオーディオを含むMPEG-4 AVC(akah264)は、すべてで機能するはずです。h.264で問題が発生した場合は、MPEG-4 ASP(別名XviD/DivX)も機能するはずですが、特定のビットレートでは品質はやや低くなります。
とはいえ、MacとPCにデコードを支援できるハイエンドCPUまたはGPUが搭載されていない限り、ビデオのストリーミングに苦労するでしょう。
IOSの場合も同じです-AFAIK、iPad2とiPhone4Sのみが1080pビデオをデコードできます。
複数のサウンドトラック(ステレオ対マルチチャンネルまたは言語など)または字幕に関する限り、MP4コンテナは問題ありませんが、Matroska(MKV)はその面でより強力です。人生を困難にするのが好きでない限り、AVIには近づかないでください。
エンコーダーの設定には注意が必要です。デコーダーやデバイスが異なれば、機能も異なる可能性があります。ただし、 HandBrake のようなツールは、推測作業のほとんどをプロセスから取り除きます。
最後に、さまざまなメディアサーバーを評価することをお勧めします。 PS3 Media Server (名前に関係なく、あらゆる種類のDLNAクライアントで動作します)または Serviio は、Tversityよりも便利で、高速で、互換性があります。