[Libav-user] get RGB values from ffmpeg frame
Navin
nkipe at tatapowersed.com
Tue Nov 20 04:22:09 CET 2012
Hi! Glad to be part of this mailing list.
What I wanted to create, was a program which would receive a streaming
video, and when it decodes a frame of the video into either a bitmap
format or just pure RGB (perhaps stored in a char array), it would
notify another program that it has received a frame, and the other
program would take the RGB values and display it.
I've already asked this question here:
http://ffmpeg.zeranoe.com/forum/viewtopic.php?f=15&t=805
and rogerdpack told me to post my question on the libav mailing list.
I have been through many websites, but they either use img_convert
(which doesn't work) or sws_scale, which crashes when I try to use it
with RGB.
Could anyone help with a complete piece of code which can give me the
RGB values of a frame?
This is a part of the YUV conversion that I tried initially.
i=0;
while(av_read_frame(pFormatCtx, &packet) >= 0)
{
// Is this a packet from the video stream?
if(packet.stream_index==videoStream)
{
// Decode video frame
avcodec_decode_video2(pCodecCtx, pFrame, &frameFinished, &packet);
// Did we get a video frame?
if(frameFinished)
{
// Convert the image into YUV format that SDL uses
sws_scale( sws_ctx, (uint8_t const * const *)pFrame->data,
pFrame->linesize, 0, pCodecCtx->height, pict.data, pict.linesize );
--
Nav
More information about the Libav-user
mailing list