Io/行動裝置編碼指南

本主題討論為行動裝置編碼視訊的方法。

概覽

首先是壞消息。那裡有數百種移動設備,基本上不可能支持其中的100.0%。

好消息是移動設備正在變得越來越好。176x144 3GP成為移動視頻的代名詞的日子已經一去不復返了。現代智能手機實際上可以播放高質量的視頻,並且智能手機的使用正在增加。這並不是說3GP已經結束,或者每個人都擁有智能手機。但是智能手機的使用正在增長(年化率64%截至2010年第二季度),而且毫不奇怪,智能手機用戶比手機用戶使用笨拙的手機更喜歡在手機上觀看視頻。

因此,如果要支持90%以上的移動設備,則至少需要兩種視頻類型:3GP + MPEG-4用於不太複雜的設備,H.264 + MP4用於智能手機。

確實,這是個好消息。一個輸出視頻可以覆蓋您所有的智能手機用戶– iPhone / iPad / iPod,Android和(大多數情況下)Blackberry。在PSP,PS3和Xbox 360中折騰很好。

當然,雖然一個通用的智能手機輸出可以照顧大多數智能手機用戶,但使用多個移動輸出可以做得更好。例如,iPad的原始分辨率為1024x768,是早期iPhone的480x320的五倍。因此,如果您以480x320的分辨率對視頻進行編碼,那麼您將錯過iPad的近高清功能。

幸運的是,您可以使用一些標準的編碼配置文件很好地定位移動設備。從通用智能手機配置文件開始,以獲得廣泛的兼容性;為更高級的設備添加高級智能手機配置文件版本;並使用舊版配置文件對您的移動列表進行四捨五入,以實現最大的兼容性-我們的舊版智能手機配置文件(如下所示),或者甚至是3GP視頻,以實現更大的兼容性。

請注意,以下默認值是這些配置文件的起點。Zencoder默認情況下使用這些設置,但是您可以在使用的任何編碼工具中輕鬆複製它們。

默認值:

視頻:H.264、3.0級,基準配置文件
音訊:AAC,1-2個頻道

通用智能手機配置文件

這是與現代智能手機廣泛兼容的理想起點。儘管沒有充分利用最新設備上的高分辨率和編解碼器複雜性,但幾乎可以播放所有內容。

播放於:

iOS:iPhone,iPad,Apple TV,iPod Touch,iPod Classic,iPod 5.5G
黑莓:粗體9000,曲線8910、8900、8520,珍珠9XXX,風暴,風暴2,火炬,遊覽,粗體9650 + 9700
Android:全部(?)
其他:PSP(3.30 +),PS3,Xbox 360,網絡,Palm Pre *

不在上播放:

iPod 5G,PSP(3.30之前),Blackberry Curve 9330、9300、8530、83XX,Pearl 8XXX,88XX

設定:

{
    "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
        }
    ]
}

通用智能手機配置文件v2

通過提高視頻分辨率,此配置文件在iPhone 4,iPad,Apple TV,新的iPod Touch,Droid,PS3和Xbox上的播放效果更好。不過,多餘的像素浪費在較舊的iPhone上,導致視頻無法在Blackberry和某些Android手機上播放。

播放於:

上面的一切,減去Blackberry,也許是較弱的Android設備

設定:

與通用智能手機配置文件(如上所述)相同,但尺寸為640x480

{
    "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
        }
    ]
}

高級智能手機配置文件

較新的iOS設備允許更高的分辨率和更高的編碼複雜度(這意味著更好的壓縮)。特別是,iPad和Apple TV用戶不必在漂亮的屏幕上觀看480x320的視頻,因此,如果您想為這些用戶提供良好的體驗,則提供更高質量的版本是有意義的。

播放於:

iOS:iPhone 4,iPad,Apple TV *,較新的iPod Touch
Android:Nexus One,Droid,也許還有其他人。(儘管如此,YMMV。一些用戶報告720p視頻有問題。)
其他:PS3,網絡

不在上播放:

iOS: iPod 5G / 5.5G / Classic,iPhone 3GS及更高版本,舊版iPod Touch PSP,舊版Apple TV *
黑莓:所有
Android:其他
其他:PSP,PS3,Xbox 360,網絡

設定:

請注意,這是最大大小。對於本機iPhone 4分辨率,將尺寸設置為960x640

{
    "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
    }
    ]
}

高級智能手機配置文件v2

要支持較早的Apple TV設備,請使用“高級智能手機配置文件”設置以及以下選項之一:

設定:

高級智能手機配置文件(上述),以及以下任一選項:

size: 960x540

要么

max_frame_rate: 24

舊版智能手機配置文件

此配置文件在最後一組基於H.264的移動設備上播放:值得注意的是,較舊的iPod和某些Blackberry。權衡是明顯較小的視頻:320x240,不超過768kbps。

較舊的iPhone / iPod設備要求提供“ H.264基線低複雜度”配置文件。“低複雜度”實際上不是H.264標準-實際上只是表示“僅1個參考幀”。到底有多少蘋果設備可以強制執行此操作,但是要確定真正的兼容性,您可能應該使用“基準”配置文件並將參考幀限制為1。您可以使用h264_reference_frames設置。

播放於:

以上所有內容,再加上:iPod 5G,PSP(3.30之前),Blackberry Curve 9330、9300、8530、83XX,Pearl 8XXX,88XX,Palm Pre *

設定:

{
    "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
    }
    ]
}

舊版3GP配置文件

最後,一個或三個3GP配置文件將擴展對許多剩餘移動設備的支持。

值得注意的是,您可以在“舊版智能手機配置文件”下的上述支持的大多數相同設備上使用這些設備。因此,如果您要以320x240編碼3GP視頻,則可能不需要以320x240編碼另一個H.264視頻。

注意

  • 這些視頻看起來很糟糕,但這就是支持3GP手機的成本。
  • 為了將3GP視頻作為RTMP流傳遞,需要對其進行“提示”。組暗示true在您的API請求中啟用它。

播放於:

很難說。3GP設備有數千種,每種設備都有點不同。考慮這些是一個起點。

資料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
    }
    ]
}

配置文件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
    }
    ]
}

摘要

如果要創建移動視頻,請從通用智能手機配置文件開始。為了獲得更好的質量,請在“高級智能手機配置文件”視頻中進行補充。為了獲得更大的兼容性,請使用MP4或3GP添加一個或兩個Legacy配置文件。就是這樣它只需要1-3個配置文件即可支持大多數移動設備。