2017-09
10

单个图片mp3生成mp4

By xrspook @ 18:01:41 归类于: 烂日记

今天花了好多个小时去研究怎么把一个图片和一个mp3合并一起生成一个mp4文件。从理论上说这很简单,不过是把图片的展示的时间等长于mp3。直觉告诉我,应该有一些很简单的脚本能实现这个功能。因为从油管下载回来的音频和视频可以通过一键完成合并。我不知道油管上面的视频和音频的长度是不是完全一致,反正对一张图片来说,那不过是跟音频等长而已,没什么设置的难度。我希望直接用我手头上的工具就实现这个功能。但实际上,貌似有点难度。如果不是要求那一定是视频文件,如果只需要展示,我们可以用PowerPoint。把图片设置为背景,把音乐设置为预览文件时自动播放,然后把文件封装。这种功能肯定非常容易实现,但问题是我要生成一个单独的视频文件,avi也好wma也好mp4也好mkv也好,反正那个视频文件,必须能被做字幕的软件识别。我就一连纠结了好多个小时。因为我觉得这是一个很容易实现的功能,所以一开始我去找一些能在线实现这个的网站。我第一次找的那个网站的确可以实现我想要的功能,但问题是那个网站生成的视频有好大的水印。如果要去掉水印就必须给钱,显然我是肯定不会做的。往后的一些网站,要不根本上传不了,要不速度非常慢,要不只能生成一个几秒钟没有音频的mp4。在尝试了几个小时之后,我已经被逼疯到装软件就装软件,只要能实现功能,我就接受的地步了。我是用过绿色版的格式工厂以及狸窝转换,但一个并不能实现我的功能,另外一个要做到那个功能是要给钱的。我也下载过一个外国的软件,需要安装,简单模式非常麻烦,高级模式也就是运用脚本的模式却无论如何都运行不了。其实在折腾这些之前,我就看到Google Code这有一个叫做imutube的项目。那个东西非常轻量级,只要你装好了脚本软件以及解码器以后,就可以轻松实现这个功能。但问题是,解码器我前天刚刚装了新的,脚本软件今天也装了新的,但是把东西却无论如何识别不了我的mp3以及图片文件。我差一点点就成功了,但是我无论如何都到不了那一步。

于是我只有回到最开始,一直以来我都觉得MeGUI应该可以实现这个功能。但是如果用AVS Script Creator选择视频的时候,我无论如何都不能选择图像文件。即便我选择了图片文件,确定以后,还是会告诉我出错,因为使用的解码器不对。视频的解码器无法识别图片。为什么我觉得MeGUI能实现这个功能呢?因为要把图片和mp3结合起来,只需要做一个设置,就是设置图片的帧速率,然后设置图片的帧数,让图片和mp3有相同的长度。我回到一开始,引领我去找imutube的那个页面,发现里面的确有人说通过编写脚本,可以用MeGUI实现这个功能,只是今天较早时候我没看清,错过了那段话。我把那段脚本复制下来,形成一个脚本文件,果然MeGUI能识别出来。这证明了MeGUI能识别的脚本,不一定得用那个脚本生成器,如果你够牛逼,纯粹可以自己写代码,而且那个更自由。按照我设定的帧数以及帧速率,果然那个图片的播放时长就是我目标的那个。接着,我把这个图片视频和mp3结合起来,生成一个mp4,成功了!但是,图片视频的时长实际上比mp3短,所以第二次在压制前,我在音频那里又加入了一个剪切的脚本,把mp3的长度调节为跟视频一样。因为那个mp3最后结束的时候其实是有好几秒钟空白时间的。现在回想起来,我真的有点傻,为什么我要把帧速率设置为25呢?!其实我完全可以设置为1,那么需要的帧数就只是mp3的秒数而已,我也不需要做更多的计算,当然生成出来的视频体积也不会那么大。但是别人看这个视频参数的时候,估计就会有点O了。

兜了一大个圈,最终,我还是用我手头上的软件就实现了我想要的功能。不得不说,写脚本写代码这些苦逼事,实在很强大,我还有很多很多的东西需要学习!

载入单个图片的AVS脚本如下:

1
2
ImageSource("单个图片的绝对路径", end = 5600, fps = 25, use_DevIL = true)
ConvertToYV12()

