gpt4 book ai didi

objective-c - NSTask 和 FFMpeg 丢失输出

转载 作者:行者123 更新时间:2023-12-04 23:00:59 25 4
gpt4 key购买 nike

我试图在objective-c 中从NSTask 调用ffmpeg。我在终端中执行 ffmpeg 命令,每次都能完美运行。我使用 NSTask 发出相同的命令,但它从来没有给我完整的输出。它在输出的中途切断它,每次都在一个看似随机的位置。这是我的代码。

    - (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
NSString* ffmpegPath = [[NSBundle mainBundle] pathForResource:@"ffmpeg" ofType:@""];
NSString* path = @"test.mov";

NSTask *task = [[NSTask alloc] init];
NSArray *arguments = [NSArray arrayWithObjects: @"-i", path, nil];
NSPipe *pipe = [NSPipe pipe];
NSFileHandle * read = [pipe fileHandleForReading];

[task setLaunchPath: ffmpegPath];
[task setArguments: arguments];
[task setStandardOutput: pipe];
[task launch];
[task waitUntilExit];

NSData* data = [read readDataToEndOfFile];
NSString* stringOutput = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];


NSLog(@"%@", stringOutput);
NSLog(@"%i", [task terminationStatus]);
NSLog(@"DONE");
}

最佳答案

就这样我想通了。显然,输出中包含非 UTF8Characters。将其切换到 NSASCIIStringEncoding 和瞧。魔法。

关于objective-c - NSTask 和 FFMpeg 丢失输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8148824/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com