把一个视频文件后缀改成txt,得到是一串代码,那么反过来,有没有一种规律,编写一段代码然后生成视频?

这个问题让我想起了一个古老的段子:一个哥们请一位大神来家里做系统,家里没有系统光盘,于是大神要了一张空白盘和一根针,在光盘上戳出来一个系统安装文件。

在理论上可行,前提是,大神知道系统文件在光盘的坑凹排列规律,第二,针尖要比光子要小。第三,需要时间,并且不能有任何差错。总之一句话这不是人能干的事。

话说回来,能不能用纯代码编写出一个视频文件?答案是显然的。无论计算机里的任何文件,其本质都是一串二进制代码。因此理论上来说,如果你对这套编码规则相当熟悉,完全是可以手打纯代码编写出一部视频,但是你到死的那天都写不完。中间有两个要素,第一,需要大量的时间,第二,任何一处都完全不能出错。所以这不是人干的事情。计算机起到的作用就是代替人类去做那些复杂而且精确的工作。

在这个问题中,你似乎发现了这个不得了的秘密:你用txt打开一个avi,发现它不过是一长串的代码和英文,但你可能忽略了里面还包含有乱码和你不认识的字符。出现这种情况是因为txt压根无法解析这个文件,你看到的这些代码是完全没有意义的。你可以做一个小试验,你用txt打开这个文件以后,不做任何操作再关闭它,选择不保存,把后缀改回avi,那么这个视频还可以播放。如果你在关闭的时候选择了保存或者另存为,再改回avi,那么你得到的是一个打不开的文件。为什么会这样?因为在你保存的时候,txt会按照自己的编码规则丢弃掉那些它不理解的信息,所以这个文件就变得不可读。

所以想用txt编写程序或者文档是别想了,写个批处理文件还是可以的,它毕竟处理不了太高级的东西。




你愿意将一块碎成沫的镜子一块块拼起来吗?

当前不太可能会发现这种规律,就算有的话也是十分复杂的,以当前的技术,计算能力还不能做到。



视频是怎么存储的?视频可看做是一系列图片的组合,专业术语叫做帧。一张图片(这里指的位图,不说向量图)是一个个点组成,一个点像素值通常使用某种编码当式进行存储,比如代表三原色的红黄蓝。实际上视频不是简单的一堆图片的罗列,图片序列间是有规律的,不用存储每张图片,部分采用差值的形式。



做个类比,视频可看做是一堆的二维图片构成的,一篇文章可看做是一堆的一维文字构成的。那一堆文字怎么生成一篇文章,随便拼凑肯定是不行的,一篇文章不近要词法语法语义正确,还要表达一定的观点。视频就更复杂了,通过一堆的字节码就更难生成图面清晰,内容连贯的的视频。




虽然说当前的人工智能可以根据大量的文章生成语句通顺的文章,但是其表达的观点思想还是不能控的,视频也一样。

所以说当前还不太可能。




任何文件,图片,视频,exe,游戏,归根结底都是一串代码,而且是简单到只有0和1组成的代码,而且任何文件都有固定的编码规则,也就是说确实是有规律的,你可以自制一张全白的jpg图片,然后保存,然后改为全黑的再保存,看看他们有什么不同,你甚至可以用任何一个十六进制编辑器自己去做一张很简单的能被系统打开的图片,你说的视频这种完全可以实现,当然不可能是人工去完成,那种工作量是超乎想象的。必须依靠程序自己的深度学习,比如现在的ai换脸,视频自动上色等等,也许有一天,你只需要给电脑几个3d模型,一段故事梗概,它自己会给你生产一部大片也说不定。




视文件也一种编码,确切地说不只种编码,适合用不同播放器。任何编码都CPU识别0和1二进制代码,就是编程。




可以,是一样的,任何文件底层都是二进制,视频和文本只是解析方式不一样。caonima用拼音读就是中文,用英文读就是乱码




理论上可以,你得会写。你写01直接给CPU读取也行,重点还是你得会写。




你应该对程序和视频一无所知,所以才会有这种脑洞。(以下内容纯手机手打,没有图表各种,看完别忘了点个关注)

