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>

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

2017-06
9

转战bilibili

By xrspook @ 9:43:44 归类于: 烂日记

昨天快下班的时候,网友找我,问我之前的Dangal幕后制作花絮是不是全部都已经做了翻译。我给他的回答是如果UTV有在油管放出来的,我全部都做了,除非刚刚新出的DVD或者蓝光里面还有别的部分。接着他发给我一张光盘目录的截图,显然上面的五个视频我都已经做过。接着,网友问我当时是上传到优酷还是土豆。土豆的上传速度要比优酷快,而且出来的视频质量也要比优酷好,除非土豆的审核无论如何都不通过,否则我是不会上传优酷。但也正是因为这样,不久前优酷跟土豆合并,二者的数据融为一体。但准确来说是优酷把土豆给吃了,所以现在管理界面都是优酷的,从前优酷跟土豆最大的区别在于他们的上传以及视频信息修改。优酷的界面相当的不友好。发生这种事后,网友默认从前优酷土豆的视频已经阵亡。因为从我的后台界面也可以看出很多视频都在显示转码中,而这些转码中的视频从前台观看通常显示404不存在。对我来说这种事还没什么所谓,只要转码完成出来的东西一定是一样的,因为我所有视频基本上插进去的都是硬字幕。但我的网友不一样,因为当时他是用mkv封装软字幕进去。他说当年之所以上传土豆不上传优酷是因为优酷的东西所有字幕居然变成了一条横线。现在他的某些视频的确被转码出来了,但问题是从前在土豆显示正常的字幕现在变成了一条横线,这就意味着视频经过了优酷再一次的转码,而且他说现在再传视频到优酷通常会审核不通过。

正是因为这样,所以他想我把视频都上传到bilibili。之前我也有这个打算,但是一直都还没有注册。现在视频发到b站是年轻人的主流,尤其是什么90后00后之类的。所以b站的浏览量远远要大于从前的优酷和土豆。我本以为不就是注册个视频网站吗,但让我远远没想到的是原来注册会那么的折腾。作为一个没有推荐码的路人甲,我得先回答100道题。答对其中的60题,我才能正式成为会员。100道题里面40题是必答题,必须全部答对,当然如果你答不对,会提醒哪里错了,错了就修改,改到全部答对为止。后面的60道题我觉得是二次元的极限,它会让你在几个大类里面选3到10类你精通的,然后就从那些大类里面出题给你。我选择的好像是科技理综以及音乐。但显然看到题目的时候我整个人都傻逼了。无论是之前的必答题还是后面的选答题,我简直觉得我不是活在这个地球上的,又或者bilibili这种生物根本就不属于这个世界。答完前面40道必答题的时候我已经觉得略崩溃。再搞完后面60道题的时候,我觉得整个人都不好了。但幸好最后我还是74分通过考试。后面的60道题的某些我是去搜索答案的,但这只是以防万一,即便我完全不搜索答案,我可能也能60分以上通过。

千辛万苦注册了bilibili,总算可以上传视频了,但是打开视频上传的界面,又让我惊讶了半天,只允许mp4和flv。这就让我傻眼了,因为我之前压制的所有幕后花絮视频用的都是mkv格式。理论上mkv是一个很开放的格式,把里面的东西提取出来,然后再做成mp4就可以了。思路是这样的,但是首先第一步我得把mkv的东西提取出来。一直来我用的都是mkvtoolnix,但实际上里面的那个提取工具MKVExtractGUI,原来我一直都是处在傻逼状态的。我先要下载一个MKVExtractGUI,但问题是网络上满大街的都是版本都太高,不兼容我的老电脑XP,也和原来的工具包不匹配。我曾经想过重新下载一个新的mkvtoolnix。但显然又是那个问题,和我的老电脑不匹配。无计可施之下,我只好用MeGUI将mkv视频重新制作avs,然后压制成为mp4。但重压一个视频压了大半以后,我终于找到了一个可以使用的MKVExtractGUI。显然用那个东西秒杀就能完成提取。然后再用MeGUI的mp4封装功能视频再次秒杀就能从mkv转身变成mp4。这就解决了我一个非常头痛的问题,因为如果要把mkv文件全部都重新压制,需要很多时间,而且视频质量也会大打折扣。这样封装是完美的。据说mp4文件不兼容ACC音频,所以先要把音频转为AC3,但实际上在压制mkv的时候我已经把音频转为AC3了。所以提出来的东西当然就只有H.264,以及AC3,封装成靠谱的mp4当然没有任何问题。mkv也好,mp4也好,虽然后缀不一样,但实际上二者的内容物是完全一致的,所以两个文件的大小也完全一样。对我来说之前用MeGUI压制视频输出mkv和mp4都一样。所以如果以后要兼容把视频上传到bilibili,那必须是全部都压成mp4。

提取转码,这些最技术含量的活干完以后,上传及信息补全也就只是个体力活,但也因为折腾了一番bilibili,我的跑步时间比平时推迟了接近两个小时。于是我回去吃饭洗澡的时候已经过了晚上10点。如果有选择余地,昨晚的10K我大概就不跑了,但是前天已经没有跑,昨天我不得不跑。所以即便被这些事拖了一大堆时间,我还是得去完成我的任务。

之前我不喜欢bilibili是因为视频播放的时候弹幕让我连视频都看不清了,但现在估计我不得不拥抱这个东西。

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