数字化旧的8mm胶带

2020-11-25 05:59:35

回顾过去,思考过去15年中发生了多少技术进步,真是令人惊讶。如今,大多数人随处携带口袋中的智能手机,其中许多智能手机都内置了功能强大的相机,能够以高清晰度记录多个小时。将此功能与低成本视频编辑软件(其中有一些完全免费)结合使用,如今,越来越多的人掌握了以适度的预算练习拍摄,编辑,合成和渲染具有专业外观的视频的工具。

我个人的摄影经验始于7岁左右,当时我使用礼物作为礼物的小型“间谍”相机拍摄110张胶卷。我父亲的索尼CCD-V5体积大,笨重,并且在1987年左右购买时很昂贵,因此他不愿意让我或姐姐在他的监督下操作它,更不用说借用它自己制作自己的电影了。结果,我和我姐姐在便宜得多的录音带硬件和磁带上录音,使自己保持了娱乐—在播客发明出来之前,我们就制作了由动物填充物主演的偶发性“广播节目”。尽管我和姐姐都很好地照顾了我们的音频设备,但是当涉及到谁要使用便携式摄录机时,爸爸还是坚持了下来,但是当我们计划好完整的制作,排练和排练时,他有时会沉迷于我们。 Video8磁带也很昂贵,在大多数情况下,爸爸将其保留用于重要活动,例如音乐会,学校毕业,生日和家庭假期。

我去上大学,花了很多时间潜入originaltrilogy.com论坛。在这里,我不仅学到了很多有关《星球大战》电影的制作和技术背景的知识(我可以在博客上发表有关广告恶作剧的话题),而且还学到了很多有关视频编辑,编解码器和后期制作技术的知识。 ,并保存。 OT.com曾经是,现在仍然是一个视频爱好者和专业人士社区的住所,其中大多数人对未发行的“星球大战”三部曲“原始且未更改”版本有着共同的爱好。因此,在可用的材料下,如何制作出《星球大战》和其他经典电影的最佳“粉丝保护品”,分享了许多技巧,却牺牲了最少的质量。

几年前,我为爸爸买了一台Sony HDR-CX100摄录机,以补充他对数码相机的兴趣。他不久后将它带到了维也纳和萨尔茨堡,此后转为主要在他的iPhone上拍摄数码视频。但是,记录我人生头25年的里程碑的8毫米录像带继续安稳地坐在人们凉爽干燥的地下室中。我父亲有关于他们的录音,可以追溯到我发现的1988年。这些录音已有30多年的历史,因此磁带必须至少是该年龄。

8mm的录像带不会永远持续下去,但是每次复制一个录像带时,制作录像带的模拟副本都会造成世代的损失。另一方面,数字文件可以被复制多次,而不会造成质量损失。我所需要的就是正确的捕获硬件,合适的捕获软件,足够的数字存储以及一种回放源磁带的方法,并且我可以无限期地保留每个磁带的无损数字捕获。我父亲最后购买的8毫米便携式摄像机– Sony CCD-TR917 –仍然具有清洁的工作头,并且可以通过S视频和立体声RCA输出路由我们现有的磁带库。鉴于最初的拍摄方式,这为我提供了最好的质量。

通常,对于现代的模数保存,您希望以合理的高采样率无损捕获原始资源,而对原始材料的处理尽可能少,从其到达播放磁头的那一刻到写入该刻的那一刻。磁盘。任何清理都可以在后期制作软件中完成;实际上,随着数字恢复技术的改进,理想的情况是拥有原始的,无损的原件,以便通过改进的技术进行重新访问。对于这个项目,我使用的是我父亲提到的Sony CCD-TR917便携式摄像机,该摄像机直接连接到Blackmagic Intensity Pro PCIe卡的S视频和立体声音频输入。捕获PC运行的是Debian Linux,并插入了与摄像机相同的电路中,以避免可能的接地环路噪声。

由于我的Debian盒子是无头的,因此我不想为了获取一些视频而进行完整的X安装。因此,我使用基于命令行的开源bmdtools套件(特别是bmdcapture)来进行Intensity Pro卡的原始捕获。我确实必须下拉DeckLink SDK才能构建bmdcapture,bmdcapture确实具有一些与X相关的小依赖性,但是无论如何我都必须下拉DeckLink软件以用于Linux驱动程序。在开始在便携式摄像机上播放之前,我从外壳调用以下内容:

