I am writing a program that writes a video stream to FFserver's HTTP socket. I cannot use the ffmpeg command line tool because it cannot read my video stream source, so I must read the stream myself. I am stuck trying to get past this problem: the program writes a single frame or two to FFserver and then dies on a SIGPIPE trying to write more. FFserver indicates it received a POST of 4096 bytes. I have been unable to determine why this is and have no real idea what the right way to do this is.
The main part of the program works like this, in a loop Read location of frame Decode frame into an AVFrame, feed this into an encoder using the FFM format and CODEC_ID_MPEG4 as the video codec. (I have also tried MPEG-1 here but ultimately its lack of frame rate flexibility makes it unsuitable) FFM encoder returns an AVPacket which is then fed to av_write_frame. Go back to top, looking for more frames. The loop succeeds once or twice and then SIGPIPE is thrown on av_write_frame on the next iteration of the loop. Does anyone know what I might be doing wrong here? Help would be greatly appreciated. Best Regards, Andrew Barr _______________________________________________ libav-api mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-api
