我已經實現了使用多部分文章將視頻上傳到youtube等方式,或將視頻保存到本地的相機卷。但是,對於大型視頻,由於內存佔用太大,我會受到監視,因爲目前我必須將整個視頻存儲在內存中才能發佈或保存。上傳或導出大視頻會導致內存不足並導致崩潰......我該如何分解它?
什麼是我可以採取一個大的視頻分解成可管理的塊的步驟是什麼?
我已經實現了使用多部分文章將視頻上傳到youtube等方式,或將視頻保存到本地的相機卷。但是,對於大型視頻,由於內存佔用太大,我會受到監視,因爲目前我必須將整個視頻存儲在內存中才能發佈或保存。上傳或導出大視頻會導致內存不足並導致崩潰......我該如何分解它?
什麼是我可以採取一個大的視頻分解成可管理的塊的步驟是什麼?
您可以將視頻保存到一個文件,並使用nsstream讀取視頻數據塊,並送他們,你就必須保持一定的狀態要記住什麼ü發送,還剩下些什麼,但它不應該是太糟糕執行,例如
BOOL done=FALSE;
NSInputStream *stream=nil;
NSString *[email protected]"..."; //your file path
stream=[[NSInputStream alloc] initWithFileAtPath:myFile ];
while(!done)
{
int chunkSize=500000; //500 kb chunks
uint8_t buf[chunkSize];
//reads into the buffer and returns size read
NSInteger size=[stream read:buf maxLength:chunkSize];
NSLog(@"read %d bytes)", size);
NSData * datum=[[NSData alloc] initWithBytes:buf length:size];
//when we actually read something thats less than our chunk size we are done
if(size<chunkSize)
done=TRUE;
//send data
}
您是否使用HTTP庫,如ASIHTTPRequest,或者你在自己動手? –
我目前沒有使用ASIHTTPRequest。 – akaru
我假設你自己在做這個。我唯一能想到的其他事情就是使用內存映射文件。如[此](http://stackoverflow.com/questions/6172919/ios-memory-mapped-files-and-low-memory-scenarios) –