说明:end = 5600为视频帧数,fps = 25为帧速率,如果某首歌为3分钟,帧速率为25,帧数就填写3*60*25=4500

音频视频的剪切脚本:

1
2
3
4
5
6
7
8
9
10
11
< ?xml version="1.0"?>
<cuts xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <framerate>25</framerate>
  <style>NO_TRANSITION</style>
  <allcuts>
    <cutsection>
      <startframe>0</startframe>
      <endframe>5600</endframe>
    </cutsection>
  </allcuts>
</cuts>

说明:如果这是个配到视频的音频用的,设置为和视频相同的帧数和帧速率即可。

2016-10
16

总有路

By xrspook @ 21:31:11 归类于: 烂日记

你永远都猜不到前方有什么奇葩事情在等待你,哪怕你正在做的事你每天都要做,或者你这辈子已经做过很多很多次。比如说在刻Lucha Underground logo的橡皮章之前,我已经刻过超过50个,但那一次,我也不知道为什么居然刻刀切手指了,我自己却毫不知情。直到看到白色的橡皮上出现铁红色,我才恍然大悟。比如说上个周六跑的18K我的心率不知为什么在几K后就飙到了160以上。我已经在那条路线上跑过非常多的18K,合计超过80次,无论是盛夏还是严冬,无论是下雨还是烈日,都没发生过那种事。比如上周在单位我跪在垫子上的时候,脚后跟无论如何碰不到屁股,但今天做完普拉提以后我却发现我跪在瑜伽垫上轻易地做到了。再比如说我已经用Yamb MP4Tools剪过很多视频,也用MeGUI压过很多视频,但今天当我想把字幕通过MeGUI压进剪切出来的mp4的时候,却无论如何都做不到。软件在开始压制之前,已经崩溃了。我的第一个反应是,会不会是因为软件没有做更新?但更新完毕后还是那样。我在官方网站上重新下载,结果还是一致。这是视频源的问题?软件的问题?压制参数的问题?还是电脑开机开太久了,需要歇一下?如果重启电脑就能把这一些都解决,我愿意那么做。但我的直觉告诉我,应该不是那么回事。我要压制的视频是1080p的,虽然实际上那个视频并没有这么高的分辨率,因为从油管上抓取下来1920*1080的视频接近两个半小时,大小却只有2.7GB不到。对1989年的电影,我们实在不能强求太多了,当时还没有什么高清摄像机。油管上的1080p肯定是有些问题的,但总比480p的马赛克好非常多。官方油管上的视频好处是不像普通人用DVD或BD压制那般,技术不好会出现拉丝。看过不少米叔八九十年代的电影后我觉得不知道为什么有一些镜头会很模糊,那应该不是压制的问题而是拍摄的时候对焦失误。这完全可以理解,想想十年前的那些数码相机,因为ISO不高,如果快门时间短到一定程度,又肯定会出现抖动,所以也就只能把光圈调小,光圈调小的后果就是构图里只有目标部分是清晰的,其它地方都有可能糊成一片。十年前的数码相机尚且如此,二十年前的老爷摄像机,估计也逃不出这个。

遇到问题,我觉得妈妈最喜欢在那里嚷嚷,甚至连问题都没说清就在那里嚷嚷!就像着火的时候打电话给119,一直吼,着火了,着火了,却不说到底是在哪里?是什么着火了?既然我觉得那个不好,我就不应该再做那种事。

视频压制不了的那个问题着急也没用。之前在压制DVD的时候我就试过一次,视频源直接拿去压,无论如何都不行。所以之前就得有一个把视频源新索引,然后用索引文件作为视频源输入压制的步骤。这次剪切出来的视频源为什么会压制失败?我发现其中一个现象是,预览的窗口视频的长度并不是我真正剪出来的那个长度,而是整个电影的全长。感觉这就是视频信息没有正确读取的问题。我把视频拿去索引所以然后去洗澡。洗澡回来发现弹出来的预览窗口视频终于正常了。这就意味着压制会成功。实在不知道,1080p的视频该用什么码率压制,于是就选择5000Kbps。出来的效果很不错,不过比之前剪出来的大了1倍而已。如果我的视频源真的是1080p,两个半小时的原视频大小能达到15GB以上,估计我得用8000才行。浏览过原视频播放时的信息,基本上只有少数镜头会超过5000,所以,我选择5000已经算是比较高端的了。

