① C#或者C++中,這樣獲取視頻文件的播放時長
首先,你要搞清楚你的視頻類型是什麼?是FLV,MP4還是其他的?
其次,在搞清楚了視頻類型之後,你可以通過分析視頻的數據頭(比如FLV視頻的flv header),
通常的視頻類型的播放時長都在header裡面記錄著。(flv裡面是metadata裡面的ration屬性)
最後,如果視頻頭裡面沒有記錄(有這個可能,只不過一般不會),那麼就比較麻煩了,就要通過分析整個文件的大小、視頻的幀率等等具體的一些參數來獲得時長。如果真的到了這一步,那麼一句兩句話很難說清楚。
② 如何在CMD中查看MP4文件的時長(用命令實現)
我用如下powershell代碼親測可用:
$Directory = "F:\"
$Shell = New-Object -ComObject Shell.Application
Get-ChildItem -Path $Directory -Recurse -Force | ForEach {
$Folder = $Shell.Namespace($_.DirectoryName)
$File = $Folder.ParseName($_.Name)
$Duration = $Folder.GetDetailsOf($File, 27)
[PSCustomObject]@{
Name = $_.Name
Size = "$([int]($_.length / 1mb)) MB"
Duration = $Duration
}
} | Export-Csv -Path "./temp.csv" -NoTypeInformation
裡面F盤是我U盤,時長為0的或不顯示的一般是音頻或視頻文件損壞了。
③ c語言程序設計MP3或MP4文件基本信息的解析
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;
}
④ 怎樣用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函數播放該文件
}
⑤ 如何在linux中查看mp4文件的相關參數,例如視頻時長,解析度大小等。
ffmpeg
,mplayer都可以查看視頻文件的信息,這兩個都是命令行的,如果是圖形界面,可以直接在播放器中查看視頻文件的屬性信息.