前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Excel催化剂开源第37波-音视频文件元数据提取(分辨率,时长,采样率等)

Excel催化剂开源第37波-音视频文件元数据提取(分辨率,时长,采样率等)

作者头像
Excel催化剂
发布2021-08-19 15:49:14
3910
发布2021-08-19 15:49:14
举报
文章被收录于专栏:Excel催化剂

上一篇提到图片元信息Exif的提取,当然还有一类音视频文件,也同样存储着许多宝贵的元数据,那就开源到底呗,虽然自己找寻过程也是蛮艰辛坎坷的,大家看后有收获,只求多多传播下,让前人的工作可以更有价值。

此篇对应的Excel催化剂功能实现:第83波-遍历文件夹内文件信息特别是图像、音视频等特有信息 https://www.jianshu.com/p/ad98adc64f0b

音视频元数据的提取,用到了MediaToolkit类库,较其他复杂的方案来说,这个对我这种业余开发者最友好,最后很幸运地相遇了它。

MediaToolkit类库

直接上代码,同样只需三两行代码就可以拿到核心信息。

``` private void AddMediaInfo(DataRow dr, string filePath) { try { using (var engine = new Engine()) { var inputFile = new MediaToolkit.Model.MediaFile { Filename = filePath }; engine.GetMetadata(inputFile); var videoData = inputFile.Metadata.VideoData; var audioData = inputFile.Metadata.AudioData; dr[ColNameOfVideoDuration] = Math.Round(inputFile.Metadata.Duration.TotalSeconds / 60.0, 2);

代码语言:javascript
复制
                if (videoData != null)
                {
                    dr[ColNameOfVideoFormat] = videoData.Format;
                    string sizeStr = videoData.FrameSize;
                    dr[ColNameOfVideoWidth] = sizeStr.Split('x')[0];
                    dr[ColNameOfVideoHeight] = sizeStr.Split('x')[1];
                }

                if (audioData != null)
                {
                    dr[ColNameOfAudioFormat] = audioData.Format;
                    dr[ColNameOfAudioBitRateKbs] = audioData.BitRateKbs;
                    dr[ColNameOfAudioSampleRate] = audioData.SampleRate;
                }
            }
        }
        catch (Exception)
        {

        }

    }
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-05-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Excel催化剂 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档