【问题标题】:Convert video to .bin for hologram 3D fan将视频转换为 .bin 用于全息 3D 风扇
【发布时间】:2019-03-07 11:51:30
【问题描述】:

我面临的问题是,我需要将视频(例如 .mp4 格式)转换为 .bin,以便这些臭名昭著的 3D 全息风扇之一可以读取它。目前我正在使用 C# 这样做。

private async Task<bool> convertToBin(string file)
    {
        byte[] bytes = System.IO.File.ReadAllBytes(file);
        string path = Path.GetFullPath(file) + ".bin";
        string str = System.Text.Encoding.UTF8.GetString(bytes);
        System.IO.File.WriteAllText(path, str);
        return true;
    }

但是,生成的 .bin 可以被风扇识别,但播放时 LED 全部变为白色。此外,如果我打开一个用粉丝软件生成的 .bin,格式似乎完全不同,因为正确 .bin 的前 8.000 行只是 0000 0000 0000 0000。

知道如何做到这一点吗?

【问题讨论】:

  • 你没有转换任何东西,你只是而且只是在假设原始文件是用 UTF8 编码的情况下更改文件的扩展名。我非常怀疑这是否适用于任何类型的视频。
  • 您使用的是哪种视频格式?什么编码?无论如何 - 正确的方法是读取它的字节,然后将它们写入一个新的 .bin 文件
  • 您尝试过使用 Unity 吗?检查这个:How to compress and decompress binary streams in Unity
  • 你能把像this one这样的测试图像转换成.bin吗?分享转换后的 bin 文件的链接并告诉我们预期(3D 粉丝)显示分辨率的详细信息? .bin 可能只是 RGB 数据。
  • 我也一直在尝试实现类似的目标。显然,我不太担心将文件扩展名更改为.bin,但是很高兴知道这些东西需要使用什么确切的视频编解码器,所以我可以使用 ffmpeg 而不是他们提供的愚蠢软件对视频进行编码(仅限 Windows,糟糕)。当然,似乎没有适当的文档可用。

标签: c# video bin


【解决方案1】:

这是一个关于文件转换的相当广泛的问题,因为从技术上讲,您可以将任何文件的扩展名更改为 .bin 并且它是有效的 .bin 文件。

原因是 .bin 扩展名没有特定标准,它只是二进制数据的集合 - 这意味着不同的公司可以(如果他们愿意)在他们使用的文件中实施自己的标准。

就全息风扇而言,他们中的大多数制造商通常会免费(或收取少量费用)提供视频转换软件,该软件可将文件转换为适用于您的风扇的 .bin。 (现在也有很多粉丝可以使用 .mp4 等,但我猜你的不行)

如果正确文件中的第一个 X 数据量确实只是一个 0 流,则似乎文件开头有一些“填充”,但实际上无法看到文件不是 100 %。

无论哪种方式,在不知道设备/制造商可能强制执行的具体格式的情况下,将通用转换为 .bin 非常困难 - 就像试图在没有看到水桶的情况下获得准确的水量来装满水桶

p>

二进制本身是没有意义的,直到执行的算法定义了每个位、字节、字或块应该做什么。因此,仅检查二进制文件并尝试将其与已知格式进行匹配可能会导致对其实际表示的内容做出错误的结论。

引用二进制文件的 Wiki 页面:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-04
    • 2020-03-17
    • 1970-01-01
    • 2022-06-27
    相关资源
    最近更新 更多