【问题标题】:How to record screen in macOS using FFmpeg in Objective-C?如何在 Objective-C 中使用 FFmpeg 在 macOS 中录制屏幕?
【发布时间】:2018-05-12 16:21:58
【问题描述】:

我知道:

# ffmpeg -f avcapture -video_device_index 0 -i "" ~/Desktop/capture.mpeg

这将生成一个视频文件。但是如何在 Xcode 中以编程方式执行此操作? 我正在尝试在 macOS 中构建一个支持 FFmpeg 的屏幕录像机。

【问题讨论】:

标签: objective-c macos ffmpeg


【解决方案1】:

您可以使用 NSTask 来启动其他任务,例如:

NSTask *task = [[NSTask alloc] init];
[task setLaunchPath:@"/usr/local/bin/ffmpeg"]; // Path to ffmpeg, if included in the resources [[NSBundle mainBundle] pathForResource:@"ffmpeg" ofType:""]
[task setArguments:@[@"-f", @"avcapture", @"-video_device_index", @"0", @"-i", @"\"", @"~/Desktop/capture.mpeg"]];    
[task launch];     
[task waitUntilExit];

int status = [task terminationStatus];
if (status == 0)
{
     NSLog(@"Task succeeded.");
}
else
{
    NSLog(@"Task failed.");
}

【讨论】:

  • 谢谢。我们可以设置 fps 和其他预设来调整质量吗?我可以创建 WebM 格式文件吗?
  • ffmpeg 支持的所有选项都应该可以工作,WebM 和每秒帧数是我在使用 ffmpeg 的应用程序中使用的选项(媒体转换器 -> media-converter.sourceforge.net)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-01-07
  • 1970-01-01
  • 2022-10-25
  • 2020-12-21
  • 1970-01-01
  • 2023-01-03
  • 1970-01-01
相关资源
最近更新 更多