[FFmpeg-user] Feeding FFMPEG from buffer in c code RAW H264 to MP4 wrapping, or named fifo?

abraxas1 abraxas1 at gmail.com
Tue May 9 00:47:06 EEST 2017


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.

ffmpeg is so powerful and frustrating to wrangle. thanks all,


More information about the ffmpeg-user mailing list