基于Qt的嵌入式媒體播放器系統(tǒng)的設(shè)計(jì)
本文引用地址:http://www.ex-cimer.com/article/152530.htm
圖2 系統(tǒng)數(shù)據(jù)流程
本方法的基本思想是以視頻流為主媒體流,音頻流為從媒體流,視頻的播放速率保持不變,根據(jù)本地系統(tǒng)時(shí)鐘確定的實(shí)際顯示時(shí)間,通過調(diào)整音頻播放速度來達(dá)到音視頻同步。整個(gè)系統(tǒng)的音視頻同步數(shù)據(jù)流程見圖3。首先選擇一個(gè)本地系統(tǒng)時(shí)鐘參考(LSCR),要求本地系統(tǒng)時(shí)鐘參考上的時(shí)間是線性遞增的。然后將LSCR分送到視頻解碼器和音頻解碼器,由這兩個(gè)解碼器根據(jù)各幀的PTS值對照本地系統(tǒng)時(shí)鐘參考產(chǎn)生各幀準(zhǔn)確的顯示或回放的時(shí)間。也就是說,生成輸出數(shù)據(jù)流時(shí)依據(jù)本地參考時(shí)鐘上的時(shí)間給每個(gè)數(shù)據(jù)塊都打上時(shí)間戳(一般包括開始時(shí)間和結(jié)束時(shí)間)。在播放時(shí),讀取數(shù)據(jù)塊上的時(shí)間戳,同時(shí)根據(jù)本地系統(tǒng)時(shí)鐘參考上的時(shí)間來安排播放。
圖3 音視頻同步數(shù)據(jù)流程
基于時(shí)間戳的播放過程中,僅僅對早到的或晚到的數(shù)據(jù)塊進(jìn)行等待或快速處理,往往是不夠的。如果想要更加主動(dòng)并且有效地調(diào)節(jié)播放性能,就需要引入反饋機(jī)制,也就是通過對比音視頻的時(shí)間戳將當(dāng)前數(shù)據(jù)流的播放狀態(tài)反饋給上層的“源”。如果音頻流滯后,就即時(shí)通知音頻解碼器加快音頻流輸出,但是如果滯后太多,則直接將當(dāng)前數(shù)據(jù)丟棄,直接跳到下一幀;如果視頻流滯后,就通知音頻解碼器減慢音頻輸出速度等待視頻流,如滯后太多也直接進(jìn)行跳幀。數(shù)據(jù)流首先通過分離器分解為視頻數(shù)據(jù)流和音頻數(shù)據(jù)流,然后經(jīng)過對應(yīng)的解碼器,同時(shí)由本地系統(tǒng)時(shí)鐘來進(jìn)行時(shí)間戳控制;獲得準(zhǔn)確顯示或回放時(shí)間以后進(jìn)行時(shí)間戳比較;若同步則直接輸出,不同步則進(jìn)行音頻跳幀或等待,直到同步后輸出。
5 總結(jié)
本文的創(chuàng)新點(diǎn)是系統(tǒng)具有很好的可移植性,它的實(shí)現(xiàn)過程以及核心的代碼對類似應(yīng)用具有很好的可重用性,只需通過較小的修改就能移植到不同的操作系統(tǒng)和平臺(tái)上,可以廣泛使用在各種嵌入式系統(tǒng)中,如PDA,智能手機(jī)等方面,具有較高的經(jīng)濟(jì)價(jià)值,同時(shí)也可以為開發(fā)其他嵌入式系統(tǒng)軟件提供參考意見;其次,本文圍繞用戶的基本需求,提出了一個(gè)基于嵌入式Linux操作系統(tǒng)和圖形用戶界面QT/Embedded的媒體播放器設(shè)計(jì)方案。該設(shè)計(jì)方案具有低耦合、高內(nèi)聚、可擴(kuò)展、可移植等良好特點(diǎn),并在設(shè)計(jì)的基礎(chǔ)上將該方案實(shí)現(xiàn)。該媒體播放器支持編碼格式為MPEG-1、MPEG-2和MPEG-4的多媒體文件。同時(shí)具有存儲(chǔ)空間小,響應(yīng)速度快的性能特點(diǎn),并支持播放控制、播放列表等功能,可自由切換中英文雙語界面,用戶可以選擇打開任意位置的文件。項(xiàng)目經(jīng)濟(jì)效益50萬元。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論