相关疑难解决方法(0)

在.net中使用FFmpeg?

所以我知道这是一个相当大的挑战,但我想使用FFmpeg库在c#中编写一个基本的电影播放器​​/转换器.但是,我需要克服的第一个障碍是将FFmpeg库包装在c#中.我已经下载了ffmpeg但无法在Windows上编译它,所以我为我下载了一个预编译版本.太棒了.然后我开始寻找C#包装器.

我环顾四周,发现了一些包装器,如SharpFFmpeg(http://sourceforge.net/projects/sharpffmpeg/)和ffmpeg-sharp(http://code.google.com/p/ffmpeg-sharp/).首先,我想使用ffmpeg-sharp作为其LGPL而SharpFFmpeg是GPL.但是,它有很多编译错误.事实证明它是为单声道编译器编写的,我尝试用单声道编译它但无法弄清楚如何.然后我开始自己手动修复编译器错误,但遇到了一些可怕的错误,并认为我最好不要单独留下它们.所以我放弃了ffmpeg-sharp.

然后我看着SharpFFmpeg,它看起来像我想要的,所有P/Invoked函数.不过它的GPL?AVCodec.cs和AVFormat.cs文件看起来像avcodec.c和avformat.c的端口,我估计我可以移植自己?然后不必担心许可.

但是我想在开始编码之前做到这一点.我是不是该:

  1. 编写我自己的C++库以与ffmpeg交互,然后让我的C#程序与C++库通信以播放/转换视频等.

要么

  1. 通过使用大量的DllImports将端口avcodec.h和avformat.h(这就是我需要的全部吗?)到c#中并完全用C#编写?

首先要考虑的是我在C++方面并不擅长,因为我很少使用它,但我知道它足以绕过它.我认为#1的原因可能是更好的选择,因为大多数FFmpeg教程都是用C++编写的,而且我对内存管理的控制也比我在c#中做的要多.

你怎么看?您是否也碰巧使用FFmpeg有任何有用的链接(也许是教程)?

c# video ffmpeg

62
推荐指数
4
解决办法
11万
查看次数

获得视频的长度

我无法找到一个如何以编程方式获取文件视频长度的简单示例.很多人说,哦,使用这个库/包装或其他什么,但不说如何.我已经下载了ffmpeg,但不知道如何实际使用它,似乎没有任何关于如何使用它来获取视频持续时间的示例.我看到你如何使用它来转换视频,但我只是想知道视频的持续时间.所有其他信息都无关紧要.

有没有办法简单地做到这一点,无论是在C#,python,java等等,它只会返回一个表示视频文件长度的字符串.

如果可能,请提供示例.提前致谢!

假设标准文件格式,例如wmv,avi,mp4,mpeg.有元数据的东西.

c# video duration ffmpeg

14
推荐指数
3
解决办法
2万
查看次数

获取Quicktime视频信息

有没有办法获取QuickTime视频信息?(在Google上搜索时,我发现QT的一个cl选项已被破坏.)

我希望找到pasp,长度,音频通道,音频分配,拍手以及通常使用"Dumpster"程序找到的各种其他属性.使用ffmpeg无法获得大部分此类信息.

macos video quicktime ffmpeg

5
推荐指数
1
解决办法
4167
查看次数

文件夹中所有媒体文件的运行时间/长度信息

如果文件夹中有多个媒体文件,如下所示:

MediaFiles(folder)

-> file1.mp4
-> file2.mp4
...
Run Code Online (Sandbox Code Playgroud)

当我们选择所有文件并

Right Click -> Properties
Run Code Online (Sandbox Code Playgroud)

在详细信息选项卡上的属性窗口中,有一个长度字段,显示媒体文件的总运行时间,如下所示:

属性窗口

是否可以使用 C# 获取此信息?

c# media

3
推荐指数
1
解决办法
1183
查看次数

从 Web 应用程序中的视频/音频文件获取持续时间(asp.net core)

这个问题是关于 asp.net WEB 应用程序,而不是关于 .net windows 应用程序。在我的应用程序中,我使用 asp.net core 上传视频文件 (mp4)。

我需要从此视频文件中获取元数据,但现在我关注的是该视频文件的持续时间。

我已经创建了表单,并且在我的控制器中我成功接收了一个IFormFile file对象。我可以通过调用 .length 方法 ( file.Length) 来找到文件的大小,但我真的很难获得确切的日期,尤其是该对象的持续时间。

如何确定该对象的确切日期和持续时间?

这是我的代码:

    public async Task UploadVideos(IList<IFormFile> files)
    {
        long size = files.Sum(f => f.Length);
        Console.WriteLine("The size of all the selected files is:"+size);

        Console.WriteLine("the file name is" + files[0].FileName);


        string type = files[0].ContentType;
        if (type.Equals("video/mp4"))
        {
            Console.WriteLine("Indeed a mp4 format");
        }

    }
Run Code Online (Sandbox Code Playgroud)

c# metadata asp.net-core-mvc

1
推荐指数
1
解决办法
6629
查看次数

标签 统计

c# ×4

ffmpeg ×3

video ×3

asp.net-core-mvc ×1

duration ×1

macos ×1

media ×1

metadata ×1

quicktime ×1