即时通讯尝试捕获帧缓冲区数据并转换为我的iPhone游戏的视频..即时通讯使用AVAssetWriter来完成这件事.代码在模拟器上工作正常,但在设备本身没有.在设备上它生成一个黑色视频
即时通讯使用以下代码:
//This code initializes the AVAsetWriter and other things
- (void) testVideoWriter {
CGRect screenBoundst = [[UIScreen mainScreen] bounds];
//initialize global info
MOVIE_NAME = @"Documents/Movie5.mp4";
//CGSize size = CGSizeMake(screenBoundst.size.width, screenBoundst.size.height);
CGSize size = CGSizeMake(320, 480);
frameLength = CMTimeMake(1, 5);
currentTime = kCMTimeZero;
currentFrame = 0;
MOVIE_PATH = [NSHomeDirectory() stringByAppendingPathComponent:MOVIE_NAME];
NSError *error = nil;
videoWriter = [[AVAssetWriter alloc] initWithURL:[NSURL fileURLWithPath:MOVIE_PATH]
fileType:AVFileTypeMPEG4 error:&error];
NSDictionary *videoSettings = [NSDictionary dictionaryWithObjectsAndKeys:AVVideoCodecH264, AVVideoCodecKey,
[NSNumber numberWithInt:size.width ], AVVideoWidthKey,
[NSNumber numberWithInt:size.height ], AVVideoHeightKey, nil];
writerInput = [AVAssetWriterInput …Run Code Online (Sandbox Code Playgroud) 嘿我正在尝试记录我的游戏的游戏,以便我可以从设备本身上传其视频到youtube ...我试图做同样的事情,如iPhone的会说话的tomcat应用程序..记录视频然后播放,等等...
我使用glReadPixels()来读取帧缓冲数据,然后在AVFoundation框架中借助AVAssetWriter将其写入视频.但是,在使用glReadPixels时,读取每个图形上的数据会将FPS从大约30-35降低到2-3.
我认为会说话的tomcat也是在Opengl ES的帮助下制作的,它也有视频录制功能,但在阅读每一帧任何想法时都不会减慢速度....?
最近我一直在研究多人网络应用程序.我使用Bonjour服务和NSStream对象成功实现了客户端服务器模型.双向沟通已成功完成.
我面临的问题是:运行应用程序的两个设备通过本地wifi连接.从客户端向服务器发送消息时存在延迟问题,反之亦然.
简要描述:
有任何想法吗?
目前我正在尝试从帧缓冲区读取像素数据,以便在IOS中捕获屏幕.使用以下代码设置帧缓冲区时,GlreadPixels命令工作正常: -
//buffers
// Create a depth buffer that has the same size as the color buffer.
glGenRenderbuffersOES(1, &m_depthRenderbuffer);
glBindRenderbufferOES(GL_RENDERBUFFER_OES, m_depthRenderbuffer);
glRenderbufferStorageOES(GL_RENDERBUFFER_OES, GL_DEPTH_COMPONENT24_OES, width, height);
// Create the framebuffer object.
glGenFramebuffersOES(1, &framebuffer);
glBindFramebufferOES(GL_FRAMEBUFFER_OES, framebuffer);
glFramebufferRenderbufferOES(GL_FRAMEBUFFER_OES, GL_COLOR_ATTACHMENT0_OES,
GL_RENDERBUFFER_OES, m_colorRenderbuffer);
glFramebufferRenderbufferOES(GL_FRAMEBUFFER_OES, GL_DEPTH_ATTACHMENT_OES,
GL_RENDERBUFFER_OES, m_depthRenderbuffer);
glBindRenderbufferOES(GL_RENDERBUFFER_OES, m_colorRenderbuffer);
glBindFramebufferOES(GL_FRAMEBUFFER_OES, framebuffer);
Run Code Online (Sandbox Code Playgroud)
但是当我使用深度缓冲和颜色缓冲进行多重采样时,glreadpixels()不会像以前的代码那样捕获任何像素数据....对于多次采样,我使用以下代码: -
glGenFramebuffersOES(1, &sampleFramebuffer);
glBindFramebufferOES(GL_FRAMEBUFFER_OES, sampleFramebuffer);
//GLuint sampleColorRenderbuffer;
glGenRenderbuffersOES(1, &sampleColorRenderbuffer);
glBindRenderbufferOES(GL_RENDERBUFFER_OES, sampleColorRenderbuffer);
glRenderbufferStorageMultisampleAPPLE(GL_RENDERBUFFER_OES, 4, GL_RGBA8_OES, width, height);
glFramebufferRenderbufferOES(GL_FRAMEBUFFER_OES, GL_COLOR_ATTACHMENT0_OES, GL_RENDERBUFFER_OES, sampleColorRenderbuffer);
//glRenderbufferStorageMultisampleAPPLE(GL_RENDERBUFFER_OES, 4, GL_RGBA8_OES, width, height);
//glFramebufferRenderbufferOES(GL_FRAMEBUFFER_OES, GL_COLOR_ATTACHMENT0_OES, GL_RENDERBUFFER_OES, sampleColorRenderbuffer);
GLuint sampleDepthRenderbuffer;
glGenRenderbuffersOES(1, &sampleDepthRenderbuffer); …Run Code Online (Sandbox Code Playgroud) 我正在尝试从NSInputStream播放pcm数据.任何人都可以为我提供正确的方法或代码.
我使用以下代码获取了Stream in StreamHasData事件.
uint8_t bytes[self.audioStreamReadMaxLength];
UInt32 length = [audioStream readData:bytes maxLength:self.audioStreamReadMaxLength];
Run Code Online (Sandbox Code Playgroud)
现在我如何在iphone中播放字节音频数据?
iphone ×3
glreadpixels ×2
ios ×2
opengl-es ×2
video ×2
audio ×1
framebuffer ×1
ipad ×1
multiplayer ×1
networking ×1
nsstream ×1
pcm ×1