Mengonfigurasi setelan live stream

Halaman ini menjelaskan cara mengonfigurasi setelan selama titik akhir input atau pembuatan channel untuk fitur live stream seperti beberapa trek audio, teks, dan spritesheet.

Mengonfigurasi melalui pembuatan endpoint input

Anda dapat menentukan konfigurasi untuk fitur berikut selama pembuatan endpoint input:

Daftar IP yang diizinkan

Anda dapat membatasi akses ke endpoint input dengan menentukan rentang IP asal aliran data input, seperti alamat IP encoder. Pipeline video hanya menerima traffic dari alamat IP dalam rentang ini. Rentang IP harus dalam format blok CIDR.

Konfigurasikan kolom securityRules di resource Input:

{
  "type": "RTMP_PUSH",
  "securityRules": {
    "ipRanges": ["1.2.3.4/32"]
  }
}

Mengonfigurasi melalui pembuatan channel

Anda dapat menentukan konfigurasi untuk fitur berikut selama pembuatan channel:

Beberapa streaming dengan kecepatan bit

Anda dapat membuat konfigurasi saluran lanjutan yang mendukung beberapa kecepatan bit, resolusi, dan kecepatan frame. Konfigurasi berikut menyertakan dua muxStream dalam output, satu pada 360p dengan kecepatan frame 30 FPS (mux_video_360p30) dan satu lagi pada 720p dengan kecepatan frame 60 FPS (mux_video_720p60). Konfigurasi ini juga mendukung beberapa kecepatan bit audio. Lihat Kecepatan bit yang direkomendasikan untuk informasi selengkapnya.

{
  "inputAttachments":[
    {
      "key":"input-primary",
      "input": "projects/PROJECT_NUMBER/locations/LOCATION/inputs/INPUT_ID"
    }
  ],
  "output":{
    "uri": "gs://BUCKET_NAME"
  },
  "elementaryStreams": [
    {
      "key": "es_video_720p60",
      "videoStream": {
        "h264": {
          "profile": "high",
          "heightPixels": 720,
          "widthPixels": 1280,
          "bitrateBps": 5500000,
          "frameRate": 60
        }
      }
    },
    {
      "key": "es_video_360p30",
      "videoStream": {
        "h264": {
          "profile": "high",
          "heightPixels": 360,
          "widthPixels": 640,
          "bitrateBps": 400000,
          "frameRate": 30
        }
      }
    },
    {
      "key": "es_audio_160k",
      "audioStream": {
        "codec": "aac",
        "channelCount": 2,
        "bitrateBps": 160000
      }
    },
    {
      "key": "es_audio_64k",
      "audioStream": {
        "codec": "aac",
        "channelCount": 2,
        "bitrateBps": 64000
      }
    }
  ],
  "muxStreams": [
    {
      "key": "mux_video_720p60",
      "elementaryStreams": [
        "es_video_720p60"
      ],
      "segmentSettings": {
        "segmentDuration": "2s"
      }
    },
    {
      "key": "mux_video_360p30",
      "elementaryStreams": [
        "es_video_360p30"
      ],
      "segmentSettings": {
        "segmentDuration": "2s"
      }
    },
    {
      "key": "mux_audio_160k",
      "elementaryStreams": [
        "es_audio_160k"
      ],
      "segmentSettings": {
        "segmentDuration": "2s"
      }
    },
    {
      "key": "mux_audio_64k",
      "elementaryStreams": [
        "es_audio_64k"
      ],
      "segmentSettings": {
        "segmentDuration": "2s"
      }
    }
  ],
  "manifests": [
    {
      "fileName": "main.mpd",
      "type": "DASH",
      "muxStreams": [
        "mux_video_720p60",
        "mux_video_360p30",
        "mux_audio_160k",
        "mux_audio_64k"
      ],
      "maxSegmentCount": 5
    },
    {
      "fileName": "main.m3u8",
      "type": "HLS",
      "muxStreams": [
        "mux_video_720p60",
        "mux_video_360p30",
        "mux_audio_160k",
        "mux_audio_64k"
      ],
      "maxSegmentCount": 5
    }
  ]
}

Beberapa trek audio

Jika streaming input berisi lebih dari satu trek audio, gunakan objek AudioMapping untuk memilih trek bagi setiap AudioStream.

{
  "inputAttachments": [
    {
      "key": "MY-INPUT",
      "input": "/projects/PROJECT-ID/locations/LOCATION/inputs/MY-INPUT",
    }
  ],
  "output": {
    "uri": "gs://BUCKET_NAME/outputs/"
  },
  "elementaryStreams": [
    {
      "key": "es_video",
      "videoStream": {
        "h264": {
          "heightPixels": 720,
          "widthPixels": 1280,
          "bitrateBps": 3000000,
          "frameRate": 30
        }
      }
    },
    {
      "key": "es_first_audio",
      "audioStream": {
        "codec": "aac",
        "bitrateBps": 160000,
        "mapping": [
          {
            "inputKey": "MY-INPUT",
            "inputTrack": 1
          }
        ]
      }
    },
    {
      "key": "es_second_audio",
      "audioStream": {
        "codec": "aac",
        "bitrateBps": 160000,
        "mapping": [
          {
            "inputKey": "MY-INPUT",
            "inputTrack": 2
          }
        ]
      }
    }
  ],
  "muxStreams": [
    {
      "key": "mux_video",
      "elementaryStreams": ["es_video"],
    },
    {
      "key": "mux_first_audio",
      "elementaryStreams": ["es_first_audio"],
    },
    {
      "key": "mux_second_audio",
      "elementaryStreams": ["es_second_audio"],
    }
  ],
  "manifests": [
    {
      "type": "DASH",
      "muxStreams": [
        "mux_video",
        "mux_first_audio",
        "mux_second_audio",
      ]
    }
  ]
}

Perhatikan bahwa Shaka Player tidak mendukung fitur berikut untuk streaming HLS dengan beberapa trek audio:

  • Pemutaran trek audio alternatif dengan segmen TS.

  • Pemilihan trek audio sekunder dan alternatif dengan segmen fMP4.

Teks passthrough CEA 608/708

Jika streaming input berisi teks CEA 608/708, Anda dapat meneruskan teks tersebut ke streaming output. Tambahkan textStream berikut ke elementaryStreams saat membuat Channel. textStream ini menyematkan teks CEA 608/708 ke semua streaming dan rendisi video output.

{
  "key": "captions",
  "textStream": {
    "codec": "cea608"
  }
}

Sheet sprite

Untuk membuat sprite sheet, konfigurasikan kolom spriteSheets di resource Channel.

{
  "spriteSheets": [
    {
      "format": "jpeg",
      "filePrefix": "sprite",
      "interval": "2s",
      "spriteWidthPixels": 320,
      "spriteHeightPixels": 240,
      "columnCount": 3,
      "rowCount": 3,
      "quality": 80
    }
  ]
}