Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将视频转换为全息3D风扇的.bin_C#_Video_Bin - Fatal编程技术网

C# 将视频转换为全息3D风扇的.bin

C# 将视频转换为全息3D风扇的.bin,c#,video,bin,C#,Video,Bin,我面临的问题是,我需要将一个视频(例如.mp4)转换为.bin,这样它就可以被这些臭名昭著的3D全息风扇之一读取。目前,我正在用C#这样做 private async Task convertToBin(字符串文件) { byte[]bytes=System.IO.File.ReadAllBytes(文件); 字符串路径=path.GetFullPath(文件)+“.bin”; string str=System.Text.Encoding.UTF8.GetString(字节); System.

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

private async Task convertToBin(字符串文件)
{
byte[]bytes=System.IO.File.ReadAllBytes(文件);
字符串路径=path.GetFullPath(文件)+“.bin”;
string str=System.Text.Encoding.UTF8.GetString(字节);
System.IO.File.WriteAllText(路径,str);
返回true;
}
但是,风扇可以识别生成的.bin,但当播放时,LED全部变为白色。此外,如果我打开一个由风扇软件生成的.bin,格式似乎完全不同,因为正确的.bin的前8000行仅为0000行


知道如何实现这一点吗?

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

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

就holo粉丝而言,他们的大多数制造商通常会免费(或收取少量费用)提供一款视频转换软件,将文件转换为.bin文件,该文件将与粉丝一起使用。(还有很多粉丝现在也可以使用.mp4等,但我猜你不能)

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

无论哪种方式,在不知道设备/制造商可能强制执行的特定格式的情况下,将其转换为.bin都是相当困难的——就像在没有看到水桶的情况下,试图获取装满水桶的确切水量一样

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


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

您没有转换任何内容,您只是在假设原始文件使用UTF8编码的同时更改了文件的扩展名。我非常怀疑这对任何类型的视频都是正确的。你使用哪种视频格式?什么编码?无论如何,正确的方法是读取其字节,然后将它们写入一个新的.bin文件。您是否尝试过使用Unity?检查此项:能否将测试图像转换为
.bin
?共享到转换的bin文件的链接,并告诉我们预期(3D风扇)显示分辨率的详细信息?有可能
.bin
只是RGB数据。我也一直在尝试实现类似的功能。显然,我不太担心将文件扩展名更改为
.bin
,但如果能知道这些东西需要使用什么样的视频编解码器,那就太好了,这样我就可以使用ffmpeg而不是他们提供的愚蠢软件(仅限Windows,糟糕)。当然,似乎没有合适的文件可用。
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;
    }