C# 获得MP4时长

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.IO;
using System.Windows.Forms;

进入shell32.dll 在windows\system32下

public static string GetMediaTimeLen(string path)
{
try
{
Shell32.Shell shell = new Shell32.Shell();
//文件路径
Shell32.Folder folder = shell.NameSpace(Path.GetDirectoryName(path));
//文件名称
Shell32.FolderItem folderitem = folder.ParseName(Path.GetFileName(path));
if (Environment.OSVersion.Version.Major >= 6)
{
return folder.GetDetailsOf(folderitem, 27);
}
else
{
return folder.GetDetailsOf(folderitem, 21);
}
}
catch (Exception ex) { return null; }
}

public static int GetMediaTimeLenSecond(string path)
{
try
{
Shell32.Shell shell = new Shell32.Shell();
//文件路径
Shell32.Folder folder = shell.NameSpace(shell.NameSpace(Path.GetDirectoryName(path)));
//文件名称
Shell32.FolderItem folderitem = folder.ParseName(Path.GetFileName(path));
string len;
if (Environment.OSVersion.Version.Major >= 6)
{
len = folder.GetDetailsOf(folderitem, 27);
}
else
{
len = folder.GetDetailsOf(folderitem, 21);
}

string[] str = len.Split(new char[] { ‘:‘ });
int sum = 0;
sum = int.Parse(str[0]) * 60 * 60 + int.Parse(str[1]) * 60 + int.Parse(str[2]);

return sum;
}
catch (Exception ex) { return 0; }
}

private void button5_Click(object sender, EventArgs e)
{
string FileName = @"C:\Users\Administrator\Documents\Tencent Files\853740877\FileRecv\1.2ArcGIS体系.mp4";
MessageBox.Show(GetMediaTimeLen(FileName) + ",秒数:" + GetMediaTimeLenSecond(FileName));
}

时间: 2024-08-03 08:32:11

C# 获得MP4时长的相关文章

统计指定目录下所有mp4文件的时长(包含子目录下的文件)

1 # -*- coding:utf-8 -*- 2 # Author :Zcb 3 4 import os 5 from moviepy.editor import VideoFileClip 6 7 file_Dir = u"e:\\test" #加个u 是表示unicode 一般用在中文字符前 8 sum_time =0 9 10 class FileCheck(): 11 def __init__(self): 12 self.file_dir = file_Dir 13 14

【Android端 APP 启动时长获取】启动时长获取方案及具体实施

一.什么是启动时长? 1.启动时长一般包括三种场景,分别是:新装包的首次启动时长,冷启动时长.热启动时长 冷启动 和 热启动 : (1)冷启动:当启动应用时,后台没有该程序的进程,此时启动的话系统会分配一个新的进程给应用. (2)热启动:程序的进程依然存在,启动时通过已有进程启动进入到Activity显示页面的,就是热启动,或者从Android官网来看我们获取到的其实是温启动时长,就是Activity不存在的情况. (3)新装包的启动时长: 新装包的启动时长,预估是最长的,并且在5.0以下及5.

统计指定目录下的视频时长

有时间可以写成递归的 1 package org.zln.video.demo1; 2 3 import it.sauronsoftware.jave.Encoder; 4 import it.sauronsoftware.jave.EncoderException; 5 import it.sauronsoftware.jave.InputFormatException; 6 import it.sauronsoftware.jave.MultimediaInfo; 7 8 import ja

使用FFMPEG进行一些视频处理(C#)视频合并、转码、获取时长

FFMPEG的强大无需多说,举几个用到的功能,直接贴代码了 还有更多命令用到时搜索即可 视频转码 public static string DecodeMp4ToFlv(string mp4, string format = ".flv", int timeout = 0) { var args = "-y -i {0} -vcodec copy {1}".Formatting("\"{0}\"".Formatting(mp4

用js获取视频播放时长

用js实现读取本地mp4文件时长 利用h5 video标签加载视频文件,在读取duration就可以了 问题在于要更换文件,使用<input type="file" > 标签发现读取的文件路径是隐藏的c:/fakepath/xxx.mp4 给video更换src时候会提示找不到文件... 又找了很久,大多是加载flash控件然后通过flash再取,不太喜欢这么做. 如今这H5的时代感觉这个小功能应该不是问题,又想了想,之前做过js读取本地图片在web上做预览,估计读个视频应

获取音、视频时长(NAudio,Shell32,FFmpeg)

参考网址:https://blog.csdn.net/u013810234/article/details/57471780 以下为本次测试用到的音.视频格式: audio :".wav;.mp3;.wma;.ra;.mid;.ogg;.ape;.au;.aac;"; vedio :".mp4;.mpg;.mpeg;.avi;.rm;.rmvb;.wmv;.3gp;.flv;.mkv;.swf;.asf;"; Note: 1. 测试音.视频均为对应格式的有效文件(下

javascript 获得以秒计的视频时长

<!DOCTYPE html> <html> <body> <h3>演示如何访问 VIDEO 元素</h3> <video id="myVideo" width="320" height="240" controls> <source src="/i/movie.mp4" type="video/mp4"> <sour

andriod编程中如何获取一段语音的时长?

在android有关语音的应用中,我们可能需要录音的长度,这个长度很好获取,只要在刚刚开始录音的时候获取本地时间,录音结束的时候获取本地时间,之后一减就可以得到他的时间长度. 代码:first = (int)(System.currentTimeMillis()/1000);//当点击录音的时候获取本地时间,除以1000得到时间单位是秒,否则是毫秒. second = (int)(System.currentTimeMillis()/1000);//录音结束的时候获取本地时间         

LK按作业执行时长优化

新到一家公司,需要折腾点认可出来.然后开始苦逼的优化工作.暂时不吐槽权限问题!!!优化效果优化前,作业历史记录(前30)P图优化前,CPU使用情况有几个作业平均时长2.5~3.5小时,还有很多时长在半小时以上的作业,基本要到11-12点才能完成作业统计.CPU每天7:00-11:00一直维持在比较高的数值.优化后,作业历史记录(前30)P图最近三天的CPU情况最近一天的CPU情况优化后,作业执行时长明显降低,从最近3天执行情况看,9:00前统计作业能够执行完成.服务器CPU高峰时段由之前的7:0