загрузка или экспорт большого видео высасывает память и вызывает сбой ... как я могу разбить его? - PullRequest
6 голосов
/ 07 июля 2011

Я реализовал способ загрузки видео на YouTube и т. Д. С помощью составного поста или сохранения видео в ролике камеры локально. Тем не менее, с большими видео я наблюдаю из-за слишком большого объема памяти, потому что в настоящее время мне нужно поместить все видео в память, чтобы опубликовать или сохранить его.

Какие шаги я могу предпринять, чтобы разбить большое видео на управляемые куски?

1 Ответ

1 голос
/ 10 июля 2011

Вы можете сохранить свое видео в файл и использовать nsstream для чтения фрагментов видео и отправки их. Вам нужно будет сохранять некоторое состояние, чтобы помнить, что вы отправили и что осталось, но это не должно быть слишком плохо для реализациинапример

  BOOL done=FALSE;
   NSInputStream *stream=nil;

   NSString *myFile=@"..."; //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      
   }
...