Macのデスクトップをストリーミングして、他の人が自分のしていることを見ることができるようにする必要があります。VLC(現在の安定版リリースでは機能しなくなりました)を使用してみました。osxのx11grabオプションで動作しなくなったffmpegを試しました。画面の記録とストリーミングを備えた商用または無料のソフトウェアを知っていますか?あるいは、ffmpegやvlcにパイプできるものはありますか?または、画面をキャプチャするosx用の非常に基本的なアプリを作成する方法を研究するためにどこかを教えてもらえますか?ありがとう
質問する
2188 次
1 に答える
0
これは、画面をキャプチャしてファイルとして保存するためのサンプル コードです。
/** 現在の画面を指定された宛先パスに記録します。**/
-(void)screenRecording:(NSURL *)destPath {
//Create capture session
mSession = [[AVCaptureSession alloc] init];
//Set session preset
//mSession.sessionPreset = AVCaptureSessionPresetMedium;
mSession.sessionPreset = AVCaptureSessionPreset1280x720;
//Specify display to be captured
CGDirectDisplayID displayId = kCGDirectMainDisplay;
//Create AVCaptureScreenInput with the display id
AVCaptureScreenInput *input = [[AVCaptureScreenInput alloc] initWithDisplayID:displayId];
if(!input) {
//if input is null
return;
}
//if input is not null and can be added to the session
if([mSession canAddInput:input]) {
//Add capture screen input to the session
[mSession addInput:input];
}
//Create AVCaptureMovieFileOutput
mMovieFileOutput = [[AVCaptureMovieFileOutput alloc] init];
mMovieFileOutput.delegate = self;
if([mSession canAddOutput:mMovieFileOutput]) {
//If movie file output can be added to session, then add it the session
[mSession addOutput:mMovieFileOutput];
}
//Start running the session
[mSession startRunning];
//Check whether the movie file exists already
if([[NSFileManager defaultManager] fileExistsAtPath:[destPath path]]) {
NSError *err;
//If the movie file exists already, then delete it
if(![[NSFileManager defaultManager] removeItemAtPath:[destPath path] error:&err]) {
NSLog(@"Error deleting existing movie file %@", [err localizedDescription]);
}
}
//Start recording to destination path using the AVCaptureMovieFileOutput
[mMovieFileOutput startRecordingToOutputFileURL:destPath recordingDelegate:self];
}
サンプル コードはhttp://developer.apple.com/library/mac/#qa/qa1740/_index.htmlにあります。
URLからどうぞ。これは、少なくとも画面をキャプチャする基本的なアプリケーションを作成するのに役立ちます。
于 2013-03-05T09:19:32.980 に答える