$ ./bmdcapture -C 0 -m 0 -M 4 -A 1 -V 6 -d 0 -n 230000 -f .nut

-m 0:使用模式0捕获;即525i59.94 NTSC或720×486像素(29.97 FPS)

-M 4:将队列大小设置为最大4GB。如果不这样做,在将整个磁带捕获到磁盘之前,bmdcapture可能会耗尽内存。

-A 1:使用“模拟(RCA或XLR)”音频输入。就我而言,是立体声RCA。

-V 6:使用“ S-Video”视频输入。 Intensity Pro上的S视频输入以色度(“ B-Y In”)和亮度/同步(“ Y In”)的RCA对的形式提供;必须使用适配器电缆才能转换为标准miniDIN-4连接器。

-d 0:用黑框填充掉的帧。 Sony CCD-TR917具有内置的TBC(由于我没有单独的TBC,我将其启用),但是由于磁带的使用年限,偶尔会掉落帧。

-n 230000:捕获230000帧。在29.97 FPS时,将近7675秒,这是两个多小时。即使是完整的磁带也应该足够了。

-f .nut:默认情况下,以NUT容器格式写入 .nut,用磁带的标签代替。 bmdtools随附的README.md建议使用默认设置,并且由于FFmpeg从NUT转换没有问题,并且我也没有捕获到该格式的麻烦,因此我不理会输出文件格式。

进行无损捕获后,我将使用bzip2压缩.nut文件,根据填充的磁带量,将文件大小减小到原始大小的四分之一。然后,我使用par2实用程序在.bz2归档文件上创建奇偶校验数据,并将压缩的捕获和奇偶校验文件放在安全的位置以进行长期归档存储。 🙂

我基于Windows的Intel NUC是我大部分视频后期制作工作的地方。它没有PCIe插槽,所以我不能在那儿捕捉,但这很好,因为此时我的工作流程是纯数字的,我只需要担心文件移动。我在这里选择的工具是AviSynth 2.6和VirtualDub 1.10.4,但是由于AviSynth / VirtualDub设计用于AVI容器,因此我首先使用FFmpeg将捕获内容从NUT容器转换为AVI容器:

-i .nut:使用 .nut作为输入文件。 FFmpeg很聪明,打开后会自动检测其文件格式。

-vcodec复制:将视频流从输入文件的容器复制到输出文件的容器;不要重新编码。

-acodec copy:同样,对于音频流,从输入文件的容器复制到输出文件;不要重新编码。

.avi:写入 .avi,再次用磁带的标签替换输入和输出文件名中的。

现在有了AVI源文件,可以在VirtualDub中打开它。由于具有相同的名称,VirtualDub的界面让人想起了一个双盒式录音带,可以将其从一个容器“复制”到另一个容器。在编辑和合成方面,它不像Premiere或Resolve那样方便用户使用,但是它缺乏可用性,因此具有灵活性。特别是,VirtualDub旨在通过一个或多个“过滤器”运行指定范围的源视频,并根据用户的意愿通过Windows Video和/或DirectShow编码为几种输出编解码器之一。如果未应用过滤器,则VirtualDub可以修整视频(及其音频)而无需重新编码-非常适合准备源素材片段,以供以后编辑或其他处理。

尽管Sony CCD-TR917具有内置的视频降噪功能,但我在捕获之前会先将其关闭,因为我为VirtualDub配备的滤镜之一是ABSoft的“ Neat Video”。这是他们用于静止图像的“ Neat Image” Photoshop滤镜的临时版本,我最近用它来为Richard Moss的《 Mac游戏的秘密历史》准备许多静止图像。这是一个非常智能的程序,它具有许多旋钮和转盘,可以真正调出您要过滤的噪声轮廓,因此,我同样高兴地发现ABSoft的魔力也可以在视频上使用。幸运的是,他们提供了一个可与VirtualDub一起使用的插件,因此,我毫不犹豫地购买了它,以确保对90年代中期摄录一体机内置的降噪技术的改进。

