老熟女激烈的高潮_日韩一级黄色录像_亚洲1区2区3区视频_精品少妇一区二区三区在线播放_国产欧美日产久久_午夜福利精品导航凹凸

重慶分公司,新征程啟航

為企業(yè)提供網(wǎng)站建設(shè)、域名注冊、服務(wù)器等服務(wù)

FFmepgAV_CODEC_FLAG_GLOBAL_HEADER問題描述

問題描述
            設(shè)置該標(biāo)志位,在解碼過程中似乎并沒有任何的效果,本意是通過設(shè)置該標(biāo)志位AV_CODEC_FLAG_GLOBAL_HEADER
通過AVCodecContext在解碼過程中,從extradata中讀取SPS/PPS,然后將信息填充到每一幀之前,然后正確解碼

成都創(chuàng)新互聯(lián)公司一直在為企業(yè)提供服務(wù),多年的磨煉,使我們在創(chuàng)意設(shè)計,成都全網(wǎng)營銷到技術(shù)研發(fā)擁有了開發(fā)經(jīng)驗。我們擅長傾聽企業(yè)需求,挖掘用戶對產(chǎn)品需求服務(wù)價值,為企業(yè)制作有用的創(chuàng)意設(shè)計體驗。核心團隊擁有超過十年以上行業(yè)經(jīng)驗,涵蓋創(chuàng)意,策化,開發(fā)等專業(yè)領(lǐng)域,公司涉及領(lǐng)域有基礎(chǔ)互聯(lián)網(wǎng)服務(wù)四川主機托管成都App定制開發(fā)、手機移動建站、網(wǎng)頁設(shè)計、網(wǎng)絡(luò)整合營銷。

變量說明
/**
 * Place global headers in extradata instead of every keyframe.
 *將全局頭部信息放在extradata指針中,而不是每一個關(guān)鍵幀中
 */
#define AV_CODEC_FLAG_GLOBAL_HEADER   (1 << 22)

1)libx264.c:static av_cold int X264_init(AVCodecContext *avctx)

該變量主要出現(xiàn)在該函數(shù)的以下兩個地方
1    if (avctx->flags & AV_CODEC_FLAG_GLOBAL_HEADER)
        x4->params.b_repeat_headers = 0;
說明
b_repeat_headers的意思是將SPS/PPS添加到每一個關(guān)鍵幀之前,0代表不添加
如果設(shè)置了videosteam 的codec中設(shè)置了AV_CODEC_FLAG_GLOBAL_HEADER就會導(dǎo)致x264_param_t參數(shù)中的b_repeat_header賦值為0,
這樣每個關(guān)鍵幀前面就不會添加SPS/PPS,如果在探測碼流的時候,無法獲取正確的SPS/PPS,就會導(dǎo)致解碼失敗。
0x00000001或者0x000001是起始碼,0x67是sps的開頭,0x68是pps的開頭。


2    if (avctx->flags & AV_CODEC_FLAG_GLOBAL_HEADER) {
        x264_nal_t *nal;
        uint8_t *p;
        int nnal, s, i;

        s = x264_encoder_headers(x4->enc, &nal, &nnal);
        avctx->extradata = p = av_mallocz(s + AV_INPUT_BUFFER_PADDING_SIZE);
        if (!p)
            return AVERROR(ENOMEM);

        for (i = 0; i < nnal; i++) {
            /* Don't put the SEI in extradata. */
            if (nal[i].i_type == NAL_SEI) {
                av_log(avctx, AV_LOG_INFO, "%s\n", nal[i].p_payload+25);
                x4->sei_size = nal[i].i_payload;
                x4->sei      = av_malloc(x4->sei_size);
                if (!x4->sei)
                    return AVERROR(ENOMEM);
                memcpy(x4->sei, nal[i].p_payload, nal[i].i_payload);
                continue;
            }
            memcpy(p, nal[i].p_payload, nal[i].i_payload);
            p += nal[i].i_payload;
        }
        avctx->extradata_size = p - avctx->extradata;
    }



