HOME 首頁
SERVICE 服務(wù)產(chǎn)品
XINMEITI 新媒體代運(yùn)營
CASE 服務(wù)案例
NEWS 熱點(diǎn)資訊
ABOUT 關(guān)于我們
CONTACT 聯(lián)系我們
創(chuàng)意嶺
讓品牌有溫度、有情感
專注品牌策劃15年

    ivlc十大排名(lc 排名)

    發(fā)布時(shí)間:2023-05-05 06:43:03     稿源: 創(chuàng)意嶺    閱讀: 482        

    大家好!今天讓創(chuàng)意嶺的小編來大家介紹下關(guān)于ivlc十大排名的問題,以下是小編對此問題的歸納整理,讓我們一起來看看吧。bsG創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營銷策劃公司

    創(chuàng)意嶺作為行業(yè)內(nèi)優(yōu)秀的企業(yè),服務(wù)客戶遍布全球各地,相關(guān)業(yè)務(wù)請撥打電話:175-8598-2043,或添加微信:1454722008bsG創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營銷策劃公司

    本文目錄:bsG創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營銷策劃公司

    ivlc十大排名(lc 排名)

    一、vlc的pts是怎么計(jì)算的bsG創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營銷策劃公司

    H264的ES原始數(shù)據(jù)一般是以NAL(Network Abstract Layer)的格式存在??梢灾苯佑糜谖募鎯途W(wǎng)絡(luò)傳輸。每一個NALU(Network Abstract Layer Unit)數(shù)據(jù),是由數(shù)據(jù)頭+RBSP數(shù)據(jù)組成。bsG創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營銷策劃公司

    首先需要將數(shù)據(jù)流,分割成一個一個獨(dú)立的NALU數(shù)據(jù)。bsG創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營銷策劃公司

    接著獲取NALU的nal_type,i_nal_type的值等于0x7表示這個nalu是個sps數(shù)據(jù)包。找到并解析這個sps數(shù)據(jù)包,里面包含有非常重要的幀率信息bsG創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營銷策劃公司

    time_scale/num_units_in_tick=fpsbsG創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營銷策劃公司

    然后根據(jù)nal_type判斷slice(H264中的slice類似一個幀F(xiàn)RAME的概念)。其中nal_type值小于0x1,或大于0x5,表示這個NALU屬于一個slice。bsG創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營銷策劃公司

    // 檢查是否是slice if ( i_nal_type < 1/*NAL_SLICE*/ || i_nal_type > 5/*NAL_SLICE_IDR*/ ) // 找到slice!!!!! bsG創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營銷策劃公司

    在找到slice的NALU后,可以逐字節(jié)將NALU的數(shù)據(jù)與0x80進(jìn)行與運(yùn)算,結(jié)果為真表示這個slice(幀F(xiàn)RAME)的結(jié)束位置。bsG創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營銷策劃公司

    // 判斷是否幀結(jié)束 for (uint32_t i = 3; i < nal_length; i++) { if (p_nal[i] 0x80) { // 找到frame_begin!!!!上一幀frame的結(jié)束,下一幀frame的開始 } } bsG創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營銷策劃公司

    上面的這個代碼是摘抄自FFMPEG。他實(shí)際作用是判斷slice里面的first_mb_in_slice,即第1個宏塊在slice中的位置,如果是bsG創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營銷策劃公司

    一幀開始,這個字段的值肯定是標(biāo)識第1個宏塊。因此,也可以完整解析slice的頭部信息,解析出first_mb_in_slice,如果是0(注意:bsG創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營銷策劃公司

    這是1個哥倫布數(shù)值),即這個NALU是一幀的開始。bsG創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營銷策劃公司

    為什么這里的代碼是逐字節(jié)判斷0x80?我額外寫點(diǎn)某大神的名言:程序猿不是十萬個為什么,不是維基猿,程序猿是需求猿。如果某程序猿已經(jīng)著手開始研究如何解析slice頭部格式,他很自然的不會有這個疑問。bsG創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營銷策劃公司

    另外通過nal_type以及silice_type也可以判斷出幀結(jié)束位置,VLC里面的代碼就是這么干。bsG創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營銷策劃公司

    解析到位于幀結(jié)束位置的NALU,就可以判斷出每一幀(slice)的開始和結(jié)尾。解析slice的slice_type,根據(jù)slice_type,可以判斷出這個slice的IPB類型。bsG創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營銷策劃公司

    // 根據(jù)slice類型判斷幀類型 switch(slice.i_slice_type) { case 2: case 7: case 4: case 9: *p_flags = 0x0002/*BLOCK_FLAG_TYPE_I*/; break; case 0: case 5: case 3: case 8: *p_flags = 0x0004/*BLOCK_FLAG_TYPE_P*/; break; case 1: case 6: *p_flags = 0x0008/*BLOCK_FLAG_TYPE_B*/; break; default: *p_flags = 0; break; } bsG創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營銷策劃公司

    從現(xiàn)在開始,就有兩種辦法來計(jì)算PTS了。bsG創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營銷策劃公司

    方法一、根據(jù)前后幀的IPB類型,可以得知幀的實(shí)際顯示順序,使用前面獲取的sps信息中的幀率,以及幀計(jì)數(shù)frame_count即可計(jì)算出PTS。此方法需要做幾幀緩存(一般緩存一個group的長度)。bsG創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營銷策劃公司

    I P B B I P B B I P B 幀類型bsG創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營銷策劃公司

    1 2 3 4 5 6 7 8 9 10 11 第幾幀bsG創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營銷策劃公司

    1 4 2 3 5 8 6 7 9 12 10 幀顯示順序bsG創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營銷策劃公司

    一個I幀與下一個I幀之間,是一個group。bsG創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營銷策劃公司

    從上圖可見,P類型的幀的顯示順序,是排在后面最后一個B幀之后。bsG創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營銷策劃公司

    所以要獲取第7幀的pts,起碼要知道他下一幀的類型,才能得知他的顯示順序。bsG創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營銷策劃公司

    第8幀的pts=1000(毫秒)*7(幀顯示順序)*幀率bsG創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營銷策劃公司

    方法二、每一個slice的信息里面,都記錄有pic_order_cnt_lsb,當(dāng)前幀在這個group中的顯示順序。通過這個pic_order_cnt_lsb,可以直接計(jì)算出當(dāng)前幀的PTS。此方法不需要做幀緩存。bsG創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營銷策劃公司

    計(jì)算公式:bsG創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營銷策劃公司

    pts=1000*(i_frame_counter + pic_order_cnt_lsb)*(time_scale/num_units_in_tick)bsG創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營銷策劃公司

    i_frame_counter是最近一次I幀位置的幀序,通過I幀計(jì)數(shù)+當(dāng)前group中的幀序,得到幀實(shí)際顯示序列位置,乘上幀率,再乘上1000(毫秒)的base_clock(基本時(shí)鐘頻率),得到PTS。bsG創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營銷策劃公司

    I P B B I P B B I P B 幀類型bsG創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營銷策劃公司

    1 2 3 4 5 6 7 8 9 10 11 第幾幀bsG創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營銷策劃公司

    1 4 2 3 5 8 6 7 9 12 10 幀顯示順序bsG創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營銷策劃公司

    0 6 2 4 0 6 2 4 0 6 2 pic_order_cnt_lsbbsG創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營銷策劃公司

    細(xì)心一點(diǎn)可以注意到,在上圖,slice里面的pic_order_cnt_lsb是以2進(jìn)行遞增。bsG創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營銷策劃公司

    通常H264里面的sps中記錄的幀率,也是實(shí)際幀率的2倍time_scale/num_units_in_tick=fps*2bsG創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營銷策劃公司

    因此,實(shí)際的計(jì)算公式應(yīng)該是這樣bsG創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營銷策劃公司

    pts=1000*(i_frame_counter*2+pic_order_cnt_lsb)* (time_scale/num_units_in_tick)bsG創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營銷策劃公司

    或者是bsG創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營銷策劃公司

    pts=1000*(i_frame_counter+pic_order_cnt_lsb/2)* (time_scale/num_units_in_tick/2)bsG創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營銷策劃公司

    所以,第11幀的pts應(yīng)該是這么計(jì)算bsG創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營銷策劃公司

    1000*(9*2+2)*(time_scale/num_units_in_tick) bsG創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營銷策劃公司

    二、MP4視頻無法播放,大概6分鐘左右,文件大小11M,用了itunes,暴風(fēng)影音,vlc以及windows media player。bsG創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營銷策劃公司

    暴風(fēng)影音是萬能播放器,它不能f播放了,就是說明這個文件損壞了。MP4格式就是MP4格式,沒有什么特殊格式。 bsG創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營銷策劃公司

    三、用vs2010的c#調(diào)用vlc時(shí)出現(xiàn): PInvoke 簽名的調(diào)用約定和參數(shù)與非托管的目標(biāo)簽 名是否匹配。bsG創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營銷策劃公司

    [DllImport("libvlc.dll", EntryPoint = "libvlc_new", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]bsG創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營銷策劃公司

    [SuppressUnmanagedCodeSecurity]bsG創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營銷策劃公司

    private static extern IntPtr libvlc_new(int argc, IntPtr argv);bsG創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營銷策劃公司

    改一下參數(shù)就好了 bsG創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營銷策劃公司

    四、蘋果電腦,如果下載的歌曲是VLC的格式,怎樣才能把歌曲添加到iTunes里?bsG創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營銷策劃公司

    先轉(zhuǎn)換一下格式,然后再導(dǎo)入ITUNES bsG創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營銷策劃公司

    以上就是關(guān)于ivlc十大排名相關(guān)問題的回答。希望能幫到你,如有更多相關(guān)問題,您也可以聯(lián)系我們的客服進(jìn)行咨詢,客服也會為您講解更多精彩的知識和內(nèi)容。bsG創(chuàng)意嶺 - 安心托付、值得信賴的品牌設(shè)計(jì)、營銷策劃公司


    推薦閱讀:

    石瓦屋live杰夫餐飲品牌設(shè)計(jì)

    vivo手機(jī)一直反復(fù)優(yōu)化(vivo手機(jī)一直反復(fù)優(yōu)化怎么解決)

    vivo手機(jī)價(jià)格排行榜(vivo手機(jī)價(jià)格排行榜2019)

    醫(yī)學(xué)影像學(xué)大一課程

    網(wǎng)頁三列布局(網(wǎng)頁三列布局框架代碼)