i have a raw h264 stream coming in from cameras with a custom API. data gets put into a callback function in my c code.
i need to wrap this as mp4. i’m using ffmpeg to do this now, but only after the h264es file has been written and closed, so very time consuming on a beaglebone-like processor.
i have been trying to write this data to a named pipe and feed that to ffmpeg but can not get this to work. maybe i’m not opening/closing pipes properly, it hangs. or not specifying the piping properly for ffmpeg.
is it possible to feed the buffered data more directly to ffmpeg? or, how do i set up the named pipe to work properly?
first i’m opening the fifo like this
g_fifoname="/tmp/fifocam1.h264";
mkfifo(g_fifoname, 0666); // make the fifos
fd_fifo[ch+brd*2] = open(g_fifoname, O_RDWR);
then, i’m calling ffmpeg like this, at this moment anyway. trying many things.
char* execargs[]={PATH_TO_FFMPEG,"-re","-y","-framerate","30","-f","h264","-video_size","1920x1080","-i",g_fifname,"-c:v","copy","-an",pathname, (char*)0};
i probably got the ffmpeg call wrong. argh. i open the fifo first, then start ffmpeg. when streaming is stopped i close fifo’s, then close ffmpeg output file.
send my buffer to stdin and get ffmpeg to read stdout?
make the named fifo work?
thanks all,
Michael