[英]How to access video file info in c#
我正在从文件夹中读取.mp4文件,目前,我正在使用FileInfo提取名称FileInfo,这仅限于电影包含的一些细节。 我还需要提取其他信息,例如标题字幕注释类型导演导演制片人
DirectoryInfo dirInfo = new DirectoryInfo(@"..\bin\Debug\Folder");
FileInfo[] fileNames = dirInfo.GetFiles("*.mp4");
foreach (FileInfo fi in fileNames)
{
string movieName = fi.Name.Split('.')[0]; // returns the file name
VideoFile newVideo = new VideoFile(movieName); // insert name in object
director.ListVid.Add(newVideo); // add object to a director object - aka another list
}
listVideoDirector.Add(director); //add director object to list
我的videoFile对象具有更多属性。 我需要从实际文件中提取它们
我用过FFProbe库
下载库: https : //www.nrecosite.com/downloads/video_info_free.zip
例如 :
string path = "Video path";
NReco.VideoInfo.FFProbe ffProbe = new NReco.VideoInfo.FFProbe();
MediaInfo videoInfo = ffProbe.GetMediaInfo(path );
TimeSpan videoDuration = videoInfo.Duration;
if (videoInfo.Streams[index].CodecType.ToLower() == "video")
{
int iWidth = videoInfo.Streams[index].Width;
int iHeight = videoInfo.Streams[index].Height;
string sVideoFrameRate = videoInfo.Streams[index].FrameRate.ToString();
string sVideoCodecName = videoInfo.Streams[index].VideoCodecName;
//...
}
else if(videoInfo.Streams[index].CodecType.ToLower() == "audio")
{
string sAudioCodecName = videoInfo.Streams[index].CodecName;
//...
}
您可以使用ffmpeg(ffmpeg.exe或ffprobe.exe)从视频或音频文件中提取元数据(它支持几乎所有已知格式)。 可以使用System.Diagnostics从C#代码执行FFMpeg。应从控制台输出中解析过程和视频文件元数据(您可以重定向stdout并将其读取为字符串)。
作为编写执行ffprobe的自定义代码的替代方法,您可以使用现有的.NET包装器之一,该包装器将使用一行代码返回结果(例如NReco VideoInfo,我是该库的作者)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.