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

压缩编码会拖慢剪辑速度

大多数中低端摄像机都使用其于时间压缩的编码来进行录制,也称为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编码素材还要小得多。你可以在剪辑过程中的任何时间点来改变解拜耳的分辨率(比如在需要仔细观察某段片段的细节或在最终渲染输出前),而完全不影响任何剪辑结果和输出的画质。

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

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

  1. java中打开特定编码的文本_指定编码写入和读取文件内容

    为了完美解决你的问题,特分享我自己的FileKit.java工具给你. 你只需要使用createFile方法,传入一行一个的List对象就可以生成了,目录不存在这些都判断了,只要你的目录可写就行了. ...

  2. 动力电池编码追溯系统_学习编码时如何保持动力(10条可行的技巧!)

    动力电池编码追溯系统 This post was originally published on Coder-Coder.com. 该帖子最初发布在Coder-Coder.com上 . Does th ...

  3. php 编码规范哪些_整理了一份比较全面的PHP开发编码规范.

    这些年来多从事Linux下PHP和C相关的开发,带过很多项目和团队,下面是根据经验整理的PHP编码规范,可以用作给大家的范例和参考,根据需要进行取舍和修改! (可能最新的一些php5的规范不够完整,今 ...

  4. 哈夫曼编码 译码java_基于Java的哈夫曼编码译码系统_报告毕业论文

    基于Java的哈夫曼编码译码系统_报告毕业论文 1课 程 设 计Java 与面向对象程序设计课程设计基于 Java 的哈夫曼编码译码系统1.问题描述和分工情况1.1 问题描述使用 Java 语言实现哈 ...

  5. 独热编码python实现_详解深度学习中的独热编码

    很多人开始接触深度学习,数据处理遇到第一个专业英文术语就是one-hot encode(独热编码),很多初学者就会迷茫,这个东西是什么意思,其实说的直白点所谓的独热编码最重要的就是把一组字符串或者数字 ...

  6. labview 霍夫曼树_哈夫曼树编码实验报告_信息论与编码实验2 实验报告_信息论与编码报告...

    huffman编码C语言实验报告 今日推荐 180份文档 2014...4页 1下载券 安卓版100 doors 2攻略1... 3页 1下载券 <逃脱本色>doors....语文教育实习 ...

  7. unicode编码详解_转载

    unicode编码详解,一看就懂  转载--https://www.cnblogs.com/hahlzj/p/11908713.html 一.Unicode编码 1 UTF-8 -16 -32编码和U ...

  8. python中unicode编码怎么用_详解Python2.x中对Unicode编码的使用

    我确定有很多关于Unicode和Python的说明,但为了方便自己的理解使用,我还是打算再写一些关于它们的东西. 字节流 vs Unicode对象 我们先来用Python定义一个字符串.当你使用str ...

  9. unicode 编码转换漏洞_好程序员Python教程之字符串编码知识小结

    好程序员Python教程之字符串编码知识小结,提及Python字符串,你会想到什么?是ASCII,还是Unicode?他们之间是如何转换的?字符串编码和字符串有什么区别?接下来好程序员Python教程 ...

最新文章

  1. MySQL从入门到搞定实战
  2. 第一章:1.2.2系统分类(二)
  3. opencv 中 快速傅里叶变换 FFT
  4. Console-算法[for]-穷举法:百钱买百鸡
  5. bootstrap-table 刷新页面数据
  6. css @media 响应式布局
  7. 【重要+细节】LeetCode 149. Max Points on a Line
  8. 文本编辑框鼠标丢失问题
  9. 低轨卫星通信系统发展综述
  10. k8s+docker集群整合搭建(完整版)
  11. 学生信息管理系统(C语言,带文件操作)
  12. 旷视研究院「技术圆桌派-上海专场 」报名启动!
  13. 女人假正经的十三种表现
  14. html 纵向滚动条,css设置纵向滚动条
  15. 抓取淘宝天猫的商品的促销价格
  16. 国家开放大学计算机应用基础终结性考试(大作业).zip
  17. android 应用置顶到最前端_Android 将后台应用切换到前台
  18. 计算机素养作文,文明素养的作文优秀范文
  19. 实现类似涂鸦跳跃的游戏(对象池的使用和背景固定)
  20. dash dock安装 to_Dash to Dock 安装配置(图文教程)

热门文章

  1. MySQL外键命名规范
  2. 红黑树 —— 原理和算法详细介绍
  3. 机器人炒饭小块头一一_小块头机器人炒饭:全智能流程,炒饭芬芳独具
  4. dev控件swiftplot图滚动方法_无限轮播图使用Scroller就这么简单
  5. datagridview设置为勾选才可编辑_使用lightroom前,做好这几项设置,有助于更好使用...
  6. python监控windows日志_Python 监控日志的简单示例
  7. python 打印xml文档树_[Python]xml.etree.ElementTree处理xml文档
  8. 局域网打印机反应慢_为什么你的Excel这么慢,这些原因必须要知道!
  9. python常用的库有哪些餐厅_这十个Python常用库,学习Python的你必须要知道!
  10. thinkphp mysql exp_thinkphp备份数据库的方法分享