基于Qt的嵌入式媒體播放器系統的設計

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