问题会不断出现,但人仍能将其不断地解决掉。不是因为突然发现了什么神器,或者有什么神人给你雪中送炭。过去所做的一切累积回来的经验都是要往后走得更好更快的基础。

所有的努力都不会白费。当质变发生的时候,并不是因为运气突然间变好了,而是因为量变达到了一定程度。

2015-09
28

初试转压DVD

By xrspook @ 13:56:36 归类于: 烂日记

发现我近期很容易自然而然地就会盘腿坐。二郎腿通常不会,因为大腿太粗,叠上去不容易,一直以来通常我都只是随便地把腿平行地垂下来,但近期不知怎的,我很自然就把腿盘起来了,无论坐在哪里,无论坐的是什么凳子/椅子(我还没到可以双脚盘在瑜伽球上坐稳那么神奇,但偶尔会盘单脚)。这到底是为什么???

这个周末感觉时间刷的一下就没了,不太清楚自己做了什么。跑步的时候耗费的时间是恒定的,起码我能说出个大概得多长时间。看电影的时间是恒定的,做馒头的时间也是恒定的,唯独我睡觉和对着电脑折腾时的时间是个无法估算的数。妈妈很惊讶,为什么我比她早起,她昨天下午困得不行要去睡觉了,我却可以一直全神贯注地盯着电脑。我也不知道,大概因为心里有计划安排人自然就会在状态吧,如果我没事可干,我肯定去睡觉了,而且必定是睡到爸爸喊我去吃晚饭的时候才起来。

这个周末时间分配和平时不一样,对我来说就像是周六和周日的时间反过来用了。一天到晚,只要有时间,我就对着电脑,折腾用DVD文件压缩出单独的mkv视频。

上周,我把Taare Zameen Par的DVD内容拷贝到电脑上,这周我开始学着把里面的东西转成常规的视频文件。以前并非没做过,但那时我面对的只是一部老掉牙的电影,视频的构成相当的简单,但这次我需要转压的是包含多个内容的电影花絮光盘。哪里开始?哪里结束?内容到底是哪个跟哪个?这些我都要搞清楚。内容神马,研究一番DVD的索引也就可以了,但开始和结束粗放的很容易理解,但要纠结到黑屏的持续时间的话,那是得精确到毫秒计算的。不得不说,开始和结束的把握贯穿了我一路,因为我后来才发现使用方式不同,掐的点就不一样。关于DVD的转压对我来说有2个大部分:一、视频、音频的压制和合并;二、字幕的提取和转化。

视频和音频处理方面,MeGui流程大概是这样的:

1、用MeGUI中Tools文件夹里的dgindex对DVD的vob文件做选取和影音分离。一个DVD里可能有多个vob文件,每个vob文件最大也就大概1GB的样子。一个完整的视频可能并不单独在一个vob文件里,如果视频短的话,那可能只是某个vob里的一部分,如果视频长的话,可能横跨了好几个vob。dgindex的用途是把多个vob连在一起,然后你可以截取相应的部位得到你想要的完整视频。在dgindex里同时打开一个或多个vob是第一步,然后是选取你所需要的区间,最后就是生成任务。生成结束后如果那是个视频,有音频的,那么将会有3个文件诞生——音频(可能是acc,也可能是其它),视频(m2v)以及索引(d2v)。acc和m2v可以在播放器里播放,但m2v你在播放器里看到的文件信息不一定就是真的,通常来说,m2v在播放器里显示有7分钟内容的话,非常有可能实际上那存在的是14分钟的东西,d2v是m2v的索引,告知机器那个视频文件的具体信息和播放速度。

2、用MeGUI里Tools下的File Indexer对dgindex生成的m2v文件重新做索引,生成新的d2v文件。为什么不直接用dgindex的d2v文件?因为那据说经常出错,所以稳妥起见必须重新生成一发。

