Hi. A brain-teaser for your coffee break... (but I don't know the solution!)...

I'm using openRTSP to read incoming streaming mpeg4 video over ethernet and 
store it on a micro SD card. The aim is to then download the mp4 file(s) over 
the USB port onto a host pc for subsequent viewing. The input video stream 
comes from our thermal imaging camera: 320x240 at 10fps. The Linux target is an 
ARM-based 3rd party embedded card with ethernet, SD card and USB connections.

It's "so nearly" working! I can successfully record video onto the micro SD 
card and play it back reliably... which proves it's all possible. The devil is 
in the detail though...

Once I've started openRTSP running in the background from the command line it 
seems to be that: 

IF (the recording is => 2 minutes long) then it is successfully saved onto the 
micro SD card... I can turn off the camera straight after stopping the 
recording and "all is well" when I come to play back the file over USB
ELSE a short recording (< 2 minutes) is only successfully saved onto the micro 
SD card if I wait about 2 minutes from starting the recording to subsequently 
stopping it and turning off the camera.
 
The only code I've written is a short bit of C that establishes if the record 
button has been pressed, a bit of filename control and ethernet link checking. 
Oh, and the following command line that gets run if (and only if) the record 
button has been pressed and the ethernet is up and running (established by a 
successful "ping"):

strcpy(start_command_str,"\n");
strcat(start_command_str, "./openRTSP -V -b 50000 -4 -w 320 -h 240 -f 10 
rtsp://10.133.1.20:554/tic04 >  ");
strcat(start_command_str, "/mnt/uSDcard/");
strcat(start_command_str, new_filename);
strcat(start_command_str," &\n");
system(start_command);

On further investigation it appears that the micro SD card is "somehow" put 
into read only mode for about 2 minutes from the point at which I invoke 
openRSTP. I can't even write to a text file on the micro SD card during that 
magic 2 minute period.

Saying that though, in order to be able to stop the recording session I 
redirect the output of "ps" to a text file (after about 1 second) and use 
fscanf to find the Process ID of the existing openRTSP process from this file. 
So, creating this file within the 2 minutes worked but I can't seem to write to 
any others. I fopen it as readonly and fclose it once I've found the Process ID 
(pid_str). Confusing.

Once the record button has been pressed to stop recording (it's polled many 
times a second) I issue the following :

strcpy(stop_command_str,"kill -HUP ");
strcat(stop_command_str, pid_str);
strcat(stop_command_str, " \n");
system(stop_command_str);

This all seems to work fine. It's the "2 minute thing" that's getting me. I 
haven't got the luxury of making software changes on the camera. I'd really 
appreciate any help you may be able to offer and I'm more than happy to provide 
more details on the implementation, background, output logs etc. I'm not and 
expert in C or Linux - but I'm not usually defeated.

Many thanks and I look forward to hearing from you soon.

Alan



Sent by E2V TECHNOLOGIES PLC or a member of the E2V group of companies. 
A company registered in England and Wales. 
Company number; 04439718. 
Registered address; 106 Waterhouse Lane, Chelmsford, Essex, CM1 2QU, UK.

______________________________________________________
________________
This email has been scanned by the MessageLabs Email Security System.
For more information please visit http://www.messagelabs.com/email 
______________________________________________________________________
_______________________________________________
live-devel mailing list
[email protected]
http://lists.live555.com/mailman/listinfo/live-devel

Reply via email to