Hi Dolevo Jay, I have the doc/examples programs compiled and running. I use the program demuxing.c to decode an AVI file. From the source code, it looks it calls its own subroutine decode_packet() to decode the next video or audio packet, and that subroutine calls avcodec_decode_video2()to decode the next frame. Now i want to encode this frames in h264.
Any suggestion is appreciated. Thanks 2013/10/16 Dolevo Jay <[email protected]> > Hi, > > If your raw file is in yuv 420 format, you can simply read from the file > as if you are reading from a text file and push it into the encoder. The > important thing here is going to be how many bytes to read but you can > calculate it by looking at the resolution information. If your raw file > contains RGB frames, you need to convert them first to yuv420 before > pushing into encoder. If you need further help, you may send a private > email. > > ------------------------------ > Date: Wed, 16 Oct 2013 16:28:29 +0200 > From: [email protected] > > To: [email protected] > Subject: Re: [Libav-user] Applied pad on the decoded frame > > Hi Dolevo Jay, > > i have a avi and mp4 file. The avcodec_encode_video2 function takes input > raw video data from frame, so i demux my file and i obtain a raw video > file; now i want encode it, so how i can open the raw file, read the raw > frames and encode them into h264?? > > Thanks for your help!! > > Regards > > > 2013/10/15 Dolevo Jay <[email protected]> > > > > > From: [email protected] > > Date: Mon, 14 Oct 2013 15:47:05 -0700 > > > To: [email protected] > > Subject: Re: [Libav-user] Applied pad on the decoded frame > > > > On Oct 14, 2013, at 4:46 AM, Dolevo Jay <[email protected]> wrote: > > > > > I have encoder and decoder application in separate projects. I use > x264 to encode the incoming frames and use libav to decode them. If the > frame has a specific resolution like 1366 x 768, the decode frame contains > extra black border at the right side of the frame. I have debugged it and > realized that the av_pic.linesize[0] is 50 more than the linesize during > the encoding. > > > Here is the code: > > > > > > lengthDec = avcodec_decode_video2(c1, av_pic, &pic, &pkt); > > > if (pic) > > > { > > > avpicture_fill((AVPicture *)rgbFrame, RGBimg, PIX_FMT_RGB32, w, h); > > > sws_scale(ctx, av_pic->data, av_pic->linesize, 0, h, rgbFrame->data, > rgbFrame->linesize); > > > } > > > > > > So, in this code, I decode the packet and convert the decoded data > into the rgb. > > > Why does the avcodec_decode_video2 returns a padded linesize? > > > Could anyone tell me how I can eliminate the black border? > > > > The actual encoded data has padding, added to make encoding and decoding > more efficient. The returned frame has the padding still, since it's more > efficient again - just decoding into a buffer without having to copy all > the lines. > > > > That's very standard. Expect to see that in almost all codecs and frame > sizes. > > > > You need to use the viewable width, not the linesize when scaling. > > > > Bruce > > _______________________________________________ > > Libav-user mailing list > > [email protected] > > http://ffmpeg.org/mailman/listinfo/libav-user > > > Thanks for your reply. I have described the problem in detail with some > pictures here: http://forum.doom9.org/showthread.php?t=169036 > It is really strange that it produces no black part (bar) when I set the > width = width+1 when calling sws_getContext. Could it be a bug in swscale > since I do no scaling? > > Thanks a lot. > > _______________________________________________ > Libav-user mailing list > [email protected] > http://ffmpeg.org/mailman/listinfo/libav-user > > > > > -- > Francesco Damato > > _______________________________________________ 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 > > -- Francesco Damato
_______________________________________________ Libav-user mailing list [email protected] http://ffmpeg.org/mailman/listinfo/libav-user