3、用MeGUI里Tools下的工具建立avs脚本。之前说的是分离和整理,这一步开始就真的是压制了。压制视频avs脚本视频输入的是File Indexer里生成的d2v文件。我折腾了两天结果不咋的就是我没搞懂原来这里必须用再次生成d2v而不能是dgindex分离出来的m2v!!!非常痛苦的觉悟啊啊啊~~~ 这一步开始已经涉及了压片的参数选择。要不要切边?要不要改变视频分辨率?要不要改变码率?DVD是不是交错需要进行反交错处理?以上列出的只是N多需要确定的问题的部分,具体情况得具体分析。就反交错而言,多个命令可以实现,需要用哪个呢?一个就能搞定还是得过个滤镜叠加使用?光说没用,你得通过预览来验证到底可不可以。

4、avs脚本生成后就可以设置压制参数进行视频压制了,压制参数也是个非常高深的学问,我只能通过请教别人和抄通用做法来完成,因为我不是高手,高手这些东西都是经过细调的!

5、如果视频和音频长度一致,用MeGUI的封装命令就可以把视频和音频封装在一起了,但如果视频和音频并不是你需要的长度,多了点东西,在压制视频和音频之前就得再在原先的avs脚本里限定一个时间,那会直接写入原本的avs,同时也会生成clt文件,clt文件是在音频压制时用做确定剪切位置的。

6、我比较笨,不知道在视频和音频封装合并之前如何通过播放器检查二者是否对得上。我每次都是把视频和音频封装到一起后在播放器里通过调节音频和视频来得知提前/延迟时间的。在知道了那个时间后,再在音频参数上加入,重新封装音频和视频。据说DVD的音频和视频大多不同步,所以在压制的时候最好把视频和音频分开处理,最后时刻才封装到一个容器内,毕竟压制是非常耗费时间的,压好了以后才发现对不上,那是非常悲痛欲绝的事,但封装很快,在封装前通过简单设置就能调节音视频同步。

以上是最基本的音视频压制操作。

关于DVD字幕的提取和转换,无非就是两步。利用VobSub从ifo文件里提取出idx+sub的字幕,然后用SubRip通过OCR光学识别把sub的图形转化为文字,也就是把idx+sub转成可轻松编辑的srt之类。VobSub的提取没什么难度,但SubRip的光学识别除非你有非常好的字库,否则那个过程挺郁闷,更郁闷的是字库不好出来的东西简直就是乱七八糟牛头不对马嘴!!!我觉得啊,整sub真的很苦逼~幸好的是Taare Zameen Par的DVD里有CC字幕,CC字幕有对应提取工具CCExtractor,把dgindex分离出来的m2v拉到里面就能把CC字幕提取出来。在PotPlayer播放器里CC字幕叫做内藏字幕,属于软字幕,工具提取出来的直接就是文字了,不是sub的那种图片,当然就不会有之前大囧的问题。DVD播放时能选择字幕,但CC字幕不是可选之一,因为据说那不是给人看的。就TZP的make of视频来说,里面的英文字幕只有当里面的人在说印地语的时候才会显示,但印度人说英语,虽然他们说的是地道英式英语,但那也是可以把你听楞了的节奏,要听译那些东西实在太有难度了!sub字幕里没有说英语时的内容,但CC字幕里连场景含义的说明也有了!当然包含了说英语时的内容。既然有CC字幕,我为何还要去整sub呢?不过呢,提取出来的CC字幕的问题是一开始还算对得上,后面就不知为何无踪影了,估计是时间轴出了状况。

折腾是个痛并快乐着的过程,要好好享受。

2015-09
18

我准备好了

By xrspook @ 13:20:15 归类于: 烂日记

昨天晚上,当我把视频和外挂ass字幕发给网友的时候我感觉我真的解脱了!已经不记得一开始做《爱在旅途》的字幕是什么时候的事,反正那部电影我是2015-08-05那天看的,估计也大概是从那个时候起步吧。到昨天为止,我终于觉得我准备好了。出来的ass可以拿去压制,MEGUI吃的avs也已经做好,需要做的只是选个压制参数,余下的工作扔给电脑。选MEGUI参数也是个很大的学问,我非常明白,因为那个软件太强大了,非专业人士驾驭不了,同样的片源不同的参数设置出来视频的大小和质量会截然不同。我花了很多时间去琢磨字幕翻译的词句,花了更多的时间去仔细调校时间轴,但我却没花多少时间在压制参数的设定上,我错了。在参数这个问题上我只是向我的好朋友要了个截图,本来我用的是网络上某套针对动漫的压制参数,但那个模式在我压完ac3,要开始264的时候就无法再进行下去。现在,我用的参数是auto 2pass,目标码率1400,AVC等级是3.1,高级设置以后的东西我就没再修改了,朋友说一般压制那些不用管。《爱在旅途》的片源本身就不咋的,我不用费什么心,如果将来要压神马720p甚至1080i的,后面的肿么着估计就要花点时间了。

