Storing raw h.264 video to a app file

Hey everything,

So I’m a recent grad thats learning on the fly. They never taught us iOS development in my CS program.

With that, i have a raw h.264 camera feed that has some unque properties. My AV guy needs me to make in app file of this raw streaming H.264 video.

So i need to create a file for a raw h.264 video stream. I don’t really know what type of file format to use here. I just need the data to be exactly what’s being streamed from the camera. This video stream is sent from a third party camera in a buffer with

unit8_t (which is the stream data type and int length ( which is the length of the stream).

I need to be able to record this in its raw form to a file. Not a text file preferably

Can you create a binary file in iOS?

Can raw data be put into a .MP4 File?

here's my code so far

NOTE: the camera method, when called retires the steaming video data from the camera.

-(void) camera:(DJICamera*)camera didReceivedVideoData:(uint8_t*)videoBuffer length:(int)length

{

/

uint8_t* pBuffer = (uint8_t*)malloc(length);

/

memcpy(pBuffer, videoBuffer, length);

NSArray *paths = NSSearchPathForDirectoriesInDomains

(NSDocumentDirectory, NSUserDomainMask, YES);

NSString *documentsDirectory = [paths objectAtIndex:0];

if (_counter1==0){

_counter1++;

[[NSFileManager defaultManager] createFileAtPath:fileName contents:nil attributes:nil];

}

NSMutableData *rawDataFinal=[NSMutableData dataWithBytes:&pBuffer length:length];

NSFileHandle *fileHandler = [NSFileHandle fileHandleForUpdatingAtPath:fileName];

[fileHandler seekToEndOfFile];

[fileHandler writeData:pBuffer];

_counter2++;

if(_counter2==200){

[fileHandler closeFile];

}

==>this is where the raw data goes to be decoded [[[VideoPreviewer instance] dataQueue] push:pBuffer length:length];

}.

So to summroize, i want the raw data that sent via pBuffer and it's length (which is a raw h.264 video stream) to be save to a file that i can access inside the app file directories. As of write now, when i run this code, it translates the bytes to something that ins't a raw data stream to a ( in a txt file).

What its creating.

here's a sample of what this code is creating and what i don’t want because i now this isn't the correct format of raw steaming video data.

rawdata.txt

______________

vnG Z G ‡i p BUC P£‡F p:œ êe. fl

cá p  p Z G –:œ ,∏2 ÄÙ p ‡ Bp 8@kG ¯ ÄÙ p  p ∫ùÊà  p Z G ;œ Ëã2 ÄÙ p Z G @@kG †P”F ¿;œ xë2 8@kG ¯ ÄÙ p ‡ Bp 8@kG ÄÙ p ‡ ÄäTò ∏P”F ÄÙ p ‡ Bp 8@kG ¯ ÄÙ p ‡  ˝ìC ≠eá †P”F `cá ¯ ÄtD P%cá £D ¿›î ®0Zò Ÿ t 8@kG ∏B›î cFt ?œ ∏ .É @÷ p fæ˚ °0 ˇ ´ à .É @œ @œ 0?œ »˝jî @œ ¿•“o p?œ $˝jî ¯Œjî DRHT Ö

à .É ¿•“o

¿◊ h¿∆ @œ « Ä @ @œ P@œ ∞ ´ ˇ vnG ‡i p Ç G ‡i p BUC P£‡F p:œ êe. fl

cá p  p Ç G –:œ ,∏2 ÄÙ p ‡;Bp 8@kG ¯ ÄÙ p  p ∫ùÊà  p Ç G ;œ Ëã2 ÄÙ p Ç G @@kG †P”F ¿;œ xë2 8@kG ¯ ÄÙ p ‡;Bp 8@kG ÄÙ p ÄÙ p ‡ ÄäTò ∏P”F ÄÙ p ‡;Bp 8@kG ¯ ÄÙ p ‡  ˝ìC ≠eá †P”F `cá ¯ ÄtD P%cá £D ¿›î ®0Zò Ÿ t 8@kG ∏B›î cFt ?œ ∏ .É @÷ p fæ˚ °0 ˇ ´ à .É @œ @œ 0?œ »˝jî @œ ¿•“o p?œ $˝jî ¯Œjî DRHT Ö

à .É ¿•“o

¿◊ h¿∆ @œ « Ä @ @œ P@œ ∞ ´ ˇ vnG ‡i p ™ G ‡i p BUC P£‡F p:œ êe. fl

cá p  p ™ G –:œ ,∏2 ÄÙ p cá ¯ ÄtD P%cá £D ¿›î ®0Zò Ÿ t 8@kG ∏B›î cFt ?œ ∏ .É @÷ p fæ˚ °0 ˇ ´ à .É @œ @œ 0?œ »˝jî @œ ¿•“o p?œ $˝jî ¯Œjî DRHT Ö

à .É ¿•“o

¿◊ h¿∆ @œ « Ä @ @œ P@œ ∞ ´ ˇ ÊéG ‡i p “ G ‡i p BUC P£‡F p:œ êe. fl

cá p  p “ G –:œ ,∏2 ÄÙ p cá ¯ ÄtD P%cá £D ¿›î ®0Zò Ÿ t 8@kG ∏B›î cFt ?œ ∏ .É @÷ p fæ˚ °0 ˇ ´ à .É @œ @œ 0?œ »˝jî @œ ¿•“o p?œ $˝jî ¯Œjî DRHT Ö

à .É ¿•“o

¿◊ h¿∆ @œ « Ä @ @œ P@œ ∞ ´ ˇ ÊéG ‡i p G ‡i p BUC P£‡F p:œ êe. fl

cá p  p G –:œ ,∏2 ÄÙ p @cá ¯ ÄtD P%cá £D ¿›î ®0Zò Ÿ t 8@kG ∏B›î cFt ?œ ∏ .É @÷ p fæ˚ °0 ˇ ´ à .É @œ @œ 0?œ »˝jî @œ ¿•“o p?œ $˝jî ¯Œjî DRHT Ö

à .É ¿•“o

¿◊ h¿∆ @œ « Ä @ @œ P@œ ∞ ´ ˇ vnG ‡i p DG ‡i p BUC P£‡F p:œ êe. fl

cá p  p DG –:œ ,∏2 ÄÙ p `cá ¯ ÄtD P%cá £D ¿›î ®0Zò Ÿ t 8@kG ∏B›î cFt ?œ ∏ .É @÷ p fæ˚ °0 ˇ ´ à .É @œ @œ 0?œ »˝jî @œ ¿•“o p?œ $˝jî ¯Œjî DRHT Ö

à .É ¿•“o

¿◊ h¿∆ @œ « Ä @ @œ P@œ ∞ ´ ˇ ÊéG ‡i p lG ‡i p BUC P£‡F p:œ êe. fl

cá p  p lG –:œ ,∏2 ÄÙ p Äcá ¯ ÄtD P%cá £D ¿›î ®0Zò Ÿ t 8@kG ∏B›î cFt ?œ ∏ .É @÷ p fæ˚ °0 ˇ ´ à .É @œ @œ 0?œ »˝jî @œ ¿•“o p?œ $˝jî ¯Œjî DRHT Ö

à .É ¿•“o

¿◊ h¿∆ @œ « Ä @ @œ P@œ ∞ ´ ˇ vnG ‡i p îG ‡i p BUC P£‡F p:œ êe. fl

cá p  p îG –:œ ,∏2 ÄÙ p †cá ¯ ÄtD P%cá £D ¿›î ®0Zò Ÿ t 8@kG ∏B›î cFt ?œ ∏ .É @÷ p fæ˚ °0 ˇ ´ à .É @œ @œ 0?œ »˝jî @œ ¿•“o p?œ $˝jî ¯Œjî DRHT Ö

à .É ¿•“o

¿◊ h¿∆ @œ « Ä @ @œ P@œ ∞ ´ ˇ ¯kG ‡i p ºG ‡i p BUC P£‡F p:œ êe. fl

cá p  p ºG –:œ ,∏2 ÄÙ p ¿cá ¯ ÄtD P%cá £D ¿›î ®0Zò Ÿ t 8@kG ∏B›î cFt ?œ ∏ .É @÷ p fæ˚ °0 ˇ ´ à .É @œ @œ 0?œ »˝jî @œ ¿•“o p?œ $˝jî ¯Œjî DRHT Ö

à .É ¿•“o

¿◊ h¿∆ @œ « Ä @ @œ P@œ ∞ ´ ˇ ¯kG ‡i p ‰G ‡i p BUC P£‡F p:œ êe. fl

cá p  p ‰G –:œ ,∏2 ÄÙ p ‡cá ¯ ÄtD P%cá £D ¿›î ®0Zò Ÿ t 8@kG ∏B›î cFt ?œ ∏ .É @÷ p fæ˚ °0 ˇ ´ à .É @œ @œ 0?œ »˝jî @œ ¿•“o p?œ $˝jî ¯Œjî DRHT Ö

à .É ¿•“o

¿◊ h¿∆ @œ « Ä @ @œ P@œ ∞ ´ ˇ ÄW‘F ‡i p‡

G ‡i p BUC P£‡F p:œ êe. fl

cá p  p

G ‡ –:œ ,∏2 ÄÙ p =Bp 8@kG ¯ ÄÙ p  p ∫ùÊà  p

G ‡ ;œ Ëã2 ÄÙ p ‡

G @@kG †P”F ¿;œ xë2 8@kG ¯ ÄÙ p =Bp 8@kG ÄÙ p ÄÙ p ‡ ÄäTò ∏P”F ÄÙ p =Bp 8@kG ¯ ÄÙ p ‡  ˝ìC ≠eá †P”F `cá ¯ ÄtD P%cá £D ¿›î ®0Zò Ÿ t 8@kG ∏B›î cFt ?œ ∏ .É @÷ p ¯kG ‡i p 4

G ‡i p BUC P£‡F p:œ êe. fl

cá p  p 4

G –:œ ,∏2 ÄÙ p =Bp 8@kG ¯ ÄÙ p  p ∫ùÊà  p 4

G ;œ Ëã2 ÄÙ p 4

G @@kG †P”F ¿;œ xë2 8@kG ¯ ÄÙ p =Bp 8@kG ÄÙ p ÄÙ p ‡ ÄäTò ∏P”F ÄÙ p =Bp 8@kG ¯ ÄÙ p ‡  ˝ìC ≠eá †P”F `cá ¯ ÄtD P%cá £D ¿›î ®0Zò Ÿ t 8@kG ∏B›î cFt ?œ ∏ .É @÷ p fæ˚ °0 ˇ ´ à .É @œ @œ 0?œ »˝jî @œ ¿•“o p?œ $˝jî ¯Œjî DRHT Ö

à .É ¿•“o

¿◊ h¿∆ @œ « Ä @ @œ P@œ ∞ ´ ˇ ¯kG ‡i p \

G ‡i p BUC P£‡F p:œ êe. fl

cá p  p \

G –:œ ,∏2 ÄÙ p @=Bp 8@kG ¯ ÄÙ p  p ∫ùÊà  p \

G ;œ Ëã2 ÄÙ p \

G @@kG †P”F ¿;œ xë2 8@kG ¯ ÄÙ p @=Bp 8@kG ÄÙ p ÄÙ p ‡ ÄäTò ∏P”F ÄÙ p @=Bp 8@kG ¯ ÄÙ p ‡  ˝ìC ≠eá †P”F `cá ¯ ÄtD P%cá £D ¿›î ®0Zò Ÿ t 8@kG ∏B›î cFt ?œ ∏ .É @÷ p fæ˚ °0 ˇ ´ à .É @œ @œ 0?œ »˝jî @œ ¿•“o p?œ $˝jî ¯Œjî DRHT Ö

à .É ¿•“o

¿◊ h¿∆ @œ « Ä @ @œ P@œ ∞ ´ ˇ ¯kG ‡i p Ñ

G ‡i p BUC P£‡F p:œ êe. fl

cá p  p Ñ

G –:œ ,∏2 ÄÙ p `=Bp 8@kG ¯ ÄÙ p  p ∫ùÊà  p Ñ

G ;œ Ëã2 ÄÙ p Ñ

G @@kG †P”F ¿;œ xë2 8@kG ¯ ÄÙ p `=Bp 8@kG ÄÙ p ÄÙ p ‡ ÄäTò ∏P”F ÄÙ p `=Bp 8@kG ¯ ÄÙ p ‡  ˝ìC ≠eá †P”F `cá ¯ ÄtD P%cá £D ¿›î ®0Zò Ÿ t 8@kG ∏B›î cFt ?œ ∏ .É @÷ p fæ˚ °0 ˇ ´ à .É @œ @œ 0?œ »˝jî @œ ¿•“o p?œ $˝jî ¯Œjî DRHT Ö

à .É ¿•“o

¿◊ h¿∆ @œ « Ä @ @œ P@œ ∞ ´ ˇ ¯kG ‡i p ¨

G ‡i p BUC P£‡F p:œ êe. fl

cá p  p ¨

G –:œ ,∏2 ÄÙ p Ä=Bp 8@kG ¯ ÄÙ p  p ∫ùÊà  p ¨

G ;œ Ëã2 ÄÙ p ¨

G @@kG †P”F ¿;œ xë2 8@kG ¯ ÄÙ p Ä=Bp 8@kG ÄÙ p ÄÙ p ‡ ÄäTò ∏P”F ÄÙ p Ä=Bp 8@kG ¯ ÄÙ p ‡  ˝ìC ≠eá †P”F `cá ¯ ÄtD P%cá £D ¿›î ®0Zò Ÿ t 8@kG ∏B›î cFt ?œ ∏ .É @÷ p fæ˚ °0 ˇ ´ à .É @œ @œ 0?œ »˝jî @œ ¿•“o p?œ $˝jî ¯Œjî DRHT Ö

à .É ¿•“o

¿◊ h¿∆ @œ « Ä @ @œ P@œ ∞ ´ ˇ ÊéG ‡i p ‘

G ‡i p BUC P£‡F p:œ êe. fl

cá p  p ‘

G –:œ ,∏2 ÄÙ p †=Bp 8@kG ¯ ÄÙ p  p ∫ùÊà  p ‘

G ;œ Ëã2 ÄÙ p ‘

G @@kG †P”F ¿;œ xë2 8@kG ¯ ÄÙ p †=Bp 8@kG ÄÙ p ÄÙ p ‡ ÄäTò ∏P”F ÄÙ p †=Bp 8@kG ¯ ÄÙ p ‡  ˝ìC ≠eá †P”F `cá ¯ ÄtD P%cá £D ¿›î ®0Zò Ÿ t 8@kG ∏B›î cFt ?œ ∏ .É @÷ p fæ˚ °0 ˇ ´ à .É @œ @œ 0?œ »˝jî @œ ¿•“o p?œ $˝jî ¯Œjî DRHT Ö

à .É ¿•“o

¿◊ h¿∆ @œ « Ä @ @œ P@œ ∞ ´ ˇ ÊéG ‡i p ¸

G ‡i p BUC P£‡F p:œ êe. fl

cá p  p ¸

G –:œ ,∏2 ÄÙ p ¿=Bp 8@kG ¯ ÄÙ p  p ∫ùÊà  p ¸

G ;œ Ëã2 ÄÙ p ¸

G @@kG †P”F ¿;œ xë2 8@kG ¯ ÄÙ p ¿=Bp 8@kG ÄÙ p ÄÙ p ‡ ÄäTò ∏P”F ÄÙ p ¿=Bp 8@kG ¯ ÄÙ p ‡  ˝ìC ≠eá †P”F `cá ¯ ÄtD P%cá £D ¿›î ®0Zò Ÿ t 8@kG ∏B›î cFt ?œ ∏ .É @÷ p fæ˚ °0 ˇ ´ à .É @œ @œ 0?œ »˝jî @œ ¿•“o p?œ $˝jî ¯Œjî DRHT Ö

à .É ¿•“o

¿◊ h¿∆ @œ « Ä @ @œ P@œ ∞ ´ ˇ ¯kG ‡i p $ G ‡i p BUC P£‡F p:œ êe. fl

cá p  p $ G –:œ ,∏2 ÄÙ p ‡=Bp 8@kG ¯ ÄÙ p  p ∫ùÊà  p $ G ;œ Ëã2 ÄÙ p $ G @@kG †P”F ¿;œ xë2 8@kG ¯ ÄÙ p ‡=Bp 8@kG ÄÙ p ÄÙ p ‡ ÄäTò ∏P”F ÄÙ p ‡=Bp 8@kG ¯ ÄÙ p ‡  ˝ìC ≠eá †P”F `cá ¯ ÄtD P%cá £D ¿›î ®0Zò Ÿ t 8@kG ∏B›î cFt ?œ ∏ .É @÷ p fæ˚ °0 ˇ ´ à .É @œ @œ 0?œ »˝jî @œ ¿•“o p?œ $˝jî ¯Œjî DRHT Ö

à .É ¿•“o

¿◊ h¿∆ @œ « Ä @ @œ P@œ ∞ ´ ˇ ¯kG ‡i p L G ‡i p BUC P£‡F p:œ êe. fl

cá p  p L G –:œ ,∏2 ÄÙ p >Bp 8@kG ¯ ÄÙ p  p ∫ùÊà  p L G ;œ Ëã2 ÄÙ p L G @@kG †P”F ¿;œ xë2 8@kG ¯ ÄÙ p >Bp 8@kG ÄÙ p ÄÙ p ‡ ÄäTò ∏P”F ÄÙ p >Bp 8@kG ¯ ÄÙ p ‡  ˝ìC ≠eá †P”F `cá ¯ ÄtD P%cá £D ¿›î ®0Zò Ÿ t 8@kG ∏B›î cFt ?œ ∏ .É @÷ p fæ˚ °0 ˇ ´ à .É @œ @œ 0?œ »˝jî @œ ¿•“o p?œ $˝jî ¯Œjî DRHT Ö

STEPS TO REPRODUCE

see above

APP NAME AND ID IN APP STORE

not created yet still in progess

eaj5@buffalo.edu

---------------------------------------------------------------------

Storing raw h.264 video to a app file
 
 
Q