欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

FFmpeg優(yōu)化點(diǎn)播延時(shí)方案

場景要求
?? ?????????項(xiàng)目要求點(diǎn)播速度是300到500毫秒之間,現(xiàn)在最長的點(diǎn)播延時(shí)是1300毫秒(有的時(shí)候甚至無法播放視頻),生產(chǎn)環(huán)境是RTSP傳輸h364裸流數(shù)據(jù),研究在接收到I幀的時(shí)候,開始出來圖像,簡化FFmpeg的調(diào)用邏輯(SPS/PPS已經(jīng)預(yù)先知道,并且分辨率也是固定為1920*1080)

解決方案
1)指定SPS/PPS參數(shù),方便在調(diào)用avcodec_open2函數(shù)打開×××的時(shí)候,找到正確的視頻參數(shù)
https://blog.51cto.com/fengyuzaitu/2058138

2)通過指定視頻碼流格式H264減少探測時(shí)間
關(guān)鍵函數(shù)是:avformat_open_input和avformat_find_stream_info
https://blog.51cto.com/fengyuzaitu/1573766
https://blog.51cto.com/fengyuzaitu/1982996


3)核心是要求發(fā)送端發(fā)送的第一幀:強(qiáng)制I幀,根據(jù)如下的其他的方案指定碼流的格式

4)用戶新加入流媒體轉(zhuǎn)發(fā)隊(duì)列,流媒體推送用戶的第一幀,不一定是I幀(這一幀之前的SPS/PPS不能少),用戶需要等待一段時(shí)間才能看到畫面,直到I幀的出現(xiàn)隨著GOP的增大,時(shí)間可能更長。為了解決問題,需要緩存整一個(gè)GOP的圖像序列,單純保存I幀,沒有效果,因?yàn)槊恳粋€(gè)P幀都會(huì)依賴之前的P幀,類似于后面的圖片是前面圖片效果的疊加。新增加的用戶,先發(fā)送緩存的GOP序列,然后才發(fā)送剩下接收的數(shù)據(jù)

相關(guān)問題點(diǎn)有待研究
1)avformat_open_input取消問題的優(yōu)化
在代碼中指定如下:?? ??? ?
AVInputFormat* pAVInputFormat = av_find_input_format("h364");
pAVFormatContext->iformat = pAVInputFormat;
//if (avformat_open_input(&pAVFormatContext, "", pAVInputFormat, NULL) < 0)
如果不調(diào)用avformat_open_input函數(shù)實(shí)際上,影響到的是av_read_frame(pVideo->m_pAVFormatContext, packet)
出錯(cuò)提示:
No start code is found
Error splitting the input into NAL units
實(shí)際上av_read_frame關(guān)鍵作用是從緩沖中拆分出一個(gè)個(gè)NAL單元(每一個(gè)NAL單元都是從00 00 00 01作為開始碼,開始的),
目前的解決方案是手動(dòng)自己進(jìn)行NAL單元的拆分,然后送到av_send_packet進(jìn)行分幀解碼(從而也取消了
av_read_frame函數(shù)的調(diào)用),手動(dòng)拆分出NAL,有點(diǎn)麻煩

正在研究的是avformat_open_input可能會(huì)填充pAVFormatContext的URLProtocol協(xié)議字段,不過這已經(jīng)是FFmpeg底層函數(shù),
可能不可訪問,正在分析源碼

2)non-existing PPS 0 referenced問題
在調(diào)用av_read_frame函數(shù)的時(shí)候,會(huì)提示如上錯(cuò)誤
non-existing PPS 0 referenced
decode_slice_header error
no frame!

但是實(shí)際上,手動(dòng)添加SPS/PPS的內(nèi)容到extradata字符串中,
unsigned char sps_pps[] = { 0x00 ,0x00 ,0x01,0x67,0x42,0x00 ,0x2a ,0x96 ,0x35 ,0x40 ,0xf0 ,0x04 ,0x4f ,0xcb ,0x37 ,0x01 ,0x01 ,0x01 ,0x40 ,0x00 ,0x01 ,0xc2 ,0x00 ,0x00 ,0x57 ,0xe4 ,0x01 ,0x00 ,0x00 ,0x00 ,0x01 ,0x68 ,0xce ,0x3c ,0x80, 0x00 };
pAVFormatContext->streams[0]->codecpar->extradata_size = sizeof(sps_pps);
pAVFormatContext->streams[0]->codecpar->extradata = (uint8_t*)av_mallocz(pAVFormatContext->streams[0]->codecpar->extradata_size + AV_INPUT_BUFFER_PADDING_SIZE);
memset(pAVFormatContext->streams[0]->codecpar->extradata, 0, sizeof(sps_pps) + FF_INPUT_BUFFER_PADDING_SIZE);
memcpy(pAVFormatContext->streams[0]->codecpar->extradata, sps_pps, sizeof(sps_pps));