相關(guān)信息說明
1)http://www.cnblogs.com/wanggang123/p/6128719.html指出如果要求打開編碼器之后
AVCodecContext extradata存有 SPS,PPS 信息需要加上如下代碼
AVCodecContext->flags |= AV_CODEC_FLAG_GLOBAL_HEADER
暫時用不上,因為當(dāng)前是解碼,默認(rèn)情況下AVCodecContext extradata在探測碼流(avformat_find_stream_info)
會自動將SPS,PPS填充到extradata字符串中,通過avcodec_parameters_to_context函數(shù),將codecpar內(nèi)容
傳遞給AVCodecContext

2)http://blog.csdn.net/ET_Endeavoring/article/details/77949850指出需要對AVCodecContext結(jié)構(gòu)體進行如下的設(shè)置
AVCodecContext->flags |= AV_CODEC_FLAG_GLOBAL_HEADER
FFmpeg才會在調(diào)用avcodec_open2函數(shù)里面,將SPS,PPS信息寫入header
如下代碼提供手動填充extradata的方式
unsigned char sps_pps[23] = { 0x00, 0x00, 0x00, 0x01, 0x67, 0x42, 0x00, 0x0a, 0xf8, 0x0f, 0x00, 0x44, 0xbe, 0x8,
                  0x00, 0x00, 0x00, 0x01, 0x68, 0xce, 0x38, 0x80 };
        codec_ctx->extradata_size = 23;
        codec_ctx->extradata = (uint8_t*)av_malloc(23 + AV_INPUT_BUFFER_PADDING_SIZE);
        if (codec_ctx->extradata == NULL) {
            printf("could not av_malloc the video params extradata!\n");
            return -1;
        }
        memcpy(codec_ctx->extradata, sps_pps, 23);
實際上,在解碼的時候,手動填充無效



3)http://blog.csdn.net/passionkk/article/details/75528653指出了在實時視頻傳輸時,需要發(fā)送
SPS/PPS數(shù)據(jù),必須設(shè)置
param.b_repeat_headers = 1;  // 重復(fù)SPS/PPS放到關(guān)鍵幀前面
種種情況下,codec中不能設(shè)置AV_CODEC_FLAG_GLOBAL_HEADER標(biāo)志,從上面的代碼,就可以知道
如果設(shè)置了videosteam 的codec中設(shè)置了AV_CODEC_FLAG_GLOBAL_HEADER就會導(dǎo)致x264_param_t參數(shù)中的b_repeat_header賦值為0,
這樣每個關(guān)鍵幀前面就不會添加SPS/PPS,如果在探測碼流的時候,無法獲取正確的SPS/PPS,就會導(dǎo)致解碼失敗。
0x00000001或者0x000001是起始碼,0x67是sps的開頭,0x68是pps的開頭。


網(wǎng)站題目:FFmepgAV_CODEC_FLAG_GLOBAL_HEADER問題描述
網(wǎng)站URL:http://www.xueling.net.cn/article/jjcjps.html

其他資訊

在線咨詢
服務(wù)熱線
服務(wù)熱線:028-86922220
TOP
主站蜘蛛池模板: 国产亚洲精品久久飘花 | 无码被窝影院午夜看片爽爽 | 久久精品国产99国产精2020新增功能 | 男人日女人逼的视频 | 成人区一区二区三区 | 99人精品福利在线观看 | 一级做a | 欧美BESTIALITY变态人禽交 | 少妇被粗大的猛烈进出 | 99久久夜色精品国产网站 | 国产欧美日韩在线观看一区二区 | 伊人大香线蕉影院 | 黄色成人在线免费观看 | 国产成人影院 | 日韩精品无码一区二区 | 本日xxxx| A级一男一女牲交 | 亚洲精选国产 | 麻豆精品传媒一二三区 | 国产精品午夜福利片不卡 | 欧美激情做真爱牲交视频 | 少妇被躁爽到高潮无码 | 久久人人爽人人爽人人片亚洲 | 国产情侣无套精品视频 | 亚洲精品xx| 欧美高清一区三区在线专区 | 亚洲一区二区视频 | 国产精品不卡顿 | 欧美日韩视频网站 | 无码免费毛片手机在线 | 亚洲视频二区三区 | 国产精品video| 国产乱子伦农村叉叉叉 | 国产午夜免费高清久久影院 | 亚洲国产一区二区三区在线播放 | 毛片大全免费 | 1000部拍拍拍18勿入免费视频 | 亚洲婷婷五月综合狠狠爱 | 曰本一道本久久88不卡 | 成年人国产 | 亚洲国产精品成人久久久软件 |