先从计算机的基本原理说起,要说计算机原理,又要从电子电路原理说起了。我们知道,人类对电路的基本控制为“通”和“断”,想象一下你家的电灯,摁一下开关,电路通,灯亮,再摁一下,电路断,灯灭。是不是很简单?常人也不会因此去思考什么问题的,可是社会的进步,总是因为一些脑洞大开的大拿。别兴奋,不是说你。因为光有脑洞还不行,还必须要有足够的知识储备。伟大的冯•诺伊曼就是这样一位大神。大神的故事不多说了,我们直接说原理。

掌握了电路的通断,电路就变得可控了。现在我们把电路的通,标识为1,断标识为0。所以1代表通,0代表断。这里引入一下逻辑学中的真假,同时引入古老相传的结绳记数法。当电路通,标记1,为真,当电路断,标记0,为假。一个最简单的计数逻辑,当电路通,标记1,为真,计数一次,为数字1,当电路断,标记0,为假,不予计数。但现代人类的智慧,已经不满足余数绳结的个数来统计数据,当为真1,记录一,为真两次,乘以2,为真三次,再乘以2,以此类推,形成了今天的二进制计数法。比如二进制中1111,等于十进制中的1+1×2+(1×2)×2+(1×2)×2×2=15。通过电路控制实现计数了,那么后来的事情都水到渠成了。

说到这里,有同学会问了,说你这里举的例子大家都懂了,也看明白了,但是你这个说的还是人为控制电路通断的即时运算,说白了还是等于“结绳计数”啊。

莫慌,且往下看。

所有的运算逻辑都是从计数开始的,说白了就是,有了数字才有了加减乘除,有了逻辑运算,才有了后来的更多。以至于多年后的今天,丰富多彩的计算机世界,均来源于此。

熟悉电路的朋友知道,基础电路仅仅有正负极和通路断路,还有电容,电阻……以至于还有复杂的继电器,变压器等等等等,还有好多我都不知道的复杂电子元件。

试想一下,一个额定功率12v2a的灯泡,在供给5v1a的时候,能不能点亮?如果我再给它前置一个12v2a的电容呢?5v1a的电源给12v2a的电容供电,假定需要2秒,电容输出达到12v2a,这时候是不是灯就亮了呢?(各位大佬手下留情,手机码字,没有计算,数据仅供参考。)这2秒时间,我们称之为缓存。没错,比如我们有四个这样的电路,编号1234,当我按以下顺序同时按下开关,1号机通,2号机不动,即为断,3号和4号机也通。2秒后,反馈结果,1号灯亮,2号灯不亮,3号和4号亮,即为1011,十进制计数11。即为,我们向电路组输入1011指令,电路组反馈1011,通过电路转化,我们可以得到11的显示效果。

同理,我们可以通过电路控制(主要是逻辑时序控制),得到更多的指令输入。甚至于我们可以从指令输出位置,使指令行程堆栈,通过同一个按钮触发,让电路组按时序进行执行。也就是后来的编程。

于是我们多几组这样的电子版的“结绳计数”方式,是不是就可以完成一个更大一点的逻辑运算了呢?答案是肯定的。

电子电路只提供通断路工作,所有的逻辑运算都是人为赋予的。

此处不得不多提一句,从第一台一栋楼那么大的计算机开始,计算机最终衍生出来四大逻辑模块,运算器,控制器,存储器,输入输出设备,均是基于以上基础逻辑。

下面我们说一说显示。上面我们举例说了,提供1011指令获得1234灯亮的状态和顺序,那么如何使它显示为我们所熟悉的阿拉伯数字11呢?

熟悉电路的朋友知道,我们可以通过电路设计,指定一串灯亮,如果这串灯刚好是阿拉伯数字11的形状呢?我们只需要向我们的运算逻辑灯组指定输出结果指向,那么我们可以很容易得到阿拉伯数字11的显示。毕竟直观的就是目前市面上还在广泛使用的led显示屏,通过灯珠阵列的组合,得到相当量的灯组,根据不同的指令,提供对应的显示。

好了,计算机原理就说这么多了,懂的人应该已经懂了,不懂的人可以考虑加个关注。

说一说视频的原理。早期的视频是采用光影的方式记录,通过影片的滚动展现行程视频动态效果。小时候看过连环画的朋友应该很有感触,就是那种,每一页都画上图,然后书页快速翻动着,随着每一个图细微变化而形成的动态视觉效果。那就是视频的雏形。后来有了计算机,大家发展通过计算机控制的灯效显示,也能很好的展现视频效果,于是,就有了早期的模拟电视,同样是通过电路对时序和灯效的控制,模拟出视频效果。到后来的数字视频仍然如此,只是数字视频基于其编码的特性,可以增加更多细微的灯效,称之为渲染。

