青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

牽著老婆滿街逛

嚴以律己,寬以待人. 三思而后行.
GMail/GTalk: yanglinbo#google.com;
MSN/Email: tx7do#yahoo.com.cn;
QQ: 3 0 3 3 9 6 9 2 0 .

使用FFMPEG SDK解碼流數據

轉載自:http://blog.csdn.net/gwinner/article/details/5462855

本文以H264視頻流為例,講解解碼流數據的步驟。

為突出重點,本文只專注于討論解碼視頻流數據,不涉及其它(如開發環境的配置等)。如果您需要這方面的信息,請和我聯系。

  • 準備變量

定義AVCodecContext。如果您使用類,可以定義成類成員。我這里定義成全局變量。

 

static AVCodecContext * g_pCodecCtx = NULL;

定義一個AVFrame,AVFrame描述一個多媒體幀。解碼后的數據將被放在其中。

static AVFrame * g_pavfFrame = NULL;


 

  • 初始化解碼器

現在開始初始化您的解碼器。我把整個初始化過程包在了一個函數里,除非您有更好的主意,我建議您也這么做。函數長得象這樣:

BOOL H264_Init()

{

}

初始化libavcodec,MMPEG要求,這個函數一定要第一個被調用:

avcodec_init();

掛上所有的codec。也許只掛一個H264的codec就行,我沒試過:

av_register_all();

得到H264的解碼器:

AVCodec * pCodec = avcodec_find_decoder(CODEC_ID_H264);

創建一個AVCodecContext,并用默認值初始化:

g_pCodecCtx = avcodec_alloc_context();

更改g_pCodecCtx的一些成員變量的值,您應該從解碼方得到這些變量值:

g_pCodecCtx->time_base.num = 1//這兩行:一秒鐘25幀

g_pCodecCtx
->time_base.den = 25;

g_pCodecCtx
->bit_rate = 0//初始化為0

g_pCodecCtx
->frame_number = 1//每包一個視頻幀

g_pCodecCtx
->codec_type = CODEC_TYPE_VIDEO;

g_pCodecCtx
->width = 704//這兩行:視頻的寬度和高度

g_pCodecCtx
->height = 576;

打開codec。如果打開成功的話,分配AVFrame:

 

if(avcodec_open(g_pCodecCtx, pCodec) >= 0)

{

g_pavfFrame 
= avcodec_alloc_frame();// Allocate video frame

}

列出完整的初始化解碼庫的代碼:

image

  • 解碼

如果您只要求解成YUV 420I數據,只需一次調用就可以了:

 

avcodec_decode_video(g_pCodecCtx, g_pavfFrame, (int *)&nGot, (unsigned __int8 *)pSrcData, dwDataLen);

這里,nGot用來返回解碼成功與否,avcodec_decode_video調用完成后,如果nGot不等于0,則表示解碼成功,否則未解出視頻幀。

pSrcData是待解的H264編碼的一段數據流,dwDataLen表示該段數據流的長度,單位是byte。

解碼后的視頻幀(YUV數據)被存入g_pavfFrame,g_pavfFrame->data[0]、g_pavfFrame->data[1]、g_pavfFrame->data[2]即是YUV數據。下面的示例代碼把YUV數據壓在了一塊內存里,排列方式為:

YY

YY

U

V

該函數有返回值:如果解碼成功,則返回本次解碼使用的碼流字節數,否則返回0。為簡單起見,我這里假設pSrcData只包含一個視頻幀。

同樣,出于模塊化的要求和代碼維護的方便,我把解碼動作也包在了一個函數里:

 

BOOL H264_Decode(const PBYTE pSrcData, const DWORD dwDataLen, PBYTE pDeData, int * pnWidth, int * pnHeight)

pSrcData – 待解碼數據

dwDataLen – 待解碼數據字節數

pDeData – 用來返回解碼后的YUV數據

pnWidth, pnHeight – 用來返回視頻的長度和寬度

下面列出完整的代碼:

image

  • 釋放解碼器

以上其實已經完成了本文的任務,但從負責任的角度,要善始善終嘛。

釋放的過程沒什么好說的,一看就明白。同樣,我也把它們包在了一個函數里:

image

(抱歉的很,文章本來是用Word寫的,代碼塊是一個個文本框,但貼到這里卻變成了圖片。) 

