![播放器開發(fā)系列音視頻同步下_第1頁](http://file4.renrendoc.com/view/71c76b9c4524117cacff5abc80865f0d/71c76b9c4524117cacff5abc80865f0d1.gif)
![播放器開發(fā)系列音視頻同步下_第2頁](http://file4.renrendoc.com/view/71c76b9c4524117cacff5abc80865f0d/71c76b9c4524117cacff5abc80865f0d2.gif)
![播放器開發(fā)系列音視頻同步下_第3頁](http://file4.renrendoc.com/view/71c76b9c4524117cacff5abc80865f0d/71c76b9c4524117cacff5abc80865f0d3.gif)
![播放器開發(fā)系列音視頻同步下_第4頁](http://file4.renrendoc.com/view/71c76b9c4524117cacff5abc80865f0d/71c76b9c4524117cacff5abc80865f0d4.gif)
![播放器開發(fā)系列音視頻同步下_第5頁](http://file4.renrendoc.com/view/71c76b9c4524117cacff5abc80865f0d/71c76b9c4524117cacff5abc80865f0d5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、本課講師:Darren老師10-播放器開發(fā)系列(5)音視頻同步(下)課程主講Darren老師:2167195649講師介紹 動腦學(xué)院 -Darren老師 (廖慶富)高級資深工程師 音視頻開發(fā),嵌入式系統(tǒng)開發(fā),圖像處理以及服務(wù)器開發(fā)等方面有豐富的研發(fā)與實(shí)戰(zhàn)經(jīng)驗(yàn)。 曾供職于珠海揚(yáng)智,深圳聯(lián)發(fā)科等知名半導(dǎo)體公司。 課程提綱各個serial之間的關(guān)系compute_target_delay的本質(zhì)解碼過程關(guān)鍵點(diǎn)frame_timer的本質(zhì)decoder_decode_frame 解碼注意點(diǎn)(1)結(jié)束流的情況,發(fā)送NULL到avcodec_send_packet(),促使調(diào)用者可以通過avcodec_re
2、ceive_frame讀取剩余解碼器內(nèi)部的所有幀;(2)在再次解碼之前,必須使用avcodec_flush_buffers()重新編碼;(3) avcodec_receive_frame返回EAGAIN則需要avcodec_send_packet繼續(xù)發(fā)送數(shù)據(jù)包到解碼器;(4) avcodec_send_packet返回EAGAIN則需要,則需要調(diào)用avcodec_receive_frame讀取解碼后的幀,再重新發(fā)送該packet;原始圖像 I B P編碼后圖像 I P B解碼的過程圖像 I P B, avcodec_receive_frame讀到幀順序 I B Pdecoder_decode_
3、frame - 什么時候flush解碼器?正常播放,音視頻數(shù)據(jù)包已經(jīng)讀取完畢起源: packet_queue_put_nullpacket(is-videoq, is-video_stream);(在read_thread函數(shù))結(jié)果:avcodec_flush_buffers (在decoder_decode_frame函數(shù))Seek播放(快進(jìn)快退拖動等)起源:packet_queue_put(&is-audioq, &flush_pkt); (在read_thread函數(shù))結(jié)果:avcodec_flush_buffers (在decoder_decode_frame函數(shù))開始播放起源:pac
4、ket_queue_start(在read_thread函數(shù))結(jié)果:avcodec_flush_buffers (在decoder_decode_frame函數(shù))decoder_decode_frame 之a(chǎn)vcodec_send_packet的EAGAIN問題typedef struct Decoder / 保存需要EAGAIN的packet AVPacket pkt; / =1說明pkt需要重新發(fā)送給解碼器,=0則不需要 intpacket_pending; Decoder; 具體見 decoder_decode_frame 函數(shù)flush_pkt初始化 (重點(diǎn)強(qiáng)調(diào))/ 初始化flush_
5、packetav_init_packet(&flush_pkt);/ 初始化為數(shù)據(jù)指向自己本身flush_pkt.data = (uint8_t *)&flush_pkt; 起源于:main函數(shù)進(jìn)行初始化使用于:decoder_decode_frameSerial之間的關(guān)系MyAVPacketList / 數(shù)據(jù)包 int serial;PacketQueue / 數(shù)據(jù)包隊(duì)列 intserial; Clock / 時鐘 intserial; / 實(shí)際指向PacketQueue-serial int*queue_serial; Frame / 數(shù)據(jù)幀 int serial; Decoder int
6、 pkt_serial; VideoState / 播放器 int audio_clock_serial;正常播放過程中各個結(jié)構(gòu)體的serial是相同的,在seek相關(guān)操作中才會切換serial,當(dāng)檢測到serial不同時,則需要做異常處理。Serial之間的關(guān)系packet_queue_put_nullpacketcompute_target_delay的本質(zhì)當(dāng)視頻超前比較多的時候,返回的delay就大一些,以便視頻播放慢一點(diǎn)當(dāng)視頻落后比較多的時候,則返回的delay小一些,甚至返回delay=0,以便視頻放快一些落后: speed, 則返回delay = 0假如落后超過一幀超前: diff
7、 = sync_threshold/is-speed & delay AV_SYNC_FRAMEDUP_THRESHOLD/is-speed ,則返回當(dāng)前 delay + diff超前: diff = sync_threshold /is-speed,則返回2 * delay如果在 -sync_threshold /is-speed diff speed內(nèi),則正常返回delay(幀間隔)。這里大家在看is-speed的時候先姑且認(rèn)為是1.0,即是常速播放可以將其省略去分析。frame_timer問題frame_timer主要用于控制video刷新:(1) frame_timer 初始值為0(2)第一幀先更新frame_timer,后續(xù)的幀以此為基準(zhǔn)按幀間隔播放;(3)當(dāng)出現(xiàn)seek相關(guān)的操作(快進(jìn)快退拖動等)時重新初始化frame_timer;(4)暫?;謴?fù)時需要
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 軟件安全人才隊(duì)伍建設(shè)研究-詳解洞察
- 梧州2025年廣西梧州市事業(yè)單位招聘1257人筆試歷年參考題庫附帶答案詳解
- 2025年中國塑鋼垂簾軌市場調(diào)查研究報(bào)告
- 2025年針織橫機(jī)配件項(xiàng)目可行性研究報(bào)告
- 廣州廣東廣州市花都區(qū)花山鎮(zhèn)和郁小學(xué)臨聘教師招聘筆試歷年參考題庫附帶答案詳解
- 廣東廣東海洋大學(xué)后勤保障部招聘非編制水電維修工(第二次)筆試歷年參考題庫附帶答案詳解
- 2025年球衣網(wǎng)布項(xiàng)目可行性研究報(bào)告
- 2025年水電解器架項(xiàng)目可行性研究報(bào)告
- 2025至2031年中國旋風(fēng)式二級回收裝置行業(yè)投資前景及策略咨詢研究報(bào)告
- 2025年抗菌防霉乳膠漆項(xiàng)目可行性研究報(bào)告
- EPC項(xiàng)目設(shè)計(jì)及施工的配合
- 年產(chǎn)5萬噸1,4-丁二醇的工藝流程設(shè)計(jì)
- (高清版)TDT 1037-2013 土地整治重大項(xiàng)目可行性研究報(bào)告編制規(guī)程
- 幼兒園春季開學(xué)教職工安全培訓(xùn)內(nèi)容
- 儲油罐安全操作規(guī)程培訓(xùn)
- 情緒障礙跨診斷治療的統(tǒng)一方案
- 《萬以內(nèi)數(shù)的認(rèn)識》大單元整體設(shè)計(jì)
- 中醫(yī)護(hù)理質(zhì)量敏感指標(biāo)的構(gòu)建
- 聚焦幼兒作品分析的游戲觀察與評價
- 創(chuàng)傷性腦疝查房
- 農(nóng)村常見傳染病預(yù)防知識講座
評論
0/150
提交評論