这一个多月来的努力让我学到了很多。努力向上的路是孤独的,没人能帮你,因为掌握技术后接下来的事就是重复运用。多个小时持续地做同样的事,天天都专注于干这个,以至于完全没有字幕的印度老电影有时我几乎不知道自己2个多小时看了什么,或者不过是知道了个大概而已。再也没有时间看《真想访谈》也没有时间捧起书来读了,每天就是对着电脑,打开Aegisub和PotPlayer做同样的事。

这趟孤独之旅让我明白到字幕制作是技术活、体力活,但同时也需要灌注大量的感情。之所以说是技术活,尼玛的,连最基本的操作都不懂,还干个毛线。掌握各种快捷键,掌握各种参数是必须的。之所以说是体力活,在掌握技术后绝大多数时候都在重复运用。《爱在旅途》有2个半小时,load一次需要那么长的时间,但谁告诉你一次就OK了?那是要load无数次的好吗!整个一起的N次,小段回放更是无法计算。你不会估算得出你得用多少时间才能干得完,你需要一直做下去,勿忘初衷,一直都牢记自己的标准、严格执行。每次在电脑前坐到手脚发麻,大半夜都还没睡觉的时候我会责怪自己不应该那么拼命,但心想这样,忘我是自然而然的事。知道自己那么做不对,但第二天还是会虚心接受坚决不改。之所以说要灌注大量感情,看字幕的时候你能feel到某种节奏吗?如果节奏合适,你会完全不觉得字幕的突兀,反之,那是怪怪的感觉,那跟字幕翻译的语言用词无关,和时间轴设置有关。一条舒服的字幕应该根据说话人的语速语调和对话场景搭调,有合适的持续时间。短促有力的词,快收是必须的,但对于一些慢悠悠的、甚至是懒音持续时间就要相应拖长。具体的快与慢并没有一套万用标准,快的时候要延迟0.1秒?慢的时候要持续1秒?没有,没有这个既定准则,但可以肯定的是用Aegisub可以通过波形精准地看到说话的段落在哪里,但人是有反应时间的,完全按照说话开始和结束时间来做时间轴必定会让看字幕的人看得很着急,错觉会是怎么感觉话还没说完字幕就没了?按照波形来做电影字幕时间轴很技术,但不人道。用波形来做歌曲MV没问题,因为哼哼啊啊的持续时间很长,相对于停顿来说,那个更显著,但对电影对白来说,根据我的经验每句话的结束都应该有延迟,但具体多少我还没把握出个规律。既然还没找到规律,我就得用我的感情和理解去界定那到底得多少。没有情感不够投入无法做好这种事。所以,《爱在旅途》的字幕对我来说是一个感性要去做,理性去做了,但最后得用感性去慢慢调校的过程。

如果肯在一件事上投入很多时间和精力,那就不只是普通的一件事了,没有爱,做不到,而这种爱跟神马一见钟情、情投意合没有半点关系,那是在相处的过程中培养出来的。不肯选择付出经历其中的磨难就不会得到那珍贵的东西。而那东西不是块奖牌,更加不是份丰厚的奖金,那是大大的满足和自信——我做到了自己想做到的,实现愿望了!这是个自我圆梦的过程,根本无需理会别人到底怎么看待,因为那不是为他们做的,目标不是为了取悦他们,所以他们喜不喜欢不是重点。当然了,如果出来的东西大家一致觉得不咋的,那么你设定的标准也该拿去好好反思了。

认真+坚持,这是一条不归路。

2015-09
3

进军ass特效

By xrspook @ 17:58:17 归类于: 烂日记

有什么不是斗智斗勇的?!!!!!!!

