1. 程式人生 > >完成一個YUV檔案播放器

完成一個YUV檔案播放器

前面匆忙寫了很多篇文章,雖然都很簡單,但著實花了不少時間去研究的。幾年前寫了YUV轉換RGB的程式碼,當時只限於轉換成BMP來測試正確性。後來一直使用YUV Player Deluxe來看YUV檔案,但其支援格式不夠多。前段時間下定決定,將以前寫的YUV轉換程式碼完善一下,儘自己能力轉換各種YUV格式。一來好久沒練練MFC了(我在考慮要不要學C#),二來也寫個工具自己使用。

說話的,你不是在做專案嗎?你不是經常加班加點嗎?怎麼還有時間做?看官有所不知,小子能力有限,專案包羅永珍,小子無法通曉所有模組,有的時候要等其它人完成,小子愛莫能助。二來,小子所用都是中午別人休息時間,或晚上深夜時間,或週末別人喝咖啡、玩桌遊的時間。作為技術人,靠寫程式碼打發時間,其何哀耶。

目前該工具已經完成了。估計以後可能不再更新了。

一、功能

1、支援目前本人所瞭解、研究過的YUV格式,包括:

YUV400,介面中表示為Y。

YUV420平面格式:YUV420(I420);YV12;

YUV422平面格式:YUV422(I422);YV16;

YUV444格式:YUV444;

YUV422交織格式:YUY2(YUYV);YVYU;UYVY;VYUY;

半平面格式:NV12(也叫YUV420SP);NV21;NV16(也叫YUV422SP);NV61

2、系統預留部分解析度,同時支援自定義高寬,但無法儲存。

3、支援不同幀率播放,支援迴圈播放。

4、支援向前向後逐幀跳轉,支援第一幀、最後一幀跳轉。

5、支援視窗縮放。

6、支援儲存YUV檔案或BMP圖片檔案。

7、自動解析檔名,得到解析度、YUV格式。示例:yuv_qcif_yuv420sp.yuv,將解析到qcif解析度,即176x144,格式為NV 12。yuv_25x250.yuyv,得到解析度為25x250,格式為YUYV。

二、使用

直接將YUV檔案拖到播放器裡即可。

三、參考

1、參考yuvview原始碼的播放、暫停執行緒部分程式碼。(注:最新版本使用timer實現播放,不再使用執行緒)

2、介面風格設計參考YUV Player Duxe。

3、其它MFC有關的用法、技巧,由本人通過網路搜尋而得。

四、設計

1、YUV轉換RGB獨立成介面函式,方便使用,不與任何平臺、工具有關聯。

2、設定介面使用非模態對話方塊,通過不同視窗類傳遞引數。所有引數均在設定對話方塊類中實現。

3、獨立檔案開啟、記憶體分配、讀取檔案函式,使用幀索引值來定位每一幀,實現逐幀定位,同時也是播放的主要判斷依據。

4、使用不同的記憶體儲存YUV資料及轉換後的RGB資料,可儲存成YUV檔案或BMP圖片。

5、播放、暫停、停止,使用Timer來控制。

6、使用picture控制元件顯示圖片,GDI+實現。

v2.0版本介面如下:

2015.8.18 v4.0釋出

李遲 2015.8.21 

 

相關推薦

完成一個YUV檔案播放

前面匆忙寫了很多篇文章,雖然都很簡單,但著實花了不少時間去研究的。幾年前寫了YUV轉換RGB的程式碼,當時只限於轉換成BMP來測試正確性。後來一直使用YUV Player Deluxe來看YUV檔案,但其支援格式不夠多。前段時間下定決定,將以前寫的YUV轉換程式碼完善一下,

修改了一個YUV/RGB播放

最近在學習過程中檢視YUV/RGB畫素資料的時候,發現找不到一個合適的播放器。主流的YUV播放器大多隻支援YUV格式播放,卻不支援RGB格式資料播放。而我正好需要檢視RGB畫素資料。在Sourceforge上找到了一個比較好用的既支援YUV又支援RGB的播放器,但是發現有一些

4個小時實現一個HTML5音樂播放

同時 status parseint [0 ads 發布 大致 了解 mps 技術點:ES6+Webpack+HTML5 Audio+Sass 這裏,我們將一步步的學到如何從零去實現一個H5音樂播放器。 首先來看一下最終的實現效果:Demo鏈接 接下來就步入正題: 要

[SimplePlayer] 實現一個簡單的播放

false rip 音頻 class sam 文件中 多線程處理 設備 pos 簡單的播放器需要實現一個最基本的功能:播放視頻文件。 實現這個功能需要包含以下幾個步驟: 從視頻文件中提取視頻圖像 在屏幕上顯示視頻圖像 視頻幀的同步,也就是保證視頻圖像在合適的時間在屏幕

一個android ijkplayer播放

建立一個ijkplayer的播放器專案,需要三步設定: 一、在activity_main.xml中新增播放器標籤 <com.smallart.myapplication.media.IjkVideoView android:id="@+id/video_view"

樹梅派應用23:QT+樹莓派實現一個簡單的播放

說起樹莓派,買了也有一段時間了,但是始終都沒有做出什麼好玩的裝置出來,恰好最近在學C++,看到樹莓派放在牆角吃了一年多灰,為何不利用它來學一下程式設計呢? 先給我的工作臺來個特寫: 說幹就幹,在經歷了一番折騰以後,先準備所需的器材和必要的零部件,在這裡我簡單的羅列一下:先是

PCM檔案播放

基於webrtc的音訊模組寫的一個測試demo,然後再把測試demo修改下拿來當做工具使用。在平時開發中總是需要播放各種各樣的pcm檔案,然後每次都需要修改demo來測試,各種麻煩,於是這個小工具就產生了。 1. 基於OpenSLES實現的 2. 支援單雙通道,預設單通

很多年前用Excel vba寫的一個mp3音樂播放

    電子表格軟體也能做音樂播放器哦,很少見到吧? 2008年做的,今天翻出來了,呵呵。     咱不會玩圖片,介面不好看沒辦法。     下載連結:     http://downlo

C#基於WindowsMediaPlayer實現音視訊檔案播放

目的開發一個使用c#.net播放音訊和視訊檔案的Windows應用程式。設計使用OpenFileDialog控制元件,一個按鈕和“Windows Media Player”控制元件(COM元件)設計上述窗體。請注意,OpenFileDialog控制元件出現在表單下方(不在窗體

一個P2P線上播放

http://code.google.com/p/gmlive/國人出品,值得支援。也有ubuntu 7.1的包,看來開發也是用這個的。不過需要用mplayer作為前端UI,以mplayer的普及率應該沒問題吧。

ffmpeg+sdl教程----編寫一個簡單的播放5(同步視訊到音訊)

    個人認為,這這部分教程的新增程式碼量雖然不是最多的,難度卻是最大的,重複看了多次才明白,因為有兩個問題的困擾,搞得還不清楚: 1.音訊和視訊既然都有各自的時間戳,各自按各自的時間戳來播放不就行了,為什麼還需要同步呢? 2.如果要把視訊同步到音訊,怎麼同步?或者說以什麼

一個開源音樂播放,低仿QQ音樂!

有暇,弄了個音樂播放器,頁面效果整體上參考了QQ音樂,相關API使用了易源資料提供的相關介面(https://www.showapi.com/api/lookPoint/213),在此表示感謝。先來看看效果圖:應用程式主頁面:排行榜頁面:歌曲播放頁面:歌曲播放通知欄以及下載通

開發一個簡易音樂播放

本人初學Android,最近做了一個實現安卓簡單音樂播放功能的播放器,收穫不少,於是便記錄下來自己的思路與知識總結,重溫自己的探索之路。 1  那麼先上幾張截圖來看下程式實現效果吧 2 可以看出基本實現的功能有 暫停(播放),上(下)一首,停止播放

46 【golang專案】完成一個小小的播放功能

專案地址:https://github.com/helww/mylab/tree/master/go/player   這個專案中用到了readme說明檔案是一個markdown檔案。 基礎的控制語法,網上內容很多,隨便找就能看到。 但是裡面有演示部分,需要用github定義的語法來搞定。

46 【golang項目】完成一個小小的播放功能

syntax read markdown 很多 master basic mas blocks 地址 項目地址:https://github.com/helww/mylab/tree/master/go/player 這個項目中用到了readme說明文件是一個mar

如何才能使一個.mov檔案無法用Quicktime播放來轉換格式

用16進位制編輯器開啟你所選擇的那個MOV檔案,在該檔案的“udta”原子中插入該原子:       00 00 00 0C 75 64 74 61 00 00 00 0100 00 00 0C:該原子長度。75 64 74 61:即"nsav",該原子型別00 00 00

用javascript和html5做一個音樂播放,附帶源碼

功能 優化 str 自由 所有 音樂app 作者 弧形 ner 效果圖: 實現的功能 1、首頁 2、底部播放控件 3、播放頁面 4、播放列表 5、排行榜 6、音樂搜索 輸入搜索關鍵詞,點擊放大鏡圖標 7、側邊欄 目錄結構 開發心得與總結 1、輪播圖 首

讓我為你介紹一個神器:Chimee,一套可擴展的 H5 視頻播放解決方案

包括 api 人員 保持 打包 需求 解耦 日常 開發 Chimee(讀“奇米”, [t??‘m?:])是由奇舞團開源的一套 H5 視頻播放器解決方案,由奇舞團視頻雲前端團隊結合在業務和視頻編解碼方向的沈澱積累傾心打造。 Chimee 支持 MP4、M3U8、FLV 等

QT制作一個圖片播放

相對 顯示圖片 itl 列表 獲取目錄 ima 完整 功能 state 前言:使用qt制作了一個簡單的圖片播放器,可以播放gif、png等格式圖片 先來看看播放器的功能(當然是很簡陋的,沒有很深入的設計): 1、點擊圖片列表中圖片進行播放。 2、自動播放,

JavaScript多個h5播放video,點擊一個播放其他暫停

html itl file dev elements tex oct () utf <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8">