AVSampleBufferDisplayLayer
全部标签 我正在尝试使用AVSampleBufferDisplayLayer渲染通过UDP连接的基本h264流。对于来源,我正在使用这个gstreamer命令:gst-launch-1.0-vvideotestsrcis-live=truepattern-ball!video/x-raw,width-120,height=90,framerate=15/1!x264enctune=zerolatency!h264parse!video/x-h264,stream-format=byte-stream!rtph264paymtu=100000000!udpsinkhost=127.0.0.1por
我正在使用AVSampleBufferDisplayLayer来显示通过网络连接以h.264格式传输的CMSampleBuffer。视频播放流畅且工作正常,但我似乎无法控制帧速率。具体来说,如果我在AVSampleBufferDisplayLayer中每秒排队60帧,它会显示这60帧,即使视频是以30FPS录制的。创建样本缓冲区时,可以通过将计时信息数组传递给CMSampleBufferCreate来设置呈现时间戳(计时信息不存在于h.264流中,但可以计算或以容器格式传递)。我设置的呈现时间戳相隔约0.033秒,持续时间为0.033,但显示层仍会显示尽可能多的每秒帧数。有两种方法可以
从iOS11开始,我一直看到这种崩溃:1libdispatch.dylib_dispatch_sync_wait+631922MediaToolboxvideoQueueRemote_Invalidate+59843763MediaToolboxvideoQueueRemote_Invalidate+59843764MediaToolboxvideoQueueRemote_Finalize+59848285CoreMediaFigBaseObjectFinalize+473006CoreFoundation_CFRelease+9631767AVFoundation-[AVSample
我正在尝试在基于Swift的项目中设置视频流查看器。我查看了以下非常有帮助的内容(objective-c):HowAVSampleBufferDisplayLayerdisplaysH.264在Swift上下文中,我很难理解CMTimebaseCreateWithMasterClock要求CMTimebase相关元素的类型为UnsafeMutablePointer。有人能够解释如何转换为这个并返回以解决以下代码部分中的问题。varcontrolTimebase:CMTimebasevarmyAllocator:CFAllocator!CMTimebaseCreateWithMaster
在得知iOS8中的程序员可以使用HW-H264-Decoder后,我想立即使用它。WWDC2014对“直接访问视频编码和解码”有一个很好的介绍。你可以看看here.基于那里的案例1,我开始开发一个应用程序,它应该能够从GStreamer获取H264-RTP-UDP-Stream,将其放入“appsink”元素中以直接访问NAL单元并进行转换以创建CMSampleBuffers,这是我的AVSampleBufferDisplayLayer然后可以显示。执行所有操作的有趣代码如下:////GStreamerBackend.m//#import"GStreamerBackend.h"NSSt
在得知iOS8中的程序员可以使用HW-H264-Decoder后,我想立即使用它。WWDC2014对“直接访问视频编码和解码”有一个很好的介绍。你可以看看here.基于那里的案例1,我开始开发一个应用程序,它应该能够从GStreamer获取H264-RTP-UDP-Stream,将其放入“appsink”元素中以直接访问NAL单元并进行转换以创建CMSampleBuffers,这是我的AVSampleBufferDisplayLayer然后可以显示。执行所有操作的有趣代码如下:////GStreamerBackend.m//#import"GStreamerBackend.h"NSSt
我在iOS上遇到AVSampleBufferDisplayLayer问题。我想使用这一层显示CVPixelBuffer,但我无法在实际的iOS设备上运行它。在我的示例应用程序中,我尝试使用以下代码来显示一种颜色的像素缓冲区:@implementationViewController{AVSampleBufferDisplayLayer*videoLayer;}-(void)viewDidLoad{[superviewDidLoad];videoLayer=[[AVSampleBufferDisplayLayeralloc]init];videoLayer.frame=CGRectMak
我有一些视频显示在AVsampleBufferDisplayLayer上,我想捕获此图像并将其保存到相册中。由于AVSampleBufferDisplayLayer继承自CALayer,我认为在renderInContext中使用它是可以接受的。[targetView.layeraddSublayer:avLayer];UIGraphicsBeginImageContext(targetView.bounds.size);CGContextRefcontext=UIGraphicsGetCurrentContext();[avLayerrenderInContext:context];
我正在尝试在AVSampleBufferDisplayLayer上循环播放视频。我可以毫无问题地播放一次。但是,当我尝试循环播放时,它并没有继续播放。根据对AVFoundationtoreproduceavideoloop的回答没有办法倒带AVAssetReader所以我重新创建它。(我确实看到了LoopingavideowithAVFoundationAVPlayer?的答案,但AVPlayer的功能更全。我正在阅读一个文件,但仍然想要AVSampleBufferDisplayLayer。)一个假设是我需要停止一些H264header,但我不知道这是否有帮助(以及如何帮助)。还有一个
我正在使用AVSampleBufferDisplayLayer来解码和显示从服务器流式传输的H.264视频。当我的应用程序进入后台然后返回前台时,解码过程被搞砸并且AVSampleBufferDisplayLayer失败。我看到的错误是:H.264decodinglayerhasfailed:ErrorDomain=AVFoundationErrorDomainCode=-11847"OperationInterrupted"UserInfo=0x17426c500{NSUnderlyingError=0x17805fe90"Theoperationcouldn’tbecomplete