-
-
Notifications
You must be signed in to change notification settings - Fork 602
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
How to use ScreenCaptureSession to live broadcast screen capture? #28
Comments
// 1st step: Comment-out line
// rtmpStream.attachCamera(AVMixer.deviceWithPosition(.Back))
// 2nd step: Remove Comment-out Line
rtmpStream.attachScreen(ScreenCaptureSession()) |
thanks! it works. can rtmpStream attach both camera and screen capture? |
library has no this feature. // example Custom VisualEffect
final class CameraMixEffect: VisualEffect, AVCaptureVideoDataOutputSampleBufferDelegate {
let filter:CIFilter? = CIFilter(name: "CISourceOverCompositing")
var camera:CIImage?
var lockQueue:dispatch_queue_t? dispatch_queue_create(
"CameraMixEffect.lock", DISPATCH_QUEUE_SERIAL
)
override init() {
super.init()
}
override func execute(image: CIImage) -> CIImage {
guard let filter:CIFilter = filter else {
return image
}
dispatch_async(lockQueue) {
self.filter.setValue(camera, forKey: "inputImage")
self.filter.setValue(image, forKey: "inputBackgroundImage")
}
return filter.outputImage!
}
func captureOutput(captureOutput: AVCaptureOutput!, didOutputSampleBuffer sampleBuffer: CMSampleBuffer!, fromConnection connection: AVCaptureConnection!) {
guard let image:CVImageBufferRef = CMSampleBufferGetImageBuffer(sampleBuffer) else {
return
}
camera = CIImage(CVPixelBuffer: image)
}
}
// next
var session = AVCaptureSession()
var videoOutput = AVCaptureVideoDataOutput()
session.addInput(try! AVCaptureDeviceInput(device: camera))
session.addOutput(videoDataOutput)
var effect = CameraMixEffect()
videoOutput.setSampleBufferDelegate(effect, queue: effect.lockQueue)
var stream:RTMPStream = RTMPStream()
stream.registerEffect(effect) |
I try this, but the camera image does not shown over the device screen, perhaps the camera image's position or size must be set properly? |
Is this solution still work? |
please give me some code snippet,thanks!
The text was updated successfully, but these errors were encountered: