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

隨筆 - 25, 文章 - 0, 評論 - 6, 引用 - 0
數據加載中……

ffplay 將視頻幀轉換成bmp圖片

static int video_thread2(void *arg)
{
    AVPacket pkt = { 0 };
    VideoState *is = (VideoState *)arg;
    AVFrame *pFrame = avcodec_alloc_frame();
    int64_t pts_int = AV_NOPTS_VALUE, pos = -1;
    double pts;
    int ret;
    
    for (;;) 
    {
        while (is->paused && !is->videoq.abort_request)
            SDL_Delay(10);
        
        avcodec_get_frame_defaults(pFrame);
        av_free_packet(&pkt);

        ret = get_video_frame(is, pFrame, &pts_int, &pkt);
        if (ret < 0)
            goto the_end;

        if (!ret)
            continue;

        pts = pts_int * av_q2d(is->video_st->time_base);
        ret = queue_picture(is, pFrame, pts, pkt.pos);

        if (ret < 0)
            goto the_end;

        if (is->step)
            stream_toggle_pause(is);
        
        int nWidth = pFrame->width;
        int nHeight = pFrame->height;
        AVPixelFormat srcfmt = (AVPixelFormat)pFrame->format;
        AVPixelFormat dstfmt = AV_PIX_FMT_BGR24;//AV_PIX_FMT_RGB24;//AV_PIX_FMT_BGR24;
        AVFrame *pFrameRGB;
        pFrameRGB = avcodec_alloc_frame();

//         int src_bytes_num = avpicture_get_size(srcfmt, nWidth, nHeight);
//         uint8_t* src_buff = (uint8_t*)av_malloc(src_bytes_num);
//         avpicture_fill((AVPicture*)pFrame, src_buff, srcfmt, nWidth, nHeight);

        int dst_bytes_num = avpicture_get_size(dstfmt, nWidth, nHeight);
        uint8_t* dst_buff = (uint8_t*)av_malloc(dst_bytes_num);
        avpicture_fill((AVPicture*)pFrameRGB, dst_buff, dstfmt, nWidth, nHeight);

        SwsContext* pSwsCtx = sws_getContext(nWidth, nHeight,
            srcfmt,
            nWidth, nHeight,
            dstfmt,
            SWS_BICUBIC,
            NULL,NULL,NULL);

        /// <轉換圖像格式>
        sws_scale(pSwsCtx, pFrame->data, pFrame->linesize, 0, nHeight, pFrameRGB->data, pFrameRGB->linesize);

        static int nnn = 0;
        
        if ((nnn++ % 5) == 0)
        {
            //saveAsBitmap(pFrameRGB, nWidth, nHeight, nnn);
        }
    }

the_end:
    avcodec_flush_buffers(is->video_st->codec);
    av_free_packet(&pkt);
    avcodec_free_frame(&pFrame);
    return 0;
}


bool saveAsBitmap(AVFrame *pFrameRGB, int width, int height, int iFrame)  
{  
    if (NULL == pFrameRGB->data[0])
    {
        return false;
    }

    FILE *pFile = NULL;  
    BITMAPFILEHEADER bmpheader;  
    BITMAPINFO bmpinfo;  

    char fileName[32];  
    int bpp = 24;  

    // open file  
    sprintf(fileName, "./images/frame%d.bmp", iFrame);  
    pFile = fopen(fileName, "wb");  
    if (!pFile)  
        return false;  

    bmpheader.bfType = ('M' <<8)|'B';  
    bmpheader.bfReserved1 = 0;  
    bmpheader.bfReserved2 = 0;  
    bmpheader.bfOffBits = sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER);  
    bmpheader.bfSize = bmpheader.bfOffBits + width*height*bpp/8;  

    bmpinfo.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);  
    bmpinfo.bmiHeader.biWidth = width;  
    bmpinfo.bmiHeader.biHeight = -height; //reverse the image  
    bmpinfo.bmiHeader.biPlanes = 1;  
    bmpinfo.bmiHeader.biBitCount = bpp;  
    bmpinfo.bmiHeader.biCompression = BI_RGB;  
    bmpinfo.bmiHeader.biSizeImage = 0;  
    bmpinfo.bmiHeader.biXPelsPerMeter = 100;  
    bmpinfo.bmiHeader.biYPelsPerMeter = 100;  
    bmpinfo.bmiHeader.biClrUsed = 0;  
    bmpinfo.bmiHeader.biClrImportant = 0;  

    fwrite(&bmpheader, sizeof(BITMAPFILEHEADER), 1, pFile);  
    fwrite(&bmpinfo.bmiHeader, sizeof(BITMAPINFOHEADER), 1, pFile);  
     uint8_t *buffer = pFrameRGB->data[0];  
