iOS
文长
咿呀呀
展开
-
iOS获取camera的yuv数据
首先要设置输出格式: [videoOut setVideoSettings:[NSDictionary dictionaryWithObject:[NSNumber numberWithInt:kCVPixelFormatType_420YpCbCr8BiPlanarFullRange]原创 2016-02-23 19:25:23 · 5895 阅读 · 0 评论 -
iOS h264 硬解
记录。http://www.voidcn.com/blog/dongtinghong/article/p-5047279.html首先要把 VideoToolbox.framework 添加到工程里,并且包含以下头文件。 #include 解码主要需要以下三个函数VTDecompressionSessionCreate 创建解码 sessionVTDecom原创 2016-10-24 15:33:07 · 2481 阅读 · 0 评论 -
ios录制视频时audio丢失
AVAssetWriter录制视频,写入音频太快可能导致音频丢失。AVAssetWriterInput *_audioWriterInput;_audioWriterInput的readyForMoreMediaData状态可能为NO。在线程中写入的话,可以一直wait到readyForMoreMediaData位YES,才写入,这样就不会丢失音频数据了。原创 2016-11-09 11:54:06 · 924 阅读 · 0 评论 -
在iOS端使用AVSampleBufferDisplayLayer进行视频渲染
原文在这里:http://blog.csdn.net/fernandowei/article/details/52179631目前大多数iOS端的视频渲染都使用OpenGLES,但如果仅仅为了渲染而不做其他的例如美颜等效果,其实可以使用iOS8.0新出的AVSampleBufferDisplayLayer。对AVSampleBufferDisplayLayer,官方说明中有一句转载 2016-11-09 17:10:40 · 2585 阅读 · 0 评论 -
iOS MP4解码成yuv和pcm数据
- (void)startProcessing{ previousFrameTime = kCMTimeZero; previousActualFrameTime = CFAbsoluteTimeGetCurrent(); NSDictionary *inputOptions = [NSDictionary dictionaryWi原创 2016-11-18 20:42:12 · 1902 阅读 · 0 评论 -
SDWebImage获取到UIImage分辨率跟原图不一样
使用[imageView sd_setImageWithURL:url placeholderImage:nil completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL){ }];获取到UIImage,发现UIImage的size跟原图大小不一样原创 2016-12-07 10:13:56 · 1824 阅读 · 0 评论 -
AVAssetWriter写入char*数据(video)
iOS录制视频的时候,一般是通过CMSampleBufferRef来写入。但是如果有时候只有char*数据,转换成CMSampleBufferRef貌似不好转。这时候可以通过AVAssetWriterInputPixelBufferAdaptor来写入。主要代码如下: AVAssetWriter *_assetWriter; AVAssetWri原创 2016-12-13 19:47:20 · 1351 阅读 · 2 评论 -
IOS硬件解码VTDecompressionSession失效
原文:http://blog.5ibc.net/p/33817.html编码、解码失效都可以restart一下。IOS硬件解码VideoToolbox在应用中进入后台VTDecompressionSession失效解决办法*前段时间在IOS上用VideoToolbox进行视频播放器硬件解码时遇到一个问题,就是播放器进入进入到后台后再切换回来会导致VTDecompressionSes转载 2017-03-09 11:57:53 · 1316 阅读 · 0 评论 -
iOS 后台运行实现总结
原文:http://www.jianshu.com/p/d3e279de2e32iOS 后台运行的规则应用的运行状态分为以下五种:Not running:应用还没有启动,或者应用正在运行但是途中被系统停止。Inactive:当前应用正在前台运行,但是并不接收事件(当前或许正在执行其它代码)。一般每当应用要从一个状态切换到另一个不同的状态时,中途过渡会短暂停留在此状态。唯转载 2017-03-29 16:44:43 · 5487 阅读 · 0 评论 -
iOS h264硬编码
从这里抄过来的:https://github.com/LevyGG/iOS-H.264-hareware-encode-and-decode/blob/master/VTDemoOniPad/H264HwEncoderImpl.h#import@import AVFoundation;@protocol H264HwEncoderIm原创 2016-10-24 15:22:31 · 2767 阅读 · 0 评论 -
iOS 使用fopen返回null
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *path = [paths objectAtIndex:0]; NSString *tmpPath = [path stringByAppendingPathC原创 2016-09-19 16:38:58 · 4150 阅读 · 0 评论 -
GPUImageMovieWriter录制视频问题
GPUImageMovieWriter录制视频问题1、两个movie叠加的时候,每个movie解码出一帧都会走到GPUImageTwoInputFilter的newFrameReadyAtTime- (void)newFrameReadyAtTime:(CMTime)frameTime atIndex:(NSInteger)textureIndex;{ // You ca原创 2016-03-23 17:25:48 · 5457 阅读 · 7 评论 -
iOS音视频实现边下载边播放
原文:http://sky-weihao.github.io/2015/10/06/Video-streaming-and-caching-in-iOS/近段时间制作视频播放社区的功能,期间查找了不少资料,做过很多尝试,现在来整理一下其中遇到的一些坑.由于考虑到AVPlayer对视频有更高自由度的控制,而且能够使用它自定义视频播放界面,iOS中所使用的视频播放控件为AVPlayer,而抛弃转载 2016-03-26 11:47:09 · 17741 阅读 · 0 评论 -
iOS 获取视频某一帧图像
-(UIImage*)getCoverImage{ AVURLAsset *asset = [[AVURLAssetalloc] initWithURL:_outMovieURLoptions:nil]; NSParameterAssert(asset); AVAssetImageGenerator *assetImageGenerator = [原创 2016-04-09 14:24:48 · 5344 阅读 · 0 评论 -
iOS bugly集成报错
iOS bugly手动集成文档真实烂。集成的时候一堆错误:Undefined symbols for architecture arm64: “OBJC_CLASS$_JSContext”, referenced from: objc-class-ref in Bugly(libBugly.a-arm64-master.o) ld: symbol(s) not found原创 2016-04-18 15:18:30 · 5052 阅读 · 0 评论 -
ios gpuimage输入和得到原始数据
gpuimage中有GPUImageRawDataInput和GPUImageRawDataOutput两个类。GPUImageRawDataOutput头文件:#import #import "GPUImageContext.h"struct GPUByteColorVector { GLubyte red; GLubyte green原创 2016-05-26 11:51:21 · 2662 阅读 · 0 评论 -
Xcode及模拟器SDK下载
http://blog.csdn.net/zhangao0086/article/details/38491271原创 2016-04-18 18:38:54 · 361 阅读 · 0 评论 -
CMSampleBufferRef与byte*互相转换(audio)
byte*转CMSampleBufferRef-(AudioStreamBasicDescription) getAudioFormat{ AudioStreamBasicDescription format; format.mSampleRate = 44100; format.mFormatID = kAudioFormatLinearPCM;原创 2016-06-30 17:31:06 · 8868 阅读 · 7 评论 -
GCDAsyncUdpSocket Demo
#import "ViewController.h"#import "GCDAsyncUdpSocket.h"#define STATUS_HEIGHT 20#define IPHONE_WIDTH [UIScreen mainScreen].bounds.size.width#define IPHONE_HEIGHT原创 2016-08-29 16:54:48 · 1348 阅读 · 2 评论 -
AudioUnitRender -10876
iOS使用AudioUnit录音,在录音回调中使用AudioUnitRender播放录制的人声时,返回-10876这个错误。这里https://www.osstatus.com/search/results?platform=all&framework=all&search=-10876查询到错误码:kAudioUnitErr_NoConnection。解决方法:[[A原创 2017-03-14 12:14:56 · 3536 阅读 · 0 评论 -
细数AVPlayer的那些坑
http://ivanyuan.farbox.com/post/shi-pin-bo-fang-de-na-xie-keng最近一直在做视频动态挂件以及一个视频播放的功能,在开始做之前,先学习了苹果的官方文档RosyWriter,熟悉了短视频拍摄、滤镜处理的一些小技巧,同学也学习了下GPUImage,最后在踩了很多坑以后才实现了视频挂件的处理。这次主要是总结和记录下视频转载 2017-04-21 14:38:35 · 29564 阅读 · 4 评论 -
AVAssetWriter写h264数据
AVAssetWriterInput按如下初始化:CMFormatDescriptionRef videoFormat = NULL;CMVideoFormatDescriptionCreate(kCFAllocatorDefault, kCMVideoCodecType_H264, 480, 480, NULL, &videoFormat);AVAssetWriter原创 2017-05-12 20:48:03 · 2283 阅读 · 4 评论 -
ios build lame
1、下载编译脚本:https://github.com/kewlbear/lame-ios-build2、下载lame:http://lame.sourceforge.net3、将下载的lame-3.99.5放到编译脚本那个目录,重命名为lame4、运行:./build-lame.sh原创 2017-08-22 17:55:24 · 871 阅读 · 0 评论 -
AVAssetWriter保存MP4(PBJVision)
#import "PBJMediaWriter.h"#import "PBJVisionUtilities.h"#import "PBJVision.h"#import #import #define LOG_WRITER 0#if !defined(NDEBUG) && LOG_WRITER# define DLog(fmt, ...) NSLog((@"writer: "原创 2017-09-15 11:44:11 · 3297 阅读 · 0 评论 -
ios libfdk-aac encode
使用libfdk-aac编码。#import "FDKAACEncoder.h"#include "aacenc_lib.h"#define PROFILE_AAC_LC 2#define PROFILE_AAC_HE 5#define PROFILE_AAC_HE_v2 29#define PROFILE_AAC_LD 23#define PROFILE_AAC_ELD 39原创 2017-09-01 14:46:18 · 1043 阅读 · 0 评论 -
ios ffmpeg h264 encode
简单封装了下,ffmepg需要包含libx264。#import "FFMpegAVCEncode.h"#ifdef __cplusplusextern "C" {#endif #include #include #include #include #ifdef __cplusplus};#endif@implementation FFMpegAV原创 2017-09-01 10:53:24 · 379 阅读 · 0 评论 -
ios ffmpeg h264 decode
ios使用ffmpeg解码h264数据封装。#import "FFMpegAVCDecoder.h"#ifdef __cplusplusextern "C" {#endif #include #include #include #include #ifdef __cplusplus};#endif@interface FFMpegAVCDecoder(原创 2017-09-01 10:56:30 · 423 阅读 · 0 评论 -
ios ffmpeg(libfdk-aac) aac encode
使用ffmpeg编码aac,使用libfdk-aac。#import "FFMpegAACEncoder.h"#ifdef __cplusplusextern "C" {#endif #include #include #include #include #ifdef __cplusplus};#endif#define ENCODE_SIZE 102原创 2017-09-01 11:04:25 · 609 阅读 · 0 评论 -
ios ffmpeg audio decode
ffmepg解码音频。#import "FFMpegAudioDecoder.h"#ifdef __cplusplusextern "C" {#endif #include #include #include #include #ifdef __cplusplus};#endif@interface FFMpegAudioDecoder(){原创 2017-09-01 11:07:37 · 427 阅读 · 0 评论 -
ios libx264 h264 encode
#import "X264Encode.h"#include "x264.h"#define KEY_FRAME_INTERVAL 30typedef struct{ x264_param_t * param; x264_t *handle; x264_picture_t * picture; x264_nal_t *nal;} X264Encode原创 2017-09-01 14:43:49 · 372 阅读 · 0 评论 -
VTDecompressionSessionDecodeFrame -8969
解码时候,需要用h264数据长度替换0x00 0x00 0x00 0x01,注意长度大小端,否则会出现-8969错误-(int)decode:(char*)buf len:(int)len { CVPixelBufferRef outputPixelBuffer = NULL; CMBlockBufferRef blo原创 2017-08-15 15:09:28 · 1704 阅读 · 0 评论 -
CMSampleBufferRef获取h264 char*数据及sps/pps
直接看代码:CMBlockBufferRef blockBuffer = CMSampleBufferGetDataBuffer(sampleBuf); size_t len_offset = 0 , len_total = 0 ; char * addr = NULL ; OSStatus status = CMBlock原创 2017-05-23 12:10:00 · 1844 阅读 · 0 评论 -
iOS GPUimageCamera锁屏崩溃解决方法
- (void)observeGlobalNotifications{ [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onApplicationWillResignActive) name:UIApplicationWillResignActiveNotification object:原创 2017-04-27 16:47:35 · 850 阅读 · 0 评论 -
iOS 使用mp4v2合成的视频注意事项
使用MP4v2合成视频,发现AVPlayer播放都是从第二个关键帧开始播放,调试发现原来第一个关键帧前面有个SEI。比如iOS,使用AVAssetWriter录制视频,再使用AVAssetReader读取h264数据,再通过MP4v2合成视频,读取到的第一个关键帧是包含一个SEI的。读到的第一个h264 buf格式是这样的: SEI长原创 2017-06-08 20:36:10 · 1837 阅读 · 0 评论 -
ios build fdk-aac
1、下载fdk-aachttps://github.com/mstorsjo/fdk-aac2、需要安装automake libtool,运行:brew install automake libtool3、下载build脚本https://github.com/kewlbear/fdk-aac-build-script-for-iOS原创 2017-08-16 17:42:52 · 1384 阅读 · 0 评论 -
iOS ffmpeg + libfdk-aac
1、编译fdk-aac:http://blog.csdn.net/u011270282/article/details/772593202、编译ffmpeg脚本:https://github.com/kewlbear/FFmpeg-iOS-build-script3、build-ffmpeg.sh修改#FDK_AAC=`pwd`/..原创 2017-08-17 11:26:20 · 1470 阅读 · 0 评论 -
iOS获取音频设备信息
方法1: CFDictionaryRef descDictRef = nil; UInt32 refSize = sizeof(descDictRef); status = AudioSessionGetProperty(kAudioSessionProperty_AudioRouteDescription, &refSize,原创 2017-07-26 10:15:36 · 1352 阅读 · 0 评论 -
iOS build faad
1、新建目录xxx,下载faad(http://downloads.sourceforge.net/faac/faad2-2.7.tar.gz)到xxx,解压,重命名为faad。2、编写build.sh,把下面这段抄进去#!/bin/shCONFIGURE_FLAGS="--enable-static --with-pic"原创 2017-08-17 17:03:39 · 729 阅读 · 0 评论 -
iOS 使用FFmpeg
原文:http://www.jianshu.com/p/ec432a8f5729如何在iOS上集成 FFmpeg,来,博主带大家往坑里走了。我们此次入坑需要的工具:1、gas-preprocessor2、yasm 1.2.03、FFmpeg-iOS-build-script(ps:这个脚本真是业界良心呀,帮我们省下了不少心。)好了,刀已经有了,但是怎么优雅的转载 2017-08-11 14:38:06 · 478 阅读 · 0 评论 -
ios ffmpeg+libx264
1、编译x264脚本:https://github.com/depthlove/x264-iOS-build-script2、编译ffmpeg脚本:https://github.com/kewlbear/FFmpeg-iOS-build-script3、build-ffmpeg.sh修改:#X264=`pwd`原创 2017-08-11 16:13:13 · 713 阅读 · 0 评论