Solved it guys. I was calling av_codec_encode_video2 twice for some reason, and the second call was encoding a blank frame instead of the one that had data decoded into it. Silly mistake :p
Thanks for the replies! On Mon, May 6, 2013 at 7:51 PM, Alex Cohn <[email protected]> wrote: > On Sun, May 5, 2013 at 2:59 PM, yy-zed <[email protected]> wrote: > > I've written a piece of C++ code that can capture webcam video frame, >> decode >> them, convert them to YUV420P, encode them and then write them to a file. >> If >> I use the mpeg2 codec and write to a .mpg file, everything works >> perfectly. >> But, if I use flv, then the output produced is just a green screen. I'm >> not >> sure if there are different encoder settings I need to set for encoding >> flv >> video?Or maybe I'm doing something wrong in sws_scale? Here's my code(the >> relevant parts): >> > > >> //Read a video frame in >> >> av_read_frame(pFormatCtx,&packet); >> >> //Decode the contents of packet into pFrame >> avcodec_decode_video2(pCodecCtx,pFrame,&frameFinished,&packet); >> > > From your snippet, it is not clear what pCodecCtx is, but anyways it's > good practice to check the return code from avcodec_decode_video2() and > frameFinished, before you pass pFrame to sws_scale(). > > BR, > Alex > > _______________________________________________ > Libav-user mailing list > [email protected] > http://ffmpeg.org/mailman/listinfo/libav-user > >
_______________________________________________ Libav-user mailing list [email protected] http://ffmpeg.org/mailman/listinfo/libav-user
