inputstreamreader 编码不完整_素材编码对剪辑效率的影响

b01ab8a9872ea32f1fcfd6c6445889f6.png

这次说说在项目的剪辑阶段关于编码的一些注意事项。

压缩编码会拖慢剪辑速度

大多数中低端摄像机都使用其于时间压缩的编码来进行录制,也称为Long GOP压缩。这种编码对于缩小文件体积很有用,但是计算机不得不耗费更多的性能来进行剪辑。

简单来讲,时间压缩保存的是每帧的不完整信息。Long GOP编码的方式是逐帧对视频进行分析,然后只保存它们之间变化的信息,而保持不变的信息则从开始的帧中引用。这就意味着每一帧都不是完整的图片,而是用来再现图像变化所需的“新”信息。

如果视频中变化不大,则视频文件可能很小,比如一段静物的镜头,第一帧和最后一帧之间可能只差了几个像素,这种情况下,编码器只需要存储那些完全相同的像素一次,然后再存下那些帧中的『新』像素就足够了。

当这些素材进入剪辑软件时,如果你拖放播放头,很可能会遇到卡顿,这是因为计算机必须要不断的通过比对初始帧来重建图像。如果你倒放或向前跳跃播放素材时还好,尤其是向后播放时,卡顿情况会明显得多。这会大大降低你的剪辑速度,尤其是4K素材的剪辑。

因此,如果你需要对素材进行转码剪辑,尽量避免使用Long GOP编码,比如最常见的大多数H.264编码,转而使用帧内编码,这种编码能保留每一帧完整的图像信息,比如ProRes、DNxHD/HR和Cineform,虽然这些编码的文件往往很大,但它们对计算机的性能压力要小得多。

高比特率编码会拖慢剪辑速度

对于中低端编码,你完全不必担心比特率,但是一旦开始提高编码等级,高比特率编码可能会导致剪辑问题,尤其是使用那些非专业工作站和高分辨率下工作时。

其中主要原因之一是数据吞吐量,即你的计算机必须至少要能以编码的比特率的速度从磁盘上读取数据,比如编码比特率为150Mb/s,则你的磁盘读取数据必须达到此速率才能不发生播放时断断续续的情况。

常见4K H.264压缩的素材都能达到几十Mb/s,这看上去不是问题,但是当你需要剪辑ProRes编码时,这个数字往往会超过500Mb/s,对于普通的外置硬盘来说,能实时顺序的播放已经不错了,而要跟上剪辑的需要,则远远不够。

多机位片段呢?如果仅是三台摄像机的多机位片段,你就需要三倍的读取速度,这种情况下,你很可能需要购置一些性能更高的存储器,比如SSD硬盘或高速RAID阵列来解决问题。否则,你的工作时间表将惨不忍睹。

如果你还没有这样的高速存储设备,通过降低比特率来生成代理文件能节省大量成本,花些时间来生成代理文件,然后就可以在哪怕是笔记本电脑内部的固态硬盘上来剪辑。

这里也顺便列出一些常见存储器类型的读取速率作为参照:(它们会因品牌、读取文件的大小、操作系统和相关硬件的情况而有所变化)

  • 常见的USB3.0/2.5寸/移动硬盘 90-100Mb/s
  • 专业USB3.0/雷电接口/2.5寸/移动硬盘 150-220Mb/s
  • 5400转/3.5寸/SATA机械硬盘 90-100Mb/s
  • 7200转/3.5寸/SATA机械硬盘 110-130Mb/s
  • Lacie 2Big 双盘阵列 350-400Mb/s
  • CFastII 存储卡 500-600Mb/s
  • 固态硬盘/iMac Pro/Macbook Pro 1.8-2.7Gb/s

以笔者的经验来看,很多时候发生剪辑的卡顿甚至软件停止响应,都与计算机的吞吐能力有关,如果你在拖放剪辑播放头时,硬盘发出繁忙的读取声,画面也不能流畅播放,则通常是磁盘性能跟不上需求所致。如果你的工作项目不大,你可以考虑将素材全部复制到具备SSD硬盘的计算机内部来剪辑,外置的USB磁盘、磁盘阵列或共享存储器的读取速度都不能跟它相提并论(即使它们标称的连接速度非常高,但那是另一码事)。如果你的项目涉及到成千上万达好几个TB甚至数十TB的文件,那么最好的办法,除了使用高速的磁盘阵列外,就是将项目拆分成小一些的项目,并使用能足够满足剪辑需求的代理文件来剪辑。

剪辑Log素材会拖慢剪辑速度

是的,我们之前说过Log素材由于不像Raw素材那样庞大,也支持非Long GOP编码,所以相对于非Log素材来说,它们并不会带来更多的解码计算压力。然而在实际剪辑工作中,由于剪辑师常常需要以更『正常』的画面来判断哪些镜头更加可用,所以这些灰色的、低饱和度、低对比度的Log素材,常常需要配合相应的LUT文件来工作。