//     for (int h=0; h<height; h++)  
//     {  
//         for (int w=0; w<width; w++)  
//         {  
//             fwrite(buffer+2, 1, 1, pFile);  
//             fwrite(buffer+1, 1, 1, pFile);  
//             fwrite(buffer, 1, 1, pFile);  
// 
//             buffer += 3;  
//         }  
//     }  

    fwrite(buffer,width*height*bpp/8,1,pFile);

    fclose(pFile);  

    return true;  

posted on 2014-08-21 22:21 chenjt3533 閱讀(844) 評論(0)  編輯 收藏 引用 所屬分類: C/C++

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            欧美日韩国产a| 亚洲女优在线| 亚洲欧美另类在线| 亚洲免费视频网站| 欧美在线视频日韩| 久久综合国产精品| 亚洲国产成人在线播放| 亚洲国产精品久久| 日韩香蕉视频| 亚洲综合色在线| 久久亚洲综合色| 欧美国产精品人人做人人爱| 欧美黄色aa电影| 国产精品免费一区豆花| 国产主播精品在线| 日韩视频中文字幕| 午夜精品久久久| 欧美sm极限捆绑bd| 一区二区三区四区五区在线| 久久久成人网| 国产精品网站在线| 日韩亚洲精品视频| 亚洲午夜精品久久久久久浪潮| 亚洲一级二级在线| 免费视频最近日韩| 99国产精品99久久久久久| 性久久久久久久久| 欧美日韩1区2区| 国模私拍一区二区三区| 在线亚洲免费| 亚洲第一页在线| 欧美中文字幕| 国产精品99免费看 | 宅男噜噜噜66国产日韩在线观看| 亚洲综合精品一区二区| 欧美激情91| 在线国产精品播放| 欧美一区二区在线| 一区二区三区国产| 欧美精品在线视频观看| 亚洲黄色性网站| 裸体歌舞表演一区二区| 香蕉成人伊视频在线观看| 欧美色精品在线视频| 91久久国产综合久久91精品网站| 欧美在线视频播放| 亚洲调教视频在线观看| 欧美日韩国产色综合一二三四 | 好男人免费精品视频| 亚洲男人的天堂在线| 日韩天堂在线视频| 欧美区高清在线| 亚洲免费av观看| 亚洲国产精品久久久久婷婷884| 久久超碰97人人做人人爱| 国产精品高清在线| 亚洲欧美日本国产有色| 亚洲午夜黄色| 国产欧美日韩麻豆91| 欧美中日韩免费视频| 午夜精品一区二区三区在线| 国产精品亚洲视频| 久久久久久久尹人综合网亚洲| 亚洲欧美国产三级| 国产亚洲人成a一在线v站| 久久久久.com| 久久亚洲综合色| 99精品欧美一区| 中日韩男男gay无套| 国产精品色午夜在线观看| 欧美一区视频| 国产精品剧情在线亚洲| 亚洲国产精品电影在线观看| 久久国产精品99久久久久久老狼| 亚洲天堂激情| 国产精品亚洲综合色区韩国| 欧美尤物巨大精品爽| 欧美一级视频精品观看| 狠狠色狠狠色综合人人| 女同一区二区| 欧美精品一区二区在线观看 | 国产一区白浆| 欧美成人在线网站| 欧美日本在线观看| 欧美在线综合| 欧美成年视频| 欧美一区二区三区免费视| 久久精品视频在线免费观看| 亚洲人成在线观看一区二区| 一本色道久久综合亚洲精品不卡| 国产女主播视频一区二区| 免费观看成人| 欧美日韩精品一区二区在线播放 | 日韩一二三区视频| 国产免费成人| 欧美国产三级| 国产欧美在线观看一区| 亚洲第一页在线| 国产精品日韩在线一区| 欧美成人精品在线| 国产精品视频你懂的| 亚洲电影观看| 国内精品久久久久久久影视麻豆 | 欧美天堂亚洲电影院在线播放| 欧美一区二区三区免费视| 裸体一区二区| 久久成年人视频| 美女黄毛**国产精品啪啪| 欧美在线高清| 欧美午夜片在线免费观看| 性欧美1819性猛交| 欧美黄色aa电影| 免费欧美在线| 国产亚洲免费的视频看| 99re热精品| 亚洲欧洲在线视频| 久久久久国内| 久久九九精品| 国产日韩欧美91| 亚洲午夜久久久久久久久电影网| 亚洲国产第一页| 欧美国产乱视频| 亚洲激情欧美激情| 午夜天堂精品久久久久| 日韩一级裸体免费视频| 欧美中文字幕在线视频| 欧美在线视频免费播放| 国产精品欧美一区喷水| aa日韩免费精品视频一| 一本久久知道综合久久| 欧美国产国产综合| 牛人盗摄一区二区三区视频| 国产综合网站| 欧美影院成年免费版| 欧美亚洲视频在线观看| 国产精品九九久久久久久久| 亚洲欧洲日韩在线| 99国产精品视频免费观看| 免费不卡在线视频| 亚洲国产精品一区二区尤物区 | 夜夜精品视频一区二区| 欧美 日韩 国产 一区| 欧美freesex8一10精品| 亚洲第一页自拍| 欧美va亚洲va日韩∨a综合色| 两个人的视频www国产精品| 黄色成人在线免费| 久久久久国产成人精品亚洲午夜| 久久久久网站| 在线观看日韩国产| 欧美激情精品久久久久久| 亚洲欧洲午夜| 亚洲欧美国产精品专区久久| 国产精品久久久久秋霞鲁丝| 午夜欧美大尺度福利影院在线看| 欧美一区二区三区免费视频| 国内外成人免费视频| 久久精品一二三| 91久久国产自产拍夜夜嗨| 你懂的视频欧美| 日韩视频免费在线| 欧美一级在线播放| 影音先锋中文字幕一区| 欧美日本精品| 性欧美大战久久久久久久久| 欧美bbbxxxxx| 亚洲欧美色婷婷| 亚洲第一免费播放区| 欧美日韩久久精品| 欧美在线91| 亚洲黄色在线看| 久久精品视频在线看| 国产欧美日韩免费| 开元免费观看欧美电视剧网站| 亚洲精品一区二区三区不| 欧美一区二区视频在线| 亚洲精品一区二区三区婷婷月 | 欧美日韩喷水| 久久久久久午夜| 亚洲精品男同| 久久五月天婷婷| 亚洲最新合集| 激情文学综合丁香| 国产精品久久亚洲7777| 亚洲视频大全| 欧美午夜精品久久久久免费视| 99伊人成综合| 欧美xx视频| 性色av一区二区三区在线观看 | 久久精品1区| 一本色道88久久加勒比精品| 国产综合av| 国产精品久久久久久久久久久久久久| 久久久久久午夜| 亚欧美中日韩视频| 亚洲婷婷国产精品电影人久久| 欧美黄色小视频| 久久天天躁狠狠躁夜夜爽蜜月| 亚洲一区二区精品视频| 日韩视频―中文字幕|