前面提到的大多数功能都可以在高端NLE应用程序(例如Resolve)中完成,实际上我已经使用Resolve编辑了自己的多个视频项目。对我来说,使VirtualDub成为“杀手级应用”的原因是它使用了Windows的内置视频播放库,因此能够使用AviSynth脚本。 AviSynth是一个可以安装在Windows PC上的库,它具有将AviSynth“脚本”文件(带有.avs扩展名)解释为AVI文件的任何功能,可以在任何提示Windows使用其内置功能播放Windows文件的地方播放。基本的AviSynth脚本语言是过程性的,没有循环或条件的,但它确实保留了在运行时使用多个变量并将经常调用的序列组织到子例程中的能力。它最常见的用途是形成一个过滤链,从一个或多个源片段开始,到最后一个输出片段结束。当“播放”时,将针对每个帧评估滤镜链,但这对Windows是透明的,Windows只会看到完整的电影,就像已经将其渲染到AVI容器一样。

与VirtualDub结合使用,AviSynth允许我编写微小的脚本以精确到帧的精度进行修剪和转换,然后将这些编辑呈现为最终的输出视频。尽管AviSynth应该能够从其脚本语言调用VirtualDub插件,但我无法弄清楚如何使其与Neat Video一起使用,所以我做了下一个最好的事情:我创建了一对AviSynth脚本;一台馈入Neat Video,另一台处理Neat Video的输出。第一个脚本如下所示:

由于没有明确的输入参数,每条AviSynth指令都会接收前一条指令的输出作为其输入。用于VirtualDub的Neat Video插件期望其输入被编码为8位RGB。 VirtualDub将自动将源视频转换为Neat Video期望的格式(如果格式不正确)。由于我不确定VirtualDub到底如何进行自动转换,因此我想保留对该过程的控制权,所以我自己使用Rec.601矩阵从YUV到RGB进行转换。我知道我的源视频来自隔行模拟NTSC源。除非我明确声明,否则VirtualDub不会知道。

我使用Huffyuv编解码器将此中间视频渲染到AVI容器。 Huffyuv是一种无损编解码器,这意味着它可以压缩视频而不会造成任何代际损失。尽管名称如此,但Huffyuv完全能够将我的视频编码为RGB。在将Neat Video的结果加载到第二个AviSynth脚本之前,我无法对其进行进一步的AviSynth处理,因此,我很高兴其输出可以在一个脚本与下一个脚本之间保持不变。

混合光子所产生的颜色可以分解为三种“原色”。我们都在小学学习过这些:红色,绿色和蓝色。红色和蓝色代表紫色,蓝色和绿色代表青绿色,所有三个代表白色,依此类推。

在电视屏幕上,情况要复杂一些。追溯到大概在您出生之前,美国的电视信号只有黑白信号,而电视只有一支电子枪负责生成整个图像。图像信号主要由每525行变化的电压电平组成,指示该图像在该特定行中该点的亮或暗程度。在美国,用于传输模拟电视的NTSC标准的历史在互联网上的其他地方都有充分的文献记载,但重要的是,在1953年,向广播到符合NTSC标准的电视的电视信号中添加了颜色信息。 。

在迄今仅是单色信号的基础上增加色彩的挑战之一是,美国已经有数百万台黑白电视机投入使用。即使到1950年代初期,电视机也非常昂贵,因此通过引入新的色彩标准而使所有有源电视机过时的做法将被证明不受欢迎。该解决方案类似于FM立体声收音机后来在1961年进行标准化的方式,是将色彩添加为单色电视的完全可选但仍不可或缺的信号。原始的黑白信号(现在称为“亮度”)将继续用于确定屏幕上任何特定点上图片的亮度或“亮度”,而新的色彩流(称为“色度”)只会传送该点的颜色或“色度”信息。现有的黑白电视只会知道原始的“ luma”信号,因此会继续将其解释为单色图片,而新的彩色电视将意识到并覆盖新的“ chroma”流,并将其覆盖在原始“ luma”流产生丰富,充满活力的彩色图片。所有这些信息仍然必须适合一个相对有限的带宽信号,该信号在1940年代初设计为可以通过空中传输,在恶劣的条件下会逐渐衰减。

相比之下,早期彩色计算机显示器的开发人员无需担心与黑白美国电视保持向后兼容性,也不必担心采用那时已将近50年的信号格式。那么自然而然地,计算机显示器产生的色彩更接近我们在小学时所学的知识就不足为奇了。特别是计算机监视器将描述红色,绿色和蓝色的单独强度的信号转换为由红色,绿色和蓝色光点组成的三联体组成的屏幕。描述所谓的“ RGB”颜色(用于红色,绿色和蓝色)的信号不仅来自上述混合原色的颜色理论,而且历史上也来自那些或多或少直接驱动三支电子枪各自电压的颜色信号在彩色CRT中。尽管彩色电视和计算机监视器都具有用于混合红色,绿色和蓝色原色的三个电子枪,但是在进入电视之前对颜色信息进行编码的方法是主要区别。