昨晚我过了凌晨12点才睡觉,为什么?因为半夜才开始压片,却发现MeGUI运行出错。一次一次又一次,到压制的时候才发现N多问题,到要做avs的时候才知道自己已经完全忘记怎么做,挖出2013年做Tales of Masked Men的avs参考,总算过了avs那关,但视频分辨率大小呢?分辨率要什么比例呢?要不要黑边呢?黑边怎么分配呢?字幕要用什么字体呢?字幕字体大小要多少呢?字幕的颜色要怎么整呢?默认的字幕设置肯定会让某些地方囧,我要怎么定位呢?很傻很天真,我觉得我做这个之前已经懂了很多,但实际上我什么都没考虑到位!

经过粗调和精校的srt时间轴只是第一步,只是最基础的,从srt到ass,情况就像从txt变成doc,最终我要做的不是doc而是mobi啊亲!txt的只是内容,doc的是格式,转化为mobi需要工具。我用SE和AE整出了txt,然后得通过认真学习AE特效制作和播放器各种试看(Potplayer,完美解码,射手播放器)完成doc的格式,射手反应慢,完美解码不知为何不懂得mkv外挂字幕,Potplayer不会读avs。用记事本打开ass,修改,保存,然后把视频拉进播放器,试看。再修改再保存再拉进去。即便用的是web的安全色,实际上播放器也可能识别不出来,在PhotoShop里选好的颜色,用在字幕上,播放器出来的效果完全不是那回事…… 颜色让我抓狂,字型让我抓狂,字体大小也让我抓狂。之前我试图学习一套“标准”模式,但那些都是各大字幕组的独门武功秘籍。我大概知道自己要的是什么,因为没经验,所以只能不断地尝试,直到我觉得靠谱满意为止。昨晚很傻很天真,因为今天我又足足用了1个下午(超过4小时)的时间才终于摸索出了一个最终效果。整出了第一个,往后的就好办多了(有了套路,往后只是套用而已),我懂的,但要整出第一个,对我这种力求完美的人来说太不容易了。

不同的视频分辨率即便设置同样的字号在上面的效果也会完全不同。纠结到底用什么比例的大小折腾了我半天。最终我确定把字幕压到MV画面中(视频的大小是720*320)。在电影原片里插入黑边,用16:9,即720*405,也就是说有85的黑边。85不能除以2,我又纠结了一番,我用了很长时间去测试黑边完全放在下边,但还是觉得黑边太宽我的字幕在下面垂直居中看字幕的会有点困难,最终我用了20+65的设置,20上黑边,65下黑边。之所以要设定为16:9是因为主流的各种智能设备就是这个比例的,如果小于这个数视频在智能设备上播左右会出现黑边,那时候就上下左右都黑边,效果就像明明的好视频却被无端端缩小播放了一般。16:9的设置基本可以确保在主流上播放只会上下有黑边。至于上面多一点还是下面多一点,我真的无能了。20+65纯粹是为了下面黑边的空间能放得下我全部的字幕(最多2行。设置底端边距让一行的时候字幕在黑边里垂直居中,两行的时候绝对定位让两行字幕也继续垂直居中),仅此而已。印坛压制的视频尤其是老电影各种形式都有,各种比例都有,有的字幕压在画面里,有的压在黑边里,有的部分在视频部分在黑边,有的上下黑边均高,有的上面没有黑边黑边全部在下面,有的字幕在黑边里垂直居中,有的字幕在黑边里靠上边缘…… 完全没有套路可言,很让人崩溃有木有!!!!!!!

今天我花了很多时间在黑边这个问题上,我也花了很多时间在字幕的配色上。直到今天下午,我才明白为什么有边框的字幕边框一定得用深色!今天我也懂得了ass代码里为什么控制颜色要在H后面加8位数,因为通常6位16进制的代码就能表示所有颜色了,6位代码之前的另外2位16进制代码原来是用来控制透明度的啊亲!!!!!!!我是格式控,我也是代码控,所以今天学的ass我既熟悉又陌生,既痛苦也兴奋。

不逼迫自己就不能成长起来,不成长起来就没办法成为靠谱、有担当、让人安心的好骚年。

PS:写这篇东西之前,终于整出了《爱在旅途》11个MV的其中一个,优酷把我的视频转码搞成渣了,泪奔~~~

归档:2015-09-03 小E。

2015-09-03_stamp01

2015-09-03_stamp02

2015-09-03_stamp03

2015-09-03_stamp04

© 2004 - 2024 我的天 | Theme by xrspook | Power by WordPress