首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在后台运行xcode中的系统命令

如何在后台运行xcode中的系统命令
EN

Stack Overflow用户
提问于 2013-02-28 01:02:24
回答 1查看 844关注 0票数 0

我需要使用这个参数运行一个ffmpeg命令:-i 'url_of_input_here‘。因此,使用带有参数数组的NSTask是行不通的:

代码语言:javascript
复制
NSString * ffm_address = [NSString stringWithFormat:@"'udp://%d.%d.%d.%d:%d?fifo_size=1000000000&overrun_nonfatal=1'",addr_1,addr_2,addr_3,addr_4,portFFM];
[task setArguments:
[NSArray arrayWithObjects:@"-f", @"mpegts", @"-i", ffm_address, @"-re",@"-y",@"-strict",@"experimental",@"-vcodec", @"copy", @"-f", @"mp4", @"video.mp4", nil]];

由于引用的处理方式使得ffmpeg认为udp://....地址是一个文件

XCode有一个system()函数,可以让我执行系统命令,但是当我运行ffmpeg命令时,它会暂停进程(因为ffmpeg正在处理一个流):

代码语言:javascript
复制
char ffm_cmd[512];
sprintf(ffm_cmd,"ffmpeg -f mpegts -i 'udp://%d.%d.%d.%d:%d?fifo_size=1000000&overrun_nonfatal=1' -re -y -strict experimental -vcodec copy -f mp4 video.mp4",addr_1,addr_2,addr_3,addr_4,portFFM);
    system(ffm_cmd);

我如何在后台运行system()命令,这样它就不会停止应用程序的其余部分?我不想使用单独的线程,而是启动ffmpeg并继续进程。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-28 01:11:24

找到一种方法来做到这一点!只需在命令末尾添加&:

代码语言:javascript
复制
   char ffm_cmd[512];
    sprintf(ffm_cmd,"ffmpeg -f mpegts -i 'udp://%d.%d.%d.%d:%d?fifo_size=1000000&overrun_nonfatal=1' -re -y -strict experimental -vcodec copy -f mp4 video.mp4 &",addr_1,addr_2,addr_3,addr_4,portFFM);
    system(ffm_cmd);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15117913

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档