2011-05-23 52 views

回答

1

市面上有許多不同的YUV格式的大量的,作爲一個起點看http://www.fourcc.org/yuv.php

您需要更具體的,因爲「半平面」和「平面」,在你的問題並沒有真正告訴如何數據被格式化。

但作爲一般性建議,它只是連續放置的原始數據。您只需從插播內容中讀取正確數量的數據,然後使用您最喜歡的語言將其寫入外流。

4

如果您使用ffmpeg的swscale庫,以下代碼可能會對您有所幫助。

static struct SwsContext *swsContext; 

swsContext = sws_getContext(c->width, c->height,PIX_FMT_NV21, 
     c->width, c->height, 
     PIX_FMT_YUV420P, 
     SWS_FAST_BILINEAR, NULL, NULL, NULL); 

avpicture_fill((AVPicture*)picture, data, PIX_FMT_NV21, c->width, c->height); 

avpicture_fill((AVPicture*)outpic, outbuffer, PIX_FMT_YUV420P, c->width, c->height); 

sws_scale(swsContext, picture->data, picture->linesize, 0, c->height, outpic->data, outpic->linesize); 

sws_freeContext(swsContext);