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

牽著老婆滿街逛

嚴以律己,寬以待人. 三思而后行.
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>
            国产一区二区久久| 国产精品视频自拍| 亚洲三级视频| 日韩视频精品在线观看| 欧美香蕉大胸在线视频观看| 亚洲欧美日韩一区在线| 久久不射中文字幕| 亚洲电影激情视频网站| 亚洲日本欧美天堂| 国产精品久久久久久久久久久久久久| 亚洲欧美日韩在线一区| 欧美亚洲视频| 99日韩精品| 亚洲在线日韩| 亚洲人成在线观看| 亚洲午夜精品久久久久久浪潮| 国产性做久久久久久| 亚洲国产精品久久久久久女王| 欧美日韩直播| 嫩草国产精品入口| 欧美日韩精品伦理作品在线免费观看| 午夜精品免费| 欧美成人a∨高清免费观看| 亚洲欧美日韩区| 麻豆91精品91久久久的内涵| 亚洲欧美日韩在线一区| 久久综合色一综合色88| 亚洲欧美在线免费观看| 久久综合久久久| 91久久精品国产| 亚洲永久字幕| 这里只有精品电影| 欧美日韩理论| 久久天天躁狠狠躁夜夜爽蜜月| 欧美福利一区| 久久五月激情| 欧美午夜精品| 欧美国产亚洲另类动漫| 国产欧美日韩亚洲一区二区三区| 亚洲国产免费| 影音先锋久久| 欧美一区二区三区视频免费播放 | 亚洲在线一区二区三区| 亚洲伦理中文字幕| 久久一区二区三区av| 性欧美大战久久久久久久免费观看| 美女国产精品| 美女啪啪无遮挡免费久久网站| 国产精品一二三| 亚洲图色在线| 亚洲一区在线观看免费观看电影高清 | 亚洲麻豆一区| 久久久亚洲一区| 久久久国产精品一区| 国产欧美亚洲一区| 亚洲欧美日韩在线一区| 欧美一区二区三区精品| 国产精品毛片| 亚洲欧美在线一区| 亚洲欧美日韩在线不卡| 国产精品毛片va一区二区三区| av成人黄色| 亚洲综合电影一区二区三区| 国产精品v一区二区三区| 99热精品在线| 午夜精品视频在线观看一区二区| 欧美日韩第一区日日骚| 99视频一区二区三区| 亚洲午夜精品久久久久久浪潮 | 欧美午夜不卡视频| 亚洲婷婷综合久久一本伊一区| 亚洲制服av| 国产农村妇女精品一区二区| 午夜精品久久久久久久久 | 亚洲欧美成人| 国产欧美婷婷中文| 欧美中文字幕视频| 欧美多人爱爱视频网站| 亚洲精品一二三区| 国产精品成人免费视频 | 午夜性色一区二区三区免费视频| 久久精品国产99国产精品澳门| 韩国在线视频一区| 国产精品美女久久久久久免费| 亚洲精品视频免费| 亚洲一区二区三区视频| 国产女主播一区二区| 性欧美长视频| 亚洲国产综合91精品麻豆| 亚洲一区二区三区高清 | 国产精品久久久一区二区| 欧美一区二区三区在线观看| 欧美电影免费观看高清| 亚洲午夜精品视频| 狠狠色丁香久久婷婷综合丁香 | 亚洲一区黄色| 欧美成人午夜77777| 亚洲综合三区| 亚洲高清不卡在线观看| 国产精品激情av在线播放| 久久国产毛片| 亚洲私拍自拍| 亚洲高清不卡av| 久久er精品视频| 一本色道久久88综合亚洲精品ⅰ | 国产精品久久久久久超碰| 久久精品亚洲精品| 一道本一区二区| 欧美成人一区在线| 久久国产精品久久久久久| 亚洲免费精品| 亚洲盗摄视频| 国产日韩在线看| 国产精品高潮呻吟| 欧美福利网址| 久久综合久久88| 欧美一区二区三区在线免费观看| 亚洲乱码国产乱码精品精可以看| 久久一区二区视频| 欧美一区不卡| 亚洲制服少妇| 亚洲午夜精品久久久久久浪潮| 亚洲国产日本| 在线精品视频一区二区三四| 国产欧美成人| 国产精品视频内| 国产精品国产亚洲精品看不卡15 | 欧美激情第8页| 麻豆乱码国产一区二区三区| 久久黄色网页| 午夜宅男久久久| 亚洲欧美日韩在线不卡| 亚洲香蕉伊综合在人在线视看| 99v久久综合狠狠综合久久| 亚洲国产综合在线| 亚洲欧洲日本在线| 91久久在线观看| 亚洲欧洲一级| 99视频有精品| 亚洲淫性视频| 亚洲一区二区三区四区视频| 亚洲深夜福利在线| 亚洲中字黄色| 欧美在线视频日韩| 久久全球大尺度高清视频| 久久一区二区三区四区| 可以看av的网站久久看| 欧美成人免费全部观看天天性色| 麻豆av一区二区三区| 欧美刺激性大交免费视频| 欧美精品入口| 欧美性事在线| 国产一区三区三区| 亚洲第一精品福利| 麻豆久久精品| 久久精品国产欧美激情| 久久亚洲国产精品日日av夜夜| 欧美成人高清视频| 欧美日韩国产高清视频| 国产精品mv在线观看| 国产色视频一区| 在线高清一区| 一区二区国产精品| 欧美一区二区日韩一区二区| 免费短视频成人日韩| 亚洲区在线播放| 亚洲一区在线直播| 久久久噜噜噜久久狠狠50岁| 欧美精品成人91久久久久久久| 国产精品v欧美精品v日韩| 国产综合色精品一区二区三区| 亚洲人成亚洲人成在线观看| 亚洲午夜一区二区三区| 久久久欧美精品sm网站| 亚洲青色在线| 欧美一区二区在线免费播放| 欧美成人69| 国产一区二区福利| 一本大道av伊人久久综合| 久久久久久亚洲综合影院红桃| 亚洲国产欧美不卡在线观看| 亚洲欧美日韩综合| 欧美女同在线视频| 一区二区三区在线免费观看| 亚洲神马久久| 欧美大片网址| 欧美在线观看www| 国产精品久久久爽爽爽麻豆色哟哟| 精品成人一区二区三区四区| 亚洲宅男天堂在线观看无病毒| 欧美成人嫩草网站| 久久riav二区三区| 国产精品免费在线| 一区二区三区日韩精品| 欧美.www| 亚欧成人在线| 国产精品嫩草99a| 一区二区三区精品视频在线观看 | 西西裸体人体做爰大胆久久久| 亚洲国产成人av|