RGB是表示离散的红色,绿色和蓝色值的编码方案,而彩色电视则使用类似于“ YUV”的名称。 YUV并不代表任何东西,“ Y”分量代表亮度,“ UV”代表二维彩色平面中的坐标,其中(1,1)为洋红色,(-1,-1)为绿色, (0,0)为灰色(当仅存在“ Y”分量时(例如在黑白电视上)的“默认”值)。在NTSC中,正交幅度调制用于在Y分量的频率之上传输两个UV分量-我也不确切知道正交幅度调制是什么,但是可以说这是一种传输两种流的理想方法。一个信号的信息。 🙂

关于人类视觉系统如何工作的一个有趣的怪癖是,我们已经进化为对亮度变化比对颜色变化更敏感。一些非常聪明的人对这是为什么有科学的解释,但最终我们可以感谢我们的早期祖先的这种特征-即使在低光下也能够检测到最细微的动作,这使我们成为专业的猎人。确实,当灯光大部分不亮时,尽管可见光的动态范围有限,我们大多数人仍然可以很好地导航周围的环境(阅读:寻找冰箱)。

请注意,对亮度和颜色具有较高的敏感性并不意味着人类在黑白方面的视力会更好。这仅意味着我们注意到明亮的事物和黑暗的事物之间的区别要好于我们分辨事物是红色的阴影还是红色的阴影。此外,人类对橙色/蓝色比对紫色/绿色更敏感。当试图弄清楚如何将足够好看的彩色电视信号放入美国电视已经预留(和使用)的带宽中时,这些事实实际上非常有用。由于我们对颜色的敏感性不高,因此NTSC彩色电视的设计人员可以避免传输比亮度信号少的颜色信息。通过减少紫色/绿色范围的带宽量,尽管NTSC的设计人员采用YUV的变体来实现这一目标,但仍可以令人满意地重现NTSC中的颜色,称为“ YIQ”。在YIQ中,Y分量仍然是Luma,但是“ IQ”代表与YUV相同的2D彩色平面中的新坐标,只是稍微旋转即可使紫色/绿色光谱落在较小范围的轴上。如今,随着数字电视提供更高的带宽,我们不再需要使用YIQ进行编码,但是再次由于视觉系统对颜色的响应方式及其所提供的技术优势,尽管视频/视频将更加饱满,但仍然使用YUV对其进行编码色度表示。

现代计算机屏幕上的每个像素至少由红色,绿色和蓝色的三个离散值表示。尽管NTSC每帧定义525行(可见480行),但作为模拟标准意味着实际上没有水平的“像素”之类的东西。但是,大多数捕获卡都配置为沿NTSC视频的每行采样720个点,形成每行720个“像素”。但是必须注意两个重要的细节:

尽管720个样本足以有效地捕获整个线条,但通常只有704个样本可见,而且NTSC电视的宽高比为4:3。也就是说,如果图片垂直为480方形点,那么水平必须为(480 * 4)/ 3 == 640方形点,否则图片看起来会被压扁,并且所有内容看起来都是“胖”。在720×480处捕获的NTSC帧将需要水平缩放并裁剪为640×480,以在具有正方形点的计算机屏幕上以正确的纵横比显示。

720个样本足以捕获亮度分量的每一行。色度分量是另外一个故事。

还记得亮度和色度分量是如何分别编码的,但是可以丢弃某些色度信息以节省空间,我们不太可能注意到吗?事实证明,计算机也可以使用该技术来减少带宽使用并节省磁盘空间。 RGB就是计算机与显示器进行对话的方式,但是没有规则说计算机视频文件需要编码为RGB。我们也可以将它们编码为YUV,这就是色度子采样这一术语出现的地方。

尽管我们一直想对亮度信息的所有704个可见“像素”进行采样,但是对于给定的图像行,我们通常可以捕获50%甚至少至25%的色度信息。采样的色度数据与亮度数据的比率称为“色度二次采样”比率,并用符号Y:a:b表示,其中:

Y:概念性两行块中每行的亮度采样数,a和b用作参考。这几乎总是4。

a:t上映射的色度样本数

......