LUT应用的过程是需要计算机付出更多性能的,简单的Log到Rec.709转换LUT如此,外观LUT就更是如此。计算机必须先解码出每个帧图像,再逐帧应用LUT计算,才能最后显示出你希望的图像。当然你可以在完全不使用LUT的情况下剪辑,但这毕竟不是最理想的选择。

解决这个问题的常见方法是使用LUT来先生成代理文件再使用后者来剪辑,这里要注意的是,你需要在整个流程中管理好这些LUT,并确保你最后会放弃这些代理文件,重新链接到原始文件。

剪辑Raw素材会拖慢剪辑速度

这与Log素材的情况很像,Raw文件通常也是一些看上去低饱和度、低对比度的灰片。不同的是,Raw往往要大得多,它们是帧内编码文件。很多Raw文件还提供了不同的压缩比率,这包括基于压缩比的空间压缩和基于画质的时间压缩。不管怎样,它们都比常见的非Raw素材要大得多,这对计算机的存储器读取速度是更进一步的挑战。

Raw素材也跟Log素材一样,为了让剪辑师能更清晰的分辨图像内容,也需要应用LUT来『恢复』它们正常的外观。另外,由于Raw文件本身的数据量很大,所以在应用LUT之前,计算机解码每一帧的时间也变得更久。

因此,如果你的剪辑计算机不具备直接剪辑Raw素材的性能,那么和Log素材的情况一样,使用代理文件。

值得高兴的一点是,目前像Blackmagic Design的Raw文件,由于其高效的压缩算法和优于Apple ProRes Raw的易用性,Blackmagic Raw文件可以在一些相对来说中低端的计算机上进行直接剪辑,而不需要先生成代理文件。

不仅如此,由于Raw文件在解拜耳过程中,能以1/2、1/4、1/8甚至更低的分辨率来降低监看分辨率,所以在一些情况下,直接剪辑Raw文件的计算压力甚至比同等情况下的H.264编码素材还要小得多。你可以在剪辑过程中的任何时间点来改变解拜耳的分辨率(比如在需要仔细观察某段片段的细节或在最终渲染输出前),而完全不影响任何剪辑结果和输出的画质。

换句话说,你可以以此换来更高效率的剪辑和省去使用代理文件的步骤,这是非常值得一试的方案。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/567341.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

django默认缓存是多大_Django之缓存 - osc_fd8vzgsi的个人空间 - OSCHINA - 中文开源技术交流社区...

一、缓存由于Django是动态网站,所有每次请求均会去数据进行相应的操作,当程序访问量大时,耗时必然会更加明显,最简单解决方式是使用:缓存,缓存将一个某个views的返回值保存至内存或者memcache中&#xff0c…

gitlab 安装gitlabrunner 无法连接tiller_谈一谈GitLab Runner是个什么东东?

概念我从官网搜了一下,GitLab Runner 是一个开源项目, 它用来运行你定制的任务(jobs)并把结果返回给 GitLab。 GitLab Runner 配合GitLab CI(GitLab 内置的持续集成服务) 协调完成任务。gitlab想要了解 GitLab Runner之前,我们先要知道或者说…

高中必背88个数学公式_高中数学:必修+选修全部知识点精华!附高考必背203个公式...

童鞋们好呀,2021高考将至,但是很多高三同学还是处于一个很不好的状态感觉每一科都很紧张,学校学习的节奏快,自己基础又没跟上,还要补基础总觉得后一步还没跟上,就要迈下一步了,不知道从哪学&…

mysql获取逻辑日志_Mysql 逻辑架构图及日志系统

1、Mysql逻辑架构图场景一:一条SQL语句如何执行?如图显示一条SQL语句的执行过程:执行器的执行流程:2、Mysql日志系统说到日志系统,需要了解几个概念:creash-safe、redo log、binlog、WAL技术。Redo log用于…

如何提高go代码覆盖率_如何通过静态分析提高iOS代码质量

随着项目的扩大,依靠人工codereview来保证项目的质量,越来越不现实,这时就有必要借助于一种自动化的代码审查工具:程序静态分析。程序静态分析(Program Static Analysis)是指在不运行代码的方式下,通过词法分析、语法分…

mysql 查看表是否存在_MySQL优化篇二

