Я хочу, чтобы мое приложение транслировалось с помощью twitch, youtube или другого потокового сервиса без какого-либо другого приложения, такого как толпа мобов.
Согласно Apple, с помощью Broadcast Extension я могу транслировать экран своего приложения.
Расширение Broadcast предоставило видеоданные как тип CMSampleBuffer. Затем я должен отправить эти данные в RTMP-сервер, как YouTube, дергаться или т. Д.
Я думаю, что если я смогу получить видеоданные, я смогу транслировать другие вещи без использования Broadcast Extension в моем приложении. Поэтому я пытаюсь отправить данные RPScreenRecorder на сервер rtmp, но у меня ничего не получается.
Вот код, который я написал.
Я использую HaishinKit с открытым исходным кодом для связи RTMP.
(https://github.com/shogo4405/HaishinKit.swift/tree/master/Examples/iOS/Screencast)
let rpScreenRecorder : RPScreenRecorder = RPScreenRecorder.shared()
private var broadcaster: RTMPBroadcaster = RTMPBroadcaster()
rpScreenRecorder.startCapture(handler: { (cmSampleBuffer, rpSampleBufferType, error) in
if (error != nil) {
print("Error is occured \(error.debugDescription)")
} else {
if let description: CMVideoFormatDescription = CMSampleBufferGetFormatDescription(cmSampleBuffer) {
let dimensions: CMVideoDimensions = CMVideoFormatDescriptionGetDimensions(description)
self.broadcaster.stream.videoSettings = [
"width": dimensions.width,
"height": dimensions.height ,
"profileLevel": kVTProfileLevel_H264_Baseline_AutoLevel
]
}
self.broadcaster.appendSampleBuffer(cmSampleBuffer, withType: .video)
}
}) { (error) in
if ( error != nil) {
print ( "Error occured \(error.debugDescription)")
} else {
print ("Success")
}
}
}
Если у вас есть решение, пожалуйста, ответьте мне:)