总结一下,简单来说,视频其实就是对显示屏的一组控制指令集。题主的提问的说法而言,其实是有概率完成的。但是,这种概率和我明天就成为世界首富这个概率差不多,都是不可能实现的。

随着计算机技术的快速发展,人类和计算机沟通已经不再直接依靠指令集了,从事程序开发的朋友知道,计算机语言已经从最早的机器语言,到汇编语言,再到C,乃至于今天五花八门的编程语言,而今大多数编程语言已经是基于C语言了,也就是说,比如Java,一段Java语句想要被计算机认识,语言经由对应框架和库文件进行转译,而C语言又是基于汇编语言,而汇编又继续机器语言,简而言之就是,编程趋于简单化,而逻辑转译次数增加。

接下来我们论证一下题主说的是否可行。

我通过手机微信录了一个1秒的短视频,大小为400kb,通过修改后缀名,获得了一个同样大小的txt,通过记事本打开以后,得到如下图:


而用notepad打开是这样的


接下来,请题主给我敲一遍这个内容。(开个玩笑)

出现这个乱码的原因是什么呢?

首先,注意看一下内容的第一行,ftypmp42…isommp41mp42……

什么意思呢?

我他妈也不知道什么意思,只是再开个玩笑而已。

那么到底为什么会乱码呢?乱码=计算机不认识,或者是编译器不认识。回到之前说的,视频的原理是通过指令集控制灯光组,使得风光有序的展现,形成视频效果。

那么这个指令集是啥?该长什么样?谁知道?没人知道,经过太多次转译过后,没人知道最基础的应该是什么样。你不知道,我不知道,计算机也不知道。

再回到刚才说的,计算机语言已经从基础的机器语言更新到了如今五花八门的语言了,也就是说原来我推你一下你就要往前走一步,现在是我写了一张纸条,告诉A说,让你往前走一步,然后A还把纸条递给了B,由B来推你一下。过程复杂了,但执行更简单了,因为我可以事先写好很多张纸条,需要的时候交给A。最后我只需要重复交纸条给A,就可以让你从走到跑到起飞所有动作完成。

但是如果我把纸条直接递给你,你就该一脸懵逼的望着我了。

这就是为什么说,你敲一堆码让计算机给你返回视频,这个几率和我明天成为世界首富这个几率差不多了。与其如此,你不如去学习一下皮影戏,然后通过电路控制皮影,形成自动播放的皮影版“电影”,要靠谱得多。




当然可以! 计算机里的任何文件,其本质都是一串存储在硬盘上的二进制代码。因此理论上来说,如果视频文件的代码编码规则非常熟悉,完全是可以手打纯代码编写出一部视频。但是实际上二级制代码需要很多数字才能代表很短的视频文件,所以这仅仅存在在理论当中。




是可以的,我就干过。不过不是视频文件,是图片。

BMP的16色图或者256色图就可以编辑,不过不用文本编辑,要用16进制的编辑器。

每一种文件都有自己的文件格式,知道文件格式就可以编辑。比如256色bmp的文件格式是这样的:

一个头部,表明自己是bmp图

一个调色板,表明该图片用到了哪些颜色。

剩下的部分就是该图片的每个像素用到了上述调色板的哪个颜色。

所以bmp文件一般都比较大,因为它要申明每个像素的颜色,不像jpg这种已经经过算法压缩过的文件。

视频文件也是同样的,视频由帧数组成,每一帧都可以视作一个图片,理论上也可以编辑出。但是同样,压缩过的视频很难编辑出,因为你还需要对压缩算法了如指掌。




最近很火的柳夜熙大部分是做出来的,并不是拍出来的,通常大家所说的游戏中的其实是用3D模拟引擎制作的动画短片,画面绚丽真实。著名的有暴雪公司游戏三部曲的星际争霸2开头CG动画、魔兽争霸3战役CG动画、战锤40000开场CG动画等等。

展开阅读全文

页面更新:2024-05-07

标签:号灯   代码   阿拉伯数字   视频   大神   乱码   后缀   电容   指令   电路   逻辑   规律   原理   语言   计算机   文件   图片   科技

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top