社区
C#
帖子详情
如何取得视频(MP4)文件的时长
cceon
2012-01-29 03:44:55
如题,谢谢
...全文
833
3
打赏
收藏
如何取得视频(MP4)文件的时长
如题,谢谢
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
cceon
2012-01-30
打赏
举报
回复
[Quote=引用 1 楼 happy09li 的回复:]
由于需要用到实时读取影音文件(mp3、wma、wmv …)播放时间长度的功能,搜索到的结果有:
(1) 硬编码分析影音文件,需要分析各种媒体格式,代价最大;
(2) 使用wmlib sdk,需要熟悉sdk各个接口,且不同版本的wm接口有别,代价次之;
(3) 使用系统shell32的com接口,直接访问媒体文体属性,取其特定内容,代价最小。
显然第3种方案见效……
[/Quote]
谢谢,不过针对的是F4V(MPEG4)格式的。SHELL无法读取的到
hwbox
2012-01-29
打赏
举报
回复
偶记得FFMEPG中有相应方法的,mencoder也行,关注过一段时间,没太深入。
熙风
2012-01-29
打赏
举报
回复
由于需要用到实时读取影音文件(mp3、wma、wmv …)播放时间长度的功能,搜索到的结果有:
(1) 硬编码分析影音文件,需要分析各种媒体格式,代价最大;
(2) 使用wmlib sdk,需要熟悉sdk各个接口,且不同版本的wm接口有别,代价次之;
(3) 使用系统shell32的com接口,直接访问媒体文体属性,取其特定内容,代价最小。
显然第3种方案见效最快,立即操刀:
① 引用shell32底层接口c:windowssystem32shell32.dll,vs自动转换成interop.shell32.dll(注:64位系统和32位系统生成的interop.shell32.dll不一样)
② 编码读取播放时间长度:
/// <summary>
/// 获取媒体播放时间长度,格式00:00:00。
/// </summary>
/// <param name="path">媒体路径</param>
/// <returns>播放时间长度</returns>
public static string getmediaduration(this string path)
{
try
{
shell32.shell shell = new shell32.shellclass();
shell32.folder folder = shell.namespace(path.substring(0, path.lastindexof("\")));
shell32.folderitem folderitem = folder.parsename(path.substring(path.lastindexof("\") + 1));
return folder.getdetailsof(folderitem, 21);
}
catch (exception ex)
{
ex.error();
return null;
}
}
③ 调用结果,在win2003上应使用folder.getdetailsof(folderitem, 21) ,而在vista上应使用folder.getdetailsof(folderitem, 27) ,主要是因为不同系统下文件属性索引顺序不同造成。只要右键单击文件属性,能看到的媒体属性都能取到,可以换不同的索引值来取。如下所示,取出的时间长度是 00:03:52,目标完成。
获取
MP4
视频
文件
的
时长
,宽度,长度
项目有聊天功能,需要发送
MP4
文件
,如果
MP4
文件
本地没有,则需要URL下载到本地,完后发送
MP4
视频
文件
,这时候需要
MP4
视频
文件
的
时长
,和
视频
的长宽,获取方法很简单: 获取
视频
,生成file
文件
: File file = new ...
js读取本地
mp4
视频
文件
时长
js间接获取
视频
文件
时长
实战解决获取
mp4
格式
文件
信息,
时长
等及
mp4
存储结构探索
实战解决获取
mp4
格式
文件
信息,
时长
等及
mp4
存储结构探索一、认识
mp4
MP4
的组成BOX简介Movie Box,存储
mp4
的 metadata,一般位于
mp4
文件
的开头。二、通过工具获取
mp4
时长
及元信息通过ffprobe对
视频
进行分析三、解析...
java获取
mp4
视频
时长
_Java获取
视频
文件
时长
// 输出0时0分0秒0毫秒的格式 System.out.println("此
视频
时长
为:" + ls / (60 * 60 * 1000) + "时" + (ls % (60 * 60 * 1000)) / 60000 + "分" + ((ls % (60 * 60 * 1000)) % 60000) / 1000 + "秒" + (((ls % (60 ...
java获取一段
视频
/
mp4
的
时长
【代码】java获取一个
视频
/
mp4
的
时长
,获取
视频
秒数
C#
111,112
社区成员
642,554
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章