小编Tru*_*CP5的帖子

将 360 元数据注入 .mp4 文件

我正在开发一个库,它将元数据注入 .mp4 文件,以允许视频正确显示为 360 度视频。输入文件是等距柱状投影格式的标准 .mp4 文件。我知道需要注入哪些元数据,但我只是不知道如何注入它。

我花了一些时间寻找可以做到这一点的库,但只能找到用于提取元数据而不是注入/嵌入/写入元数据的库。我发现的替代方案是使用Spatial Media作为命令行应用程序来更轻松地注入元数据。问题是我对 python 的了解为零,所以我倾向于使用库/nuget 包/ffmpeg 脚本。

是否存在一个好的 nuget 包/库可以做到这一点,或者我应该选择替代选项?

编辑1

我尝试将元数据粘贴到文件中的正确位置,以防万一它可以工作,但它没有。

编辑2

这是谷歌空间媒体工具注入的元数据,这就是我想要实现的目标:

<?xml version="1.0"?><rdf:SphericaVideo
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:GSpherical="http://ns.google.com/videos/1.0/spherical/"><GSpherical:Spherical>true</GSpherical:Spherical><GSpherical:Stitched>true</GSpherical:Stitched><GSpherical:StitchingSoftware>Spherical Metadata Tool</GSpherical:StitchingSoftware><GSpherical:ProjectionType>equirectangular</GSpherical:ProjectionType></rdf:SphericalVideo>`
Run Code Online (Sandbox Code Playgroud)

编辑3

我也尝试过使用 ffmpeg 来做到这一点,如下所示:ffmpeg -i input.mp4 -movflags use_metadata_tags -metadata Spherical=true -metadata Stitched=true -metadata ProjectionType=equirectangular -metadata StitchingSoftware=StreetviewJourney -codec copy output.mp4

我认为 ffmpeg 方法的问题在于它不包含rdf:SphericalVideo允许使用球形视频标签的部分。

编辑4

当我使用 ffmpeg 提取元数据时,它在日志中包含球形标记,但当我将其输出到 ffmetadata 文件时则不包含球形标记。这是我使用的命令:ffmpeg -i injected.mp4 -map_metadata -1 -f ffmetadata data.txt

这是日志的输出:

 fps, 60 tbr, 15360 tbn, 120 tbc (default)
    Metadata:
      handler_name    : …
Run Code Online (Sandbox Code Playgroud)

c# video mp4 metadata ffmpeg

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

从List &lt;double []&gt;中删除重复项

我正在尝试从双精度数组列表中删除重复项。我想保留重复的第一个实例,但删除之后找到的所有实例。

这是我的代码:

private static List<double[]> RemoveDupes(List<double[]> locData)
    {
        List<double[]> list = locData;
        while (ContainsDupes(list))
            for (int a = 0; a < list.Count; a++)
                for (int b = 0; b < list.Count; b++)
                    if (a != b && list[a][0] == list[b][0] && list[a][1] == list[b][1])
                        list.RemoveAt(b);

        return list;
    }
private static bool ContainsDupes(List<double[]> list)
    {
        for (int a = 0; a < list.Count; a++)
            for (int b = 0; b < list.Count; b++)
                if (a != b && list[a][0] == list[b][0] …
Run Code Online (Sandbox Code Playgroud)

c# list duplicates multidimensional-array

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

标签 统计

c# ×2

duplicates ×1

ffmpeg ×1

list ×1

metadata ×1

mp4 ×1

multidimensional-array ×1

video ×1