社区
C#
帖子详情
如何取得视频(MP4)文件的时长
cceon
2012-01-29 03:44:55
如题,谢谢
...全文
828
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,目标完成。
js读取本地
mp4
视频
文件
时长
js间接获取
视频
文件
时长
获取
MP4
视频
文件
的
时长
,宽度,长度
项目有聊天功能,需要发送
MP4
文件
,如果
MP4
文件
本地没有,则需要URL下载到本地,完后发送
MP4
视频
文件
,这时候需要
MP4
视频
文件
的
时长
,和
视频
的长宽,获取方法很简单: 获取
视频
,生成file
文件
: File file = new ...
实战解决获取
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,094
社区成员
642,554
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章