gpt4 book ai didi

.net - 使用FFMPEG上传后如何获取音频文件的持续时间

转载 作者:行者123 更新时间:2023-12-04 22:51:25 26 4
gpt4 key购买 nike

我正在使用 FFMPEG 在 asp.net 中上传音频文件。我的问题是如何获得文件的持续时间(以秒为单位)。

请给我建议。

谢谢并恭祝安康
斯里尼瓦斯 M

最佳答案

为什么要解析输出?而是使用 FFMpeg API 从文件的音频流中获取持续时间。不能依赖输出字符串,例如开发团队决定将来更改日志。所以使用 API 来获取持续时间。

按着这些次序:

1.  av_register_all();

2. AVFormatContext * inAudioFormat = NULL;
inAudioFormat = avformat_alloc_context();
int errorCode = av_open_input_file(& inAudioFormat, "your_audio_file_path", NULL, 0, NULL);

3. int numberOfStreams = inAudioFormat->nb_streams;
AVStream *audioStream = NULL;
for (int i=0; i<numberOfStreams; i++)
{
AVStream *st = inAudioFormat->streams[i];

if (st->codec->codec_type == CODEC_TYPE_AUDIO)
{
audioStream = st;
break;
}
}

4. double divideFactor;
divideFactor = (double)1/rationalToDouble(audioStream->time_base);

5. double durationOfAudio = (double) audioStream->duration / divideFactor;

6. av_close_input_file(inAudioFormat);

我没有在此代码中包含任何错误检查,您可以自己解决。我希望这有帮助。

关于.net - 使用FFMPEG上传后如何获取音频文件的持续时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2697324/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com