unity c# ffmpeg 获取mp4 文件长度
时间: 2023-08-24 15:17:42 浏览: 134
FFmpeg Unity Bind 3.2
5星 · 资源好评率100%
你可以使用FFmpeg的C#库(例如FFmpeg.AutoGen)来获取MP4文件的长度。以下是一个示例代码:
```csharp
using System;
using System.IO;
using FFmpeg.AutoGen;
namespace GetVideoLength
{
class Program
{
static unsafe void Main(string[] args)
{
string inputPath = @"C:\path\to\your\video.mp4";
ffmpeg.av_register_all();
ffmpeg.avcodec_register_all();
ffmpeg.avformat_network_init();
AVFormatContext* formatContext = null;
int ret = ffmpeg.avformat_open_input(&formatContext, inputPath, null, null);
if (ret < 0)
{
Console.WriteLine("Could not open file: " + inputPath);
return;
}
ret = ffmpeg.avformat_find_stream_info(formatContext, null);
if (ret < 0)
{
Console.WriteLine("Could not find stream information");
return;
}
long duration = formatContext->duration / ffmpeg.AV_TIME_BASE;
Console.WriteLine("Duration: " + TimeSpan.FromSeconds(duration));
ffmpeg.avformat_close_input(&formatContext);
}
}
}
```
在此示例中,我们打开一个MP4文件并获取其持续时间。请注意,AVFormatContext是FFmpeg中的结构,用于保存有关输入文件的信息。通过调用avformat_open_input函数,我们将输入文件读入该结构。然后,我们调用avformat_find_stream_info函数以获取有关文件的有用信息,例如视频持续时间。最后,我们清理并关闭格式上下文以释放资源。
阅读全文