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