Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
SDK Siaran IVS: Sumber Gambar Khusus (Streaming Latensi Rendah)
Panduan ini mengasumsikan Anda sudah terbiasa dengan cara menyiapkan sesi siaran (Android,iOS) dan bagaimana caranyagunakan API mixer.
Sumber input gambar khusus memungkinkan aplikasi menyediakan input gambarnya sendiri ke SDK siaran, alih-alih dibatasi pada kamera preset atau berbagi layar. Sumber gambar khusus bisa sesederhana tanda air semi-transparan atau adegan statis “be right back”, atau dapat memungkinkan aplikasi untuk melakukan pemrosesan khusus tambahan seperti menambahkan filter kecantikan ke kamera.
Anda dapat memiliki beberapa sumber gambar khusus, seperti tanda air plus kamera dengan filter kecantikan. Bila Anda menggunakan sumber input gambar khusus untuk kontrol kustom kamera (seperti menggunakan pustaka filter kecantikan yang memerlukan akses kamera), SDK siaran tidak lagi bertanggung jawab untuk mengelola kamera. Sebagai gantinya, aplikasi bertanggung jawab untuk menangani siklus hidup kamera dengan benar. Lihat dokumentasi platform resmi tentang bagaimana aplikasi Anda mengelola kamera.
Android
Setelah Anda membuat sesi siaran, buat sumber masukan gambar:
SurfaceSource surfaceSource = broadcastSession.createImageInputSource();
Metode ini mengembalikanSurfaceSource
, yang merupakan sumber gambar yang didukung oleh Android standarPermukaanattachDevice(...)
metode sesudahnya. Namun,SurfaceSource
perlu terikat ke slot; ini dibahas nanti di bawah ini. YangSurfaceSource
dapat diubah ukurannya dan diputar. Anda juga dapat membuatImagePreviewView
untuk menampilkan pratinjau isinya.
Untuk mengambil yang mendasariSurface
:
Surface surface = surfaceSource.getInputSurface();
IniSurface
dapat digunakan sebagai buffer keluaran untuk produsen gambar seperti Camera2, OpenGL ES, dan pustaka lainnya. Kasus penggunaan yang paling sederhana adalah langsung menggambar bitmap statis atau warna ke Canvas Surface. Namun, banyak pustaka (seperti pustaka filter kecantikan) menyediakan metode yang memungkinkan aplikasi untuk menentukan eksternalSurface
untuk rendering. Anda dapat menggunakan metode seperti itu untuk melewati iniSurface
ke pustaka filter, yang memungkinkan perpustakaan untuk menampilkan frame yang diproses untuk sesi siaran untuk streaming.
Akhirnya,SurfaceSource
harus terikat keMixer.Slot
untuk dialirkan oleh sesi siaran:
broadcastSession.getMixer().bind(surfaceSource, "customSlot");
YangKode sampel Android
-
Tanda air semi-transparan ditambahkan di
MixerActivity
. -
File MP4 dilingkarkan di
MixerActivity
. -
YangCameraManager
kelas utilitas melakukan pengelolaan kustom kamera perangkat menggunakan metode Camera2 di CustomActivity
, yang menerapkan filter sepia sederhana. Contoh ini sangat membantu karena menunjukkan cara mengelola kamera dan meneruskan kebiasaan sesi siaranSurfaceSource
ke permintaan pengambilan kamera. Jika Anda menggunakan pustaka eksternal lainnya, ikuti dokumentasi mereka tentang cara mengkonfigurasi pustaka ke output ke AndroidSurface
disediakan oleh sesi siaran.
iOS
Setelah Anda membuat sesi siaran, buat sumber masukan gambar:
let customSource = broadcastSession.createImageSource(withName: "customSourceName")
Metode ini mengembalikanIVSCustomImageSource
, yang merupakan sumber gambar yang memungkinkan aplikasi untuk mengirimkanCMSampleBuffers
secara manual. Untuk format piksel yang didukung, lihat Referensi SDK Siaran iOS; tautan ke versi terbaru ada diCatatan Rilis Amazon IVSuntuk rilis SDK siaran terbaru. Sumber tidak secara otomatis dilampirkan ke sesi siaran, jadi Anda harus melampirkan sumber gambar ke sesi dan mengikatnya ke slot sebelum sumber akan streaming:
broadcastSession.attach(customSource, toSlotWithName: "customSourceSlot", onComplete: nil)
Setelah sumber kustom dilampirkan dan terikat, aplikasi dapat mengirimkanCMSampleBuffers
langsung ke sumber kustom. Anda dapat memilih untuk menggunakanonComplete
callback untuk mulai melakukannya.
Sampel yang dikirimkan ke sumber khusus akan dialirkan dalam sesi siaran:
customSource.onSampleBuffer(sampleBuffer)
Untuk streaming video, gunakan metode ini dalam callback. Misalnya, jika Anda menggunakan kamera, maka setiap kali buffer sampel baru diterima dari sebuahAVCaptureSession
, aplikasi dapat meneruskan buffer sampel ke sumber gambar khusus. Jika diinginkan, aplikasi dapat menerapkan pemrosesan lebih lanjut (seperti filter kecantikan) sebelum mengirimkan sampel ke sumber gambar khusus.
Untuk gambar statis, setelah sampel pertama, aplikasi perlu mengirimkan ulang sampel jika pengikatan slot sumber gambar kustom diubah atau sumbernya terlepas dan dipasang kembali ke sesi siaran. Misalnya, jika Anda menghapus slot dari dan kemudian menambahkan slot ke mixer, Anda harus mengirimkan kembali sampel.
YangAplikasi sampel iOS
-
Tanda air semi-transparan ditambahkan
MixerViewController
. -
File MP4 dilingkarkan
MixerViewController
. -
Implementasi CIFilter dengan kamera perangkat ditambahkan
CustomSourcesViewController
. Ini memungkinkan aplikasi untuk mengelola kamera perangkat secara independen dari Amazon IVS Broadcast SDK. Ini menggunakanAVCaptureSession
untuk menangkap gambar dari kamera perangkat, memproses gambar menggunakan implementasi CIFilter, dan mengirimkanCMSampleBuffers
kepadacustomSource
untuk live streaming.