Leitfaden für iOS/Mobile Encoding

In diesem Thema werden Ansätze zur Kodierung von Videos für mobile Geräte behandelt.

Überblick

Die schlechten Nachrichten zuerst. Es gibt Hunderte von Mobilgeräten, von denen 100,0% grundsätzlich nicht unterstützt werden können.

Die gute Nachricht ist, dass mobile Geräte immer besser werden. Vorbei sind die Zeiten, in denen 176x144 3GP ein Synonym für mobiles Video war. Moderne Smartphones können tatsächlich qualitativ hochwertige Videos abspielen, und die Nutzung von Smartphones nimmt zu. Das heißt nicht, dass 3GP vorbei ist oder dass jeder ein Smartphone hat. Aber die Smartphone-Nutzung nimmt zu (bei einem 64 % annualisierte Rate (Stand: Q2 2010), und es überrascht nicht, dass Smartphone-Benutzer eher Videos auf ihren Telefonen ansehen als ihre, äh, dummen Telefone benutzenden Freunde.

Wenn Sie also mehr als 90% der Mobilgeräte unterstützen möchten, benötigen Sie mindestens zwei Videotypen: 3GP + MPEG-4 für weniger anspruchsvolle Geräte und H.264 + MP4 für Smartphones.

Das sind wirklich gute Nachrichten. Ein Ausgabevideo kann alle Benutzer Ihres Smartphones abdecken - iPhone / iPad / iPod, Android und (größtenteils) auch Blackberry. Werfen Sie PSP, PS3 und Xbox 360 ein.

Während ein universeller Smartphone-Ausgang die meisten Smartphone-Benutzer bedienen kann, können Sie mit mehreren mobilen Ausgängen natürlich bessere Ergebnisse erzielen. Zum Beispiel hat das iPad eine native Auflösung von 1024 x 768, fünfmal höher als das 480 x 320 auf früheren iPhones. Wenn Sie Ihr Video also mit einer Auflösung von 480 x 320 codieren, werden Sie die nahezu hochauflösenden Funktionen des iPad verpassen.

Glücklicherweise können Sie mobile Geräte mit einer Handvoll Standardcodierungsprofilen gut ansprechen. Beginnen Sie mit dem universellen Smartphone-Profil, um eine umfassende Kompatibilität zu gewährleisten. Fügen Sie eine erweiterte Smartphone-Profilversion für die fortgeschritteneren Geräte hinzu. und runden Sie Ihre mobile Liste mit einem Legacy-Profil ab, um die größtmögliche Kompatibilität zu gewährleisten - entweder mit unserem Legacy-Smartphone-Profil (unten) oder sogar mit einem 3GP-Video für eine noch umfassendere Kompatibilität.

Beachten Sie, dass die folgenden Standardeinstellungen der Ausgangspunkt für diese Profile sind. Zencoder Verwendet diese Einstellungen standardmäßig, aber Sie können sie problemlos mit dem von Ihnen verwendeten Codierungswerkzeug replizieren.

Standardeinstellungen:

Video: H.264, Stufe 3.0, Grundlinienprofil
Audio: AAC, 1-2 Kanäle

Universelles Smartphone-Profil

Dies ist ein großartiges Startprofil für eine breite Kompatibilität mit modernen Smartphones. Spielt fast alles ab, nutzt jedoch nicht die höheren Auflösungen und die Codec-Komplexität, die auf den neuesten Geräten möglich sind.

Spielt weiter:

iOS: iPhone, iPad, Apple TV, iPod Touch, iPod Classic, iPod 5.5G
Brombeere: Fett 9000, Kurve 8910, 8900, 8520, Perle 9XXX, Sturm, Sturm 2, Fackel, Tour, Fett 9650 + 9700
Android: Alle (?)
Andere: PSP (3,30+), PS3, Xbox 360, Netz, PalmVor*

Spielt nicht weiter:

iPod 5G, PSP (vor 3.30 Uhr), Blackberry Curve 9330, 9300, 8530, 83XX, Pearl 8XXX, 88XX

Die Einstellungen:

{
    "input": "s3://bucket-name/file-name.avi",
    "outputs": [
        {
            "url": "s3://output-bucket/output-file-name.mp4",
            "audio_bitrate": 128,
            "audio_sample_rate": 44100,
            "height": 320,
            "width": 480,
            "max_frame_rate": 30,
            "video_bitrate": 1500,
            "h264_level": 3
        }
    ]
}

Universelles Smartphone-Profil v2

Dieses Profil wird auf iPhone 4, iPad, Apple TV, neuem iPod Touch, Droid, PS3 und Xbox besser abgespielt, indem die Videoauflösung erhöht wird. Die zusätzlichen Pixel werden jedoch auf älteren iPhones verschwendet und sorgen für ein Video, das auf Blackberry und einigen Android-Handys nicht abgespielt werden kann.

Spielt weiter:

Alles oben, abzüglich Blackberry und vielleicht schwächerer Android-Geräte

Die Einstellungen:

Wie das universelle Smartphone-Profil (oben), jedoch mit einer Größe von 640 x 480

{
    "input": "s3://bucket-name/file-name.avi",
    "outputs": [
        {
            "url": "s3://output-bucket/output-file-name.mp4",
            "audio_bitrate": 128,
            "audio_sample_rate": 44100,
            "height": 480,
            "width": 640,
            "max_frame_rate": 30,
            "video_bitrate": 1500,
            "h264_level": 3
        }
    ]
}

Erweitertes Smartphone-Profil

Neuere iOS-Geräte ermöglichen höhere Auflösungen und eine höhere Komplexität der Codierung (was eine bessere Komprimierung bedeutet). Insbesondere sollten iPad- und Apple TV-Benutzer keine 480 x 320-Videos auf ihren schönen Bildschirmen ansehen müssen. Daher ist es sinnvoll, eine Version mit höherer Qualität bereitzustellen, wenn Sie diesen Benutzern eine gute Erfahrung bieten möchten.

Spielt weiter:

iOS: iPhone 4, iPad, Apple TV *, neuer iPod Touch
Android: Nexus One, Droid, vielleicht andere. (YMMV auf diesen jedoch. Einige Benutzer melden Probleme mit 720p-Videos.)
Andere: PS3, Web

Spielt nicht weiter:

iOS: iPod 5G / 5.5G / Classic, iPhone 3GS und früher, ältere iPod Touch PSP, altes Apple TV *
Brombeere: alle
Android: Andere
Andere: PSP, PS3, Xbox 360, Web

Die Einstellungen:

Beachten Sie, dass dies die maximale Größe ist. Stellen Sie für die native iPhone 4-Auflösung die Größe auf 960 x 640 ein

{
    "input": "s3://bucket-name/file-name.avi",
    "outputs": [
    {
        "url": "s3://output-bucket/output-file-name.mp4",
        "audio_bitrate": 160,
        "audio_sample_rate": 48000,
        "height": 720,
        "width": 1280,
        "max_frame_rate": 30,
        "video_bitrate": 5000,
        "h264_profile": "main",
        "h264_level": 3.1
    }
    ]
}

Erweitertes Smartphone-Profil v2

Verwenden Sie zur Unterstützung älterer Apple TV-Geräte die Einstellung Erweitertes Smartphone-Profil sowie eine der folgenden Einstellungen:

Die Einstellungen:

Erweitertes Smartphone-Profil (oben) sowie eines der folgenden Profile:

size: 960x540

ODER

max_frame_rate: 24

Legacy-Smartphone-Profil

Dieses Profil wird auf dem letzten großen Satz von H.264-basierten Mobilgeräten abgespielt: insbesondere auf älteren iPods und einigen Brombeeren. Der Kompromiss ist deutlich kleiner Video: 320 x 240, nicht mehr als 768 kbit / s.

Ältere iPhone / iPod-Geräte fragen nach dem Profil "H.264 Baseline Low Complexity". "Geringe Komplexität" ist eigentlich kein H.264-Standard - es bedeutet eigentlich nur "nur 1 Referenzrahmen". Die Jury ist sich nicht sicher, inwieweit Apple-Geräte dies wirklich durchsetzen. Aus Gründen der Kompatibilität sollten Sie jedoch wahrscheinlich das Baseline-Profil verwenden und die Referenzrahmen auf 1 beschränken. Sie können dies mit dem tun h264_reference_frames Rahmen.

Spielt weiter:

Alles oben plus: iPod 5G, PSP (vor 3.30), Blackberry Curve 9330, 9300, 8530, 83XX, Pearl 8XXX, 88XX, PalmPre

Die Einstellungen:

{
    "input": "s3://bucket-name/file-name.avi",
    "outputs": [
    {
        "url": "s3://output-bucket/output-file-name.mp4",
        "audio_bitrate": 128,
        "audio_sample_rate": 44100,
        "height": 240,
        "width": 320,
        "max_frame_rate": 30,
        "video_bitrate": 768,
        "h264_level": 1.3
    }
    ]
}

Legacy 3GP-Profile

Schließlich wird ein oder zwei 3GP-Profile die Unterstützung auf viele verbleibende mobile Geräte ausweiten.

Insbesondere können Sie diese auf den meisten der oben im Legacy-Smartphone-Profil unterstützten Geräte verwenden. Wenn Sie also ein 3GP-Video mit 320 x 240 codieren, müssen Sie möglicherweise kein weiteres H.264-Video mit 320 x 240 codieren.

Hinweis

  • Diese Videos werden schrecklich aussehen, aber das sind die Kosten für die Unterstützung von 3GP-Telefonen.
  • Um 3GP-Video als RTMP-Stream zu liefern, muss es "angedeutet" werden. Satz Hinweis zu true in Ihrer API-Anfrage, um sie zu aktivieren.

Spielt weiter:

Schwer zu sagen. Es gibt Tausende von Arten von 3GP-Geräten, und jedes ist etwas anders. Betrachten Sie diese als Ausgangspunkt.

Profil A.

{
    "input": "s3://bucket-name/file-name.avi",
    "outputs": [
    {
        "url": "s3://output-bucket/output-file-name.mp4",
        "format": "3gp",
        "aspect_mode": "pad",
        "frame_rate": 15,
        "upscale": true,
        "height": 240,
        "width": 320,
        "video_bitrate": 192,
        "decoder_bitrate_cap": 192,
        "audio_bitrate": 24,
        "audio_channels": 1,
        "audio_sample_rate": 16000
    }
    ]
}

Profil B.

{
    "input": "s3://bucket-name/file-name.avi",
    "outputs": [
    {
        "url": "s3://output-bucket/output-file-name.mp4",
        "format": "3gp",
        "video_codec": "mpeg4",
        "height": 144,
        "width": 176,
        "aspect_mode": "pad",
        "frame_rate": 5,
        "upscale": true,
        "video_bitrate": 52,
        "decoder_bitrate_cap": 58,
        "decoder_buffer_size": 16,
        "audio_bitrate": 16,
        "audio_channels": 1,
        "audio_sample_rate": 16000
    }
    ]
}

Zusammenfassung

Wenn Sie ein mobiles Video erstellen möchten, beginnen Sie mit dem universellen Smartphone-Profil. Ergänzen Sie dies für eine bessere Qualität mit einem Advanced Smartphone Profile-Video. Für eine größere Kompatibilität fügen Sie ein oder zwei Legacy-Profile mit MP4 oder 3GP hinzu. Das ist es. Für die meisten Mobilgeräte sind nur 1-3 Profile erforderlich.