FFmpeg需要通過分析數(shù)據(jù)來確定輸入格式,所有程序啟動(dòng)時(shí),ffmpeg收到的數(shù)據(jù)最先應(yīng)該是SPS與PPS的nalu單元,然后是具體的視頻數(shù)據(jù)

相關(guān)博客
https://blog.51cto.com/fengyuzaitu/2058138
https://blog.51cto.com/fengyuzaitu/2057885

3)如果知道了碼流格式,實(shí)際上不需要調(diào)用什么探測碼流格式的函數(shù),直接調(diào)用AVCodecContext解碼,就可以
目前在網(wǎng)上沒有相關(guān)的資料


FFmpeg日志定向輸出到文件
https://blog.51cto.com/fengyuzaitu/2053210
avcodec_send_packet函數(shù)錯(cuò)誤定位
https://blog.51cto.com/fengyuzaitu/2046171

相關(guān)資料
1)http://www.yidianzixun.com/news_1eff46dc583b688d33a557b5582745dc
MP4的H264視頻數(shù)據(jù)保存在名為mdata的box當(dāng)中,MediaRecorder通過socket發(fā)送出來的MP4數(shù)據(jù)包含四部分:填充符、ftyp、mdat、slice。
其中slice就是我們要找的視頻數(shù)據(jù),slice是mdata的一部分,slice與mdata之間可能存在填充符,而slice與slice之間是連在一起的。
slice由視頻數(shù)據(jù)長度(4字節(jié),前兩個(gè)字節(jié)通常為0)和視頻數(shù)據(jù)組成,其中視頻數(shù)據(jù)是不帶起始碼的H264 Nalu單元,
不難看出其第一個(gè)字節(jié)為0x65(關(guān)鍵幀)、0x41等。數(shù)據(jù)長度描述的是 H264 Nalu單元的長度,這樣我們已經(jīng)找到一幀完成的H264碼流數(shù)據(jù)了,
接下來我們只需將 Nalu單元提取出來前面加上0x00 00 00 01的4字節(jié)起始碼我們就得到了H264裸數(shù)據(jù),這樣的數(shù)據(jù)在播放器上還不能播放,
需在H264裸數(shù)據(jù)文件的最前端加上SPS與PPS信息(他們也是有起始碼的哦),至此,播放器能夠正常播放文件了

成都創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè)、曲阜網(wǎng)絡(luò)推廣、成都微信小程序、曲阜網(wǎng)絡(luò)營銷、曲阜企業(yè)策劃、曲阜品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);成都創(chuàng)新互聯(lián)公司為所有大學(xué)生創(chuàng)業(yè)者提供曲阜建站搭建服務(wù),24小時(shí)服務(wù)熱線:028-86922220,官方網(wǎng)址:aaarwkj.com

網(wǎng)站名稱:FFmpeg優(yōu)化點(diǎn)播延時(shí)方案
標(biāo)題路徑:http://aaarwkj.com/article28/ijhjcp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供關(guān)鍵詞優(yōu)化、響應(yīng)式網(wǎng)站微信小程序、品牌網(wǎng)站設(shè)計(jì)網(wǎng)站導(dǎo)航、面包屑導(dǎo)航

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司
亚洲中文字幕第三页在线观看| 久久精品亚洲一区二区| 亚洲自偷精品视频自拍| 亚洲日本韩国一区二区| 国产精品推荐不卡一区| 91大片在线观看视频| 亚洲欧美综合精品二区| 国产综合欧美日韩在线91| 免费在线免费观看av| 国产91九色视频在线| 国产精品久久电影观看| 中文字幕丝袜精品久久| 日本一区二区三区免费精品| 国产H精品在线观看| 亚洲免费视频区一区二| 97精品在线免费视频| 色91精品在线观看剧情| 中文字幕亚洲无级av| 少妇人妻系列中文在线| 国语对白视频在线观看| 中文字幕色视频在线观看| 91香蕉国产在线观看| 国产日韩精品欧美综合区| 人人妻人人澡人人妻| 可以免费看的欧美黄片| 国产自拍偷拍自拍偷拍| 亚洲天堂免费在线播放| 丰满人妻侵犯中文字幕| 国产原创中文剧情性感av| 日韩欧美一区二区狠狠插| 中文字幕亚洲精品熟女少妇| 国产精品久久久天美传媒| 在线播放国内自拍情侣酒店| av天堂高清在线观看| 国产精品一区二区日韩新区| 伊人久久九九精品综合| 黑人巨大精品欧美黑寡妇| 欧美亚洲另类不卡在线| 精品视频在线观看传媒| 欧美性生活在线视频观看| 99精品热这里只有精品|