posted on 2013-01-11 00:44 楊粼波 閱讀(1818) 評論(0)  編輯 收藏 引用

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲深夜av| 欧美午夜电影在线| 亚洲国产欧美一区二区三区久久 | 在线观看免费视频综合| 狠狠做深爱婷婷久久综合一区| 国语精品中文字幕| **性色生活片久久毛片| 亚洲精品欧美日韩专区| 亚洲视频香蕉人妖| 久久精品国产亚洲高清剧情介绍| 久久只精品国产| 最新亚洲一区| 亚洲欧美综合v| 噜噜噜在线观看免费视频日韩| 欧美黄色一区| 国产日韩欧美| 999在线观看精品免费不卡网站| 亚洲在线电影| 小黄鸭精品密入口导航| 亚洲一区国产精品| 亚洲精品久久| 亚洲天天影视| 久久久蜜臀国产一区二区| 欧美不卡视频一区发布| 欧美日本在线播放| 国产麻豆91精品| 亚洲第一中文字幕在线观看| 欧美精品一区二区三区很污很色的 | 久久久久久久久久久成人| 亚洲欧美影音先锋| 欧美成人免费一级人片100| 一区二区三区高清在线| 午夜亚洲性色福利视频| 欧美成人免费va影院高清| 国产伦精品一区二区三区照片91 | 欧美一区二区国产| 亚洲国产精品激情在线观看| 亚洲一级片在线观看| 美女日韩欧美| 国内精品视频在线播放| 亚洲男人的天堂在线aⅴ视频| 欧美黄色视屏| 久久国产精品免费一区| 国产精品日韩精品欧美在线| 亚洲精品一区二区三区蜜桃久| 亚洲欧美激情视频| 99精品欧美一区二区蜜桃免费| 免费一区二区三区| 1024国产精品| 蜜臀久久99精品久久久久久9| 亚洲伊人伊色伊影伊综合网| 欧美日韩在线一二三| 亚洲精品国精品久久99热一| 老司机久久99久久精品播放免费| 欧美亚洲在线观看| 国产精品中文字幕欧美| 亚洲欧美日韩综合| 亚洲一本大道在线| 国产精品久久国产愉拍 | 久久av最新网址| 亚洲综合丁香| 一区二区三欧美| 欧美日韩综合久久| 亚洲一区www| 一区二区91| 国产精品久久久久99| 亚洲午夜精品久久久久久app| 亚洲美女精品久久| 欧美色中文字幕| 亚洲欧美国产日韩天堂区| 亚洲婷婷综合久久一本伊一区| 国产精品美女视频网站| 欧美在线亚洲一区| 久久国产88| 99精品免费视频| 亚洲一区二区毛片| 国产欧美日韩亚洲一区二区三区| 久久久久国产免费免费| 老司机免费视频一区二区三区| 亚洲国产欧美一区二区三区丁香婷| 亚洲第一福利社区| 欧美色中文字幕| 久久精品国产清自在天天线| 免费视频久久| 亚洲免费一在线| 久久国产福利| 亚洲另类视频| 亚洲一区免费视频| 在线不卡免费欧美| 日韩午夜激情av| 国产日产精品一区二区三区四区的观看方式| 久久国产福利| 免费观看成人| 欧美影院成年免费版| 欧美二区视频| 久久精品视频在线免费观看| 欧美精品一线| 久久国产一区二区| 欧美精品久久一区二区| 久久久久久久精| 欧美视频在线一区二区三区| 久久精品日产第一区二区三区| 欧美激情二区三区| 久久精品一本久久99精品| 欧美日韩国产成人在线91| 久久精品女人的天堂av| 欧美日韩免费观看一区二区三区| 久久久久青草大香线综合精品| 欧美四级电影网站| 免费影视亚洲| 国产性天天综合网| 一区电影在线观看| 亚洲精品一区二区三区婷婷月| 久久国产精品黑丝| 先锋资源久久| 欧美日韩在线播放一区二区| 免播放器亚洲一区| 很黄很黄激情成人| 午夜在线视频一区二区区别| 99视频精品免费观看| 久久精品亚洲精品国产欧美kt∨| 亚洲欧美在线观看| 国产精品白丝av嫩草影院| 亚洲精品国产精品乱码不99 | 一区二区日本视频| 一区二区三区在线观看国产| 亚洲影视在线| 亚洲欧美日韩精品久久久久| 欧美日韩福利视频| 亚洲肉体裸体xxxx137| 曰本成人黄色| 久久久久久久高潮| 美女999久久久精品视频| 国产日韩在线一区| 亚洲欧美一区二区三区在线| 性久久久久久久| 国产欧美日韩精品专区| 制服丝袜亚洲播放| 午夜激情亚洲| 国产欧美亚洲精品| 欧美一区中文字幕| 久久亚洲一区| 在线播放中文一区| 蜜桃精品一区二区三区| 久久gogo国模啪啪人体图| 国产资源精品在线观看| 久久精品国产精品 | 亚洲夜间福利| 国产精品美女久久久久aⅴ国产馆| 中文久久乱码一区二区| 在线视频亚洲| 欧美激情一区二区三级高清视频 | 日韩亚洲欧美成人一区| 国产精品99久久久久久宅男 | 亚洲中字在线| 久久亚洲综合色| 亚洲国产1区| 欧美人成免费网站| 亚洲一区二区三区在线| 久久久噜噜噜久久中文字免| 国模精品娜娜一二三区| 欧美大秀在线观看| 亚洲夜晚福利在线观看| 狼狼综合久久久久综合网| 亚洲欧洲另类国产综合| 欧美极品一区二区三区| 亚洲欧美日本另类| 欧美xx视频| 亚洲欧美日韩在线高清直播| 亚洲国产精品久久91精品| 欧美网站在线| 久久亚洲精品视频| 亚洲免费av片| 久久视频一区二区| 一区二区三区四区五区精品| 国产一区二区三区久久| 欧美激情一区二区三区高清视频| 亚洲综合色婷婷| 最新精品在线| 久久久综合网| 亚洲欧美久久久| 亚洲精品国偷自产在线99热| 国产精品久久一级| 蜜桃av一区二区| 欧美中文在线字幕| 在线视频精品一区| 亚洲国产一区视频| 久久久久九九九| 免费观看30秒视频久久| 蜜月aⅴ免费一区二区三区| 一本色道久久88综合亚洲精品ⅰ| 国产日韩欧美在线| 欧美性片在线观看| 免费在线欧美视频| 久久久久国产一区二区三区四区| 亚洲午夜小视频| 妖精视频成人观看www| 亚洲精品网址在线观看| 亚洲国产成人精品女人久久久| 久久综合国产精品|