gpt4 book ai didi

audio - 视频/音频文件分析 - 元数据,类似于 MediaInfo

转载 作者:行者123 更新时间:2023-12-03 00:38:51 25 4
gpt4 key购买 nike

我通常使用 MediaInfo 查看我的媒体文件,以查看文件中视频/音频轨道的持续时间。我相信 MediaInfo 查看文件的元数据( headers )而不是实际的文件流,可能是由于速度。我想要一个真正通过文件的工具来计算媒体文件中视频/音频轨道的持续时间,而不仅仅是告诉我标题告诉我什么。

我需要这个的原因是因为我有一个媒体文件的实例没有报告正确的音轨持续时间。示例:我有两个文件,一个音频文件和一个视频文件,vid1.mxf 和 aud1.mxf,它们的长度相同。我使用 FFMPEG 将它们“缝合”在一起,并且由于存储故障/网络问题,结果文件中的音轨很短,然而它不会在 MediaInfo 中报告为短。当我收听该文件时,它显然很短,网络/存储设备必须在“缝合”期间变得无法访问。音频和视频输入文件位于不同的存储设备上。

我过去使用过 C# 库 https://github.com/naudio/NAudio它可以做到这一点,但是它仅适用于单个 .wav 文件,而不适用于容器内也有视频的文件( .mxf )。

谢谢

最佳答案

这可以使用 ffprobe 完成,但文件越大,所需的时间就越多。

第一步提取原始信息

ffprobe input.mxf -select_streams v -show_entries packet=pts_time,duration_time -of compact

ffprobe input.mxf -select_streams a -show_entries packet=pts_time,duration_time -of compact

这会产生一个读数,线条看起来像这样
packet|pts_time=4.480000|duration_time=0.040000

第二步计算持续时间

对于视频和音频流,您需要查看 pts_time在第一行和 pts_timeduration_time在最后一行。流持续时间是
pts_time(last line) + duration_time(last line) - pts_time(first line)

还有一个持续时间字段,但它不会记录所有容器格式的值。
ffprobe input.mxf -show_entries stream=duration

关于audio - 视频/音频文件分析 - 元数据,类似于 MediaInfo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37388483/

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