单表优化最佳左前缀原则为,保持索引的定义和使用顺序的一致性将含In的范围查询,放到where条件语句的最后。索引需要逐步优化两表优化小表驱动大表避免索引失效的一些原则:复合索引,不要跨列或无序使用(最佳左前缀&…

java http请求_如何设置Fiddler来拦截Java代码发送HTTP请求,进行各种问题排查

我们使用Java的RestTemplate或者Apache的HTTPClient编程的时候,经常遇到需要跟踪Java代码发送的HTTP请求明细的情况。和javascript代码在浏览器里发送请求可以通过Chrome开发者工具方便地跟踪一样,对于Java代码发送的网络请求,我们也可以使用…

mysql自增id用完了_MySQL 自增 ID 用完了怎么办?

MySQL 自增 ID 用完了怎么办?在MySQL中有很多类型的自增ID,每个自增ID都设置了初始值,然后按照一定的步长增加,只要定义了字节长度,那么就会有上限,如果达到上限再次添加,则会报主键冲突错误&am…

山洪沟防洪治理工程技术规范_幸福沟水库一期工程完工丨尚志城市供水、防洪、农业灌溉皆升级...

日前,尚志市幸福沟水库一期工程建设完成,已蓄水试运行。幸福沟水库工程是列入黑龙江省“十三五”规划的重点水利项目,是哈市重点推进的两座中型水库之一,也是尚志市一项打基础、利长远、惠民生的重大战略民生工程。幸福沟水库位于…

子类怎么继承父类方法中的变量_JavaOOP_04 封装 继承

一、封装概念:隐藏程序内部的具体实现细节,对外提供接口,从而提高程序的安全性。高内聚,低耦合。使用封装的步骤:1、属性私有化,使用private访问修饰符进行修饰2、对外提供 setter/getter 方法 setter设置值…

mysql 社区版密码如何修改_如何用优雅的方法修改MySQL root密码

搭噶好,我系小编,我好久没发文章了啊,今天发文章的原因是,我竟然忘了我的MySQL root密码。。本来想找RAKsmart客服直接重置啥的,后来想想还是自己搞吧,还能长知识。然后,我发现一个事情&#xf…

中countif函数_Count系列函数-Count、Counta、Countblank、Countif、Countifs

统计函数在我们的日常工作中也会经常使用。常见的有Count、Counta、Countblank、Countif、Countifs五个。Count用于统计数据类型的单元格个数,Counta用于统计非空单元格的个数,Countblank用于统计空单元格的个数,而Countif、Countifs用于条件…

labview实例_手把手以实例教你学LabVIEW编程,条件结构编程方法

LabVIEW又称为G语言,简单易学、形象直观,采用图形化的编程方式,是专为测试、测量和控制应用而设计的系统工程软件。在上篇文章(请参考:顺序结构编程)中已经讲了顺序结构的编程方法,下面通过具体例子演示条件结构的编程…

用递归与分治策略求解网球循环赛日程表_算法设计:分治法(比赛日程安排)...

一、算法思路1、思路分治算法的思想是:对于一个规模位N的问题,若该问题可以容易解决(比如规模N较小),则直接解决,否则将其分解为M个规模较小的子问题,这些子问题互相独立,并且与原问题形式相同,…

聚类算法 距离矩阵_谱聚类

比起传统的K-means算法,谱聚类对数据分布的适应性更强,计算量也要小很多。1. 谱聚类概述谱聚类是从图论中演化出来,主要思想是吧所有的数据看作空间中的点,这些点之间可以用边连接起来。距离较远的两个点之间的边权重值较低&#…

vlan划分不能上网_VLAN工作原理

什么是VLANVLAN(Virtual LAN),翻译成中文是“虚拟局域网”。可以看做是在一个物理局域网络上搭建出几个逻辑上分离的几个局域网。举个例子来说,如果一个交换机划分为两个VLAN,则相当于这台交换机逻辑上划分为两个交换机。VLAN的一个简单直观说…

控制for each循环次数_CCF CSP编程题解201312-1:出现次数最多的数

试题编号:201312-1试题名称:出现次数最多的数时间限制:1.0s内存限制:256.0MB问题描述:给定n个正整数,找出它们中出现次数最多的数。如果这样的数有多个,请输出其中最小的一个。输入格式:输入的第一行只有一…

旋流式沉砂池计算_旋流沉砂池设计方法

旋流沉砂池设计接口条件和主要参数设计旋流沉砂池前要确认的接口条件和信息包括:地质、气候等基本设计条件;可用地尺寸及在总图的位置坐标;地坪标高,上下游水位或范围,冻土层高度,管道覆土小深度要求&#…

parallelstream启动的线程数_高并发与多线程网络学习笔记(三)线程组和线程池

线程组线程组的作用是:可以批量管理线程或线程组对象,有效地对线程或线程组对象进行组织。构造函数ThreadGroup(String name)//默认parent为当前线程组 ThreadGroup(ThreadGroup parent, String name)具体方法//评估当前活跃的线程数,包括当前group和子g…

pytorch l2正则化_吴恩达深度学习 编程作业六 正则化(2)

推荐守门员应该将球踢到哪个位置,才能让自己的队员用头击中。1.无正则化模型判别是否有正则化与调用其他计算函数。准确率:0.948/0.915明显过拟合overfiting了。2.L2正则化公式如下,在原有cost函数基础上增加L2项,L2为参数w的均方…