mp4編程
『壹』 MP430和89C51的具體不同,MP430是用KEIL來編程的嗎
51是8位的,430是16位的,430的功耗低,最大逗敗肢的區別就是430管腳的輸入輸出要進行設置的枯哪,不像51那樣直接就可以拉高拉低。430內部有自帶AD。 其他的區別不是很大。430一般都是山世用IAR編程的,KEIL不能的
『貳』 怎樣用c語言編程打開一個文件(比如mp3,mp4)
可以使用PlaySound()函數播放mp3音頻,該函數原型位於windows.h。
PlaySound函數的聲明為:
BOOL PlaySound(LPCSTR pszSound, HMODULE hwnd,DWORD fdwSound);
參數pszSound是指定了要播放聲音的字元串。
參數hwnd是應用程序的實例句柄,除非pszSound的指向一個資源標識符(即fdwSound被定義為SND_RESOURCE),否則必須設置為NULL。
參數fdwSound是標志的組合,如下表所示。若成功則函數返回TRUE,否則返回FALSE。
使用PlaySound函數時需要在#include<windows.h>後面加上(注意:不能加在前面):
常式:
CFileDialog dlg(TRUE, "mp3", "*.mp3", OFN_HIDEREADONLY|OFN_ALLOWMULTISELECT, "mp3文件(*.mp3)|*.mp3|");
/*創建選擇對話框,讓用戶從文件夾中選取一個MP3文件*/
int iRet = dlg.DoModal();//獲得對話框返回值
if(IDOK == iRet) //如果返回值成功,表明成功獲取一個MP3文件
{
CString pathName= dlg.GetPathName(); //得到文件的路徑名稱
PlaySound( pathName , NULL, SND_FILENAME | SND_ASYNC);//用playsound函數播放該文件
}
『叄』 自己做一個mp4視頻播放器需要哪些知識,誰能幫我列出來謝謝。
首先是編程語言,這是必須的。
然後給你說一下播放器的基本工作:
首先打開文件,根據文件頭識別文件類型(你要做的只放mp4,不符合的提示格式不支持)
如果是mp4,分流視頻與音頻
罩態棚判斷視頻與音頻格式,比如視頻是h264,音頻aac的格式,調用該格式的解碼器(解碼器不用寫,你要知道怎麼用官方解碼器,自己寫解碼器就別想了)
最後輸出解碼後的視頻流,音頻流到硬體設備。
最後來說一下mp4
可以用mp4封裝的視頻格式主要有mpeg4,DivX,Xvid,h264這些mpeg4標準的視頻;音頻格式mp3和aac。
以上就是播放器的基本框架了
最後,看下mpeg4標准也有必要(不用都看,前幾個和Part 10比較重要,google一下文件編號,大部分都找得到)
MPEG-4由很多part組成,包括以下的部分:
Part 1(ISO/IEC 14496-1):系統:描述視頻和音頻數據流的控制、同步以及混合方式(即混流 Multiplexing,簡寫為MUX)。
Part 2(ISO/IEC 14496-2):視頻:定義了一個對各種視覺信息(包括自然視閉隱頻、靜止紋理、計算機合成圖形等等)的編解碼器。(例如XviD編碼就屬於MPEG-4 Part 2)
Part 3(ISO/IEC 14496-3):音頻:定義了一個對各種音頻信號進行編碼的編解碼器的集合。包括高級音頻編碼(Advanced Audio Coding,縮寫為AAC)的若干變形和其他一些音頻/語音編碼工具。
Part 4(ISO/IEC 14496-4):一致性:定義了對本標准其他的部分進行一致性測試的程序。
Part 5(ISO/IEC 14496-5):參考軟體:提供了用於演示功能和說明本標准其他部分功能的軟體。
Part 6(ISO/IEC 14496-6):多媒體傳輸集成框架(DMIF for Delivery Multimedia Integration Framework)
Part 7(ISO/IEC 14496-7):優化的參考軟體:提供了對實現進行優化的例子(這里的實現指的是第五部分)。
Part 8(ISO/IEC 14496-8):在IP網路上傳輸:定義了在IP網路上傳輸MPEG-4內容的方式。
Part 9(ISO/IEC 14496-9):參考硬體物則:提供了用於演示怎樣在硬體上實現本標准其他部分功能的硬體設計方案。
Part 10(ISO/IEC 14496-10):高級視頻編碼或稱高級視頻編碼(Advanced Video Coding,縮寫為AVC):定義了一個視頻編解碼器(codec)。AVC和XviD都屬於MPEG-4編碼,但由於AVC屬於MPEG-4 Part 10,在技術特性上比屬於MPEG-4 Part2的XviD要先進。另外,它和ITU-T H.264標準是一致的,故又稱為H.264。
Part 12(ISO/IEC 14496-12):基於ISO的媒體文件格式:定義了一個存儲媒體內容的文件格式。
Part 13(ISO/IEC 14496-13):知識產權管理和保護(IPMP for Intellectual Property Management and Protection)拓展。
Part 14(ISO/IEC 14496-14):MPEG-4文件格式:定義了基於第十二部分的用於存儲MPEG-4
Part 15(ISO/IEC 14496-15):AVC文件格式:定義了基於第十二部分的用於存儲第十部分的視頻內容的文件格式。
Part 16(ISO/IEC 14496-16):動畫框架擴展(AFX : Animation Framework eXtension)。
Part 17(ISO/IEC 14496-17):同步文本字幕格式。
Part 18(ISO/IEC 14496-18):字體壓縮和流式傳輸(針對開放字體格式 Open Font Format)。
Part 19(ISO/IEC 14496-19):合成材質流(Synthesized Texture Stream)。
Part 20(ISO/IEC 14496-20):簡單場景表示(LASeR for Lightweight Scene Representation。
Part 21(ISO/IEC 14496-21):用於描繪(Rendering)的MPEG-J拓展。
Part 22(ISO/IEC 14496-22):開放字體格式(Open Font Format)。
Part 23(ISO/IEC 14496-23):符號化音樂表示(Symbolic Music Representation)。
Part 24(ISO/IEC 14496-24):音頻與系統交互作用(Audio and systems interaction)。
Part 25(ISO/IEC 14496-25):3D圖形壓縮模型(3D Graphics Compression Model)。
Part 26(ISO/IEC 14496-26):音頻一致性檢查:定義了測試音頻數據與ISO/IEC 14496-3是否一致的方法(Audio conformance)。
Part 27(ISO/IEC 14496-27):3D圖形一致性檢查:定義了測試3D圖形數據與ISO/IEC 14496-11:2005, ISO/IEC 14496-16:2006, ISO/IEC 14496-21:2006, 和 ISO/IEC 14496-25:2009是否一致的方法(3D Graphics conformance)。
『肆』 如何將avi格式轉為mp4編程
用「格式工廠」軟體可以把AVI格式轉換成 MP4格式。
操作為:
1.電腦上網路搜索「格式工廠」下載,安裝完畢後打開。
2.
點擊「視頻」,選擇「MP4」。
3.
如果對文件有要求,可以點擊「輸出配置」進行設置。點擊「添加文件」,選擇AVI文件後,點擊「確定」。
4.
在該界面點擊「開始」即可開始轉換格式察則碼。
輸出文件位置在「輸出配置」裡面可以敗哪盯笑設置。
『伍』 如何用易語言編程一個MP4播放器
我也正在找呢 找到Q503012188
『陸』 c語言程序設計MP3或MP4文件基本信息的解析
找了個MP3看了下,comment是29個位元組。
可參考 http://www.chineselinuxuniversity.net/articles/27374.shtml
拿VC的C語言寫了下:
頭文件:
#include <stdio.h>
// TODO: reference additional headers your program requires here
#define MP3_ID3_LENGTH 10
typedef struct tag_ID3_INFO
{
} ID3_INFO;
#define IDENTIFY_LEN 3
#define TITLE_LEN 30
#define ARTIST_LEN 30
#define ALBUM_LEN 30
#define YEAR_LEN 4
#define COMMENT_LEN 30
#define GENRE_LEN 1
// IDENTIFY_LEN + TITLE_LEN +...
#define MP3_INFO_LENGTH 128
typedef struct tag_MP3_INFO
{
char Identify[IDENTIFY_LEN + 1]; //TAG三個字母
//這里可以用來鑒別是不是文件信息內容
char Title[TITLE_LEN + 1]; //歌曲名,30個位元組
char Artist[ARTIST_LEN + 1]; //歌手名,30個位元組
char Album[ARTIST_LEN + 1]; //所屬唱片,30個位元組
char Year[YEAR_LEN + 1]; //年,4個位元組
char Comment[COMMENT_LEN + 1]; //注釋,28個位元組
char Genre[GENRE_LEN + 1]; //類型 ,1個位元組
} MP3_INFO;
C文件:
#include <string.h>
#define MP3_OK 1
#define MP3_ERROR 1
FILE *OpenMp3File(char *pFileName);
int ReadMP3Info(FILE *pFile, MP3_INFO *pstInfo);
int OutputMP3Info(MP3_INFO *pstMp3Info);
int main(int argc, char* argv[])
{
FILE *pFile = NULL;
MP3_INFO stMp3Info = {0};
char *pfname = "E:\\Project\\MP3\\test.MP3";
pFile = OpenMp3File(pfname);
if (NULL == pFile)
{
return MP3_ERROR;
}
ReadMP3Info(pFile, &stMp3Info);
printf("\r\nMP3 file: %s", pfname);
OutputMP3Info(&stMp3Info);
printf("Hello World!\n");
return MP3_OK;
}
FILE *OpenMp3File(char *pFileName)
{
FILE *pFile = NULL;
pFile = fopen(pFileName,"rb");
if (NULL==pFile)
{
printf("open read file error!!");
return NULL;
}
return pFile;
}
int ReadMP3Info(FILE *pFile, MP3_INFO *pstInfo)
{
int len = 0;
if ((NULL == pFile) || (NULL == pstInfo))
{
return MP3_ERROR;
}
fseek(pFile, 0, SEEK_END);
len = ftell(pFile);
if (len <= (MP3_INFO_LENGTH + MP3_ID3_LENGTH))
{
return MP3_ERROR;
}
memset(pstInfo, 0, sizeof(MP3_INFO));
fseek(pFile, -MP3_INFO_LENGTH, SEEK_END);
len = fread((char *)(pstInfo->Identify), 1, IDENTIFY_LEN, pFile);
len += fread((char *)(pstInfo->Title), 1, TITLE_LEN, pFile);
len += fread((char *)(pstInfo->Artist), 1, ARTIST_LEN, pFile);
len += fread((char *)(pstInfo->Album), 1, ALBUM_LEN, pFile);
len += fread((char *)(pstInfo->Year), 1, YEAR_LEN, pFile);
len += fread((char *)(pstInfo->Comment), 1, COMMENT_LEN, pFile);
len += fread((char *)(pstInfo->Genre), 1, GENRE_LEN, pFile);
if (MP3_INFO_LENGTH != len)
{
return MP3_ERROR;
}
return MP3_OK;
}
int OutputMP3Info(MP3_INFO *pstMp3Info)
{
printf("\r\nTag : %s", pstMp3Info->Identify);
printf("\r\nTitle : %s", pstMp3Info->Title);
printf("\r\nArtist : %s", pstMp3Info->Artist);
printf("\r\nAlbum : %s", pstMp3Info->Album);
printf("\r\nYear : %s", pstMp3Info->Year);
printf("\r\nComment: %s", pstMp3Info->Comment);
return MP3_OK;
}
測試:
MP3 file: E:\Project\MP3\test.MP3
Tag : TAG
Title : TrackTitle
Artist : ArtistName
Album : AlbumTitle
Year : 2012
Comment: This is a comment