2012-03-22 5 views
2

私は現在、この問題で何時間も働いています。私はあなたのハードディスクドライブにアクセスする子ウィンドウからビデオを取得するときに、そのビデオからフレームレートやその他のプロパティを取得する必要があるというプログラムを作成する必要があります。ビデオのFPSをプログラムで取得する方法はありますか?

ここでは、動画とそのプロパティの取得方法のサンプルコードを示します。

SelectDirectoryWindow selectDirectoryWindow = (sender as SelectDirectoryWindow); 
     if (selectDirectoryWindow.DialogResult.GetValueOrDefault(false)) 
     { 
      foreach (System.IO.FileInfo fileInfo in selectDirectoryWindow.VideoFiles) 
      { 
       VideoFileInfo videoFileInfo = new VideoFileInfo(); 
       videoFileInfo.FileName = fileInfo.Name; 
       videoFileInfo.Path = fileInfo.FullName; 
       videoFileInfo.Extension = fileInfo.Extension; 
       videoFileInfo.FileSize = fileInfo.Length; 

       switch (videoFileInfo.Extension.ToUpper()) 
       { 
        case ".WMV": 
         videoFileInfo.VideoFileType = Constants.VideoFileType.Wmv; 
         break; 
        case ".MOV": 
         videoFileInfo.VideoFileType = Constants.VideoFileType.ProResHq; 
         break; 
        case ".MPG": 
         videoFileInfo.VideoFileType = Constants.VideoFileType.Mpeg2; 
         break; 
        case ".ISM": 
         videoFileInfo.VideoFileType = Constants.VideoFileType.SmoothStreaming; 
         break; 
        case ".MP4": 
         videoFileInfo.VideoFileType = Constants.VideoFileType.iPad; 
         break; 
        default: 
         break; 
       } 

私もこのことから、フレームレート、ビデオ再生時間とビットレートを得ることができる方法はありますか?フレームレートとビットレートを取得するにはどうすればよいですか?前もって感謝します。

答えて

7

私は答えを見つけました。 Microsoft.WindowsAPICodePack.ShellにはShellFileクラスがあります。そこにはビデオのプロパティを取得できます。ファイルのソース(ファイルパス)を指定するだけです。そこから何かを得ることができます。

ここで私はフレームレートを取得しました。

ShellFile shellFile = ShellFile.FromFilePath(sourceFile); 
     return (shellFile.Properties.System.Video.FrameRate.Value/1000).ToString(); 
関連する問題