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

牽著老婆滿街逛

嚴以律己,寬以待人. 三思而后行.
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>
            亚洲欧美激情一区| 女女同性精品视频| 久久综合久色欧美综合狠狠 | 亚洲一区视频| 午夜精品免费| 久久综合色一综合色88| 久久人人97超碰人人澡爱香蕉| 久久精品在这里| 欧美刺激午夜性久久久久久久| 欧美激情精品久久久| 亚洲激情图片小说视频| 亚洲欧洲一区二区在线观看 | 欧美激情视频网站| 亚洲丁香婷深爱综合| 亚洲福利国产| 亚洲一区二区在线看| 欧美专区在线播放| 麻豆精品视频在线| 欧美日韩国产色站一区二区三区| 欧美三区美女| 国产在线播精品第三| 亚洲精品美女久久7777777| 在线视频精品一区| 久久亚洲一区二区三区四区| 欧美激情bt| 亚洲欧美精品在线| 免费观看不卡av| 国产精品免费看片| 亚洲人体影院| 欧美一区二区视频网站| 亚洲国产精品高清久久久| 亚洲综合社区| 欧美精品综合| 亚洲电影免费在线| 久久精品91| 日韩系列在线| 欧美~级网站不卡| 国产一区二区av| 亚洲特色特黄| 亚洲国产精品一区二区www在线| 中文在线一区| 欧美久久久久中文字幕| 伊人色综合久久天天五月婷| 午夜久久久久久| 99精品国产热久久91蜜凸| 久久在线免费视频| 尤物在线精品| 久久久久成人精品免费播放动漫| 一区二区三区日韩欧美精品| 欧美成人资源| 亚洲精品久久视频| 美女网站久久| 久久av最新网址| 国产亚洲毛片在线| 性亚洲最疯狂xxxx高清| 一本色道久久综合亚洲精品按摩| 欧美成年人视频网站| 亚洲第一伊人| 欧美成年网站| 欧美mv日韩mv国产网站app| 狠狠久久婷婷| 毛片精品免费在线观看| 久久精品国产免费观看| 国产丝袜一区二区| 久久久久久成人| 久久精品人人做人人综合| 国语精品中文字幕| 久久久www成人免费无遮挡大片| 亚洲影院在线| 欧美mv日韩mv国产网站app| 一区二区91| 性欧美xxxx视频在线观看| 99成人免费视频| 欧美日韩一区二区三区免费看| 亚洲每日更新| 日韩午夜在线视频| 国产精品久久精品日日| 欧美在线三区| 久久久久久久久久久久久女国产乱 | 久久综合久久综合九色| 91久久精品国产91性色tv| 欧美激情女人20p| 欧美日韩精品免费观看| 午夜精品久久久久久久99黑人| 亚洲欧美自拍偷拍| 亚洲高清在线播放| 亚洲精品欧美专区| 国产精品一卡二| 久久精品综合网| 欧美成人精品一区二区三区| 一本色道久久综合| 午夜精品一区二区三区在线视| 国产一区二区精品| 亚洲电影免费观看高清完整版| 欧美日韩精选| 久久色中文字幕| 欧美精品久久99久久在免费线| 亚洲网在线观看| 久久视频这里只有精品| 亚洲四色影视在线观看| 久久精品国产96久久久香蕉| 亚洲美女淫视频| 欧美中文字幕视频| 一区二区久久久久| 久久精品国产亚洲aⅴ| aa级大片欧美| 欧美在线免费看| 亚洲视频在线二区| 久久久人人人| 午夜一区二区三区在线观看| 美女日韩在线中文字幕| 欧美一区成人| 欧美日韩第一区| 欧美mv日韩mv国产网站app| 国产美女精品视频免费观看| 最新中文字幕亚洲| 亚洲福利视频免费观看| 午夜日韩视频| 午夜精品一区二区三区四区 | 久久精品91久久久久久再现| 亚洲一区二区三区涩| 欧美成人精品| 欧美激情一区二区久久久| 国内精品写真在线观看| 一区二区三区国产盗摄| 美女精品在线观看| 久久精品30| 国产深夜精品福利| 亚洲女同精品视频| 午夜久久黄色| 国产模特精品视频久久久久 | 亚洲黄色大片| 久久久之久亚州精品露出| 久久精品国产清自在天天线| 国产精品入口夜色视频大尺度| 亚洲裸体俱乐部裸体舞表演av| 亚洲激情综合| 你懂的视频欧美| 亚洲福利在线看| 亚洲国产福利在线| 久久久噜噜噜久噜久久| 麻豆精品91| 亚洲区在线播放| 欧美精品日韩三级| 99re热这里只有精品视频| 在线亚洲一区| 国产精品女人毛片| 欧美在线你懂的| 噜噜噜躁狠狠躁狠狠精品视频| 黄色成人av网| 欧美18av| 99精品视频免费观看| 亚洲综合不卡| 国产一区二区三区奇米久涩 | 久久岛国电影| 欧美.日韩.国产.一区.二区| 亚洲日本国产| 欧美性色视频在线| 性做久久久久久久免费看| 久久夜色撩人精品| 99视频+国产日韩欧美| 国产精品a级| 欧美一区观看| 亚洲激情av在线| 午夜精品久久久久久99热软件| 国产小视频国产精品| 久久婷婷丁香| 一区二区三区成人精品| 久久亚洲国产精品一区二区| 亚洲精品一区二| 国产日韩精品一区二区三区在线| 另类春色校园亚洲| 国产精品99久久久久久久久久久久 | 欧美一区二区三区精品电影| 米奇777超碰欧美日韩亚洲| 亚洲国产精品专区久久| 欧美午夜激情在线| 久久亚洲不卡| 亚洲在线视频一区| 亚洲国产va精品久久久不卡综合| 亚洲欧美日韩国产中文在线| 伊人久久成人| 国产精品日韩精品欧美精品| 久久人人爽爽爽人久久久| 亚洲午夜国产一区99re久久 | 国产精品一区二区男女羞羞无遮挡| 欧美一区二区三区久久精品| 最新国产成人av网站网址麻豆| 午夜欧美大片免费观看| 亚洲国产综合91精品麻豆| 国产精品任我爽爆在线播放| 欧美大片在线看| 久久精品人人做人人爽| 亚洲夜间福利| 日韩一区二区精品在线观看| 欧美成人免费va影院高清| 久久精品一区| 香蕉乱码成人久久天堂爱免费| 日韩一区二区电影网| 亚洲福利免费|