【抛砖/新手友好】从“快速替换B站APP本地视频缓存”谈到多媒体文件常用处理技术

您所在的位置:网站首页 bilibili缓存文件格式 【抛砖/新手友好】从“快速替换B站APP本地视频缓存”谈到多媒体文件常用处理技术

【抛砖/新手友好】从“快速替换B站APP本地视频缓存”谈到多媒体文件常用处理技术

2024-07-13 05:43| 来源: 网络整理| 查看: 265

Q:为什么要“替换B站APP本地视频缓存”?

A:当泥发现由于各种原因,自己收藏的某个稿件画质/音质很不能让人满意而且自己手中收藏的有高清档,这时候有几种选择:

自己压制重传一份档到B站,当然这里理论上有几个问题,首先是B站本身对其他阿噗主已存在稿件再进行投档的行为不鼓励(瞎猜),当然实际审核一般也能通过;然后是往往各位手中的高清档都不符合B站二压标准的,“压制”这个词很多非阿噗主用户恐怕木有什么了解,这是门槛。还有一个不能忽视的,自己投稿意味着原档弹幕就木有了,恐怕很多童鞋都不能忍受。视频哪有弹幕有意思(当然这里先不考虑自己投档本地缓存然后在替换弹幕文件的自娱自乐的行为)

放弃原稿件,高清档存入手机用本地播放器播放,或者高清档在PC端通过其他弹幕播放器播放。这个选项恐怕大多数人都无法忍受,前者是放弃弹幕体验问题,后者是逆移动端潮流的行为2333

既然上面的选择都有方方面面的问题,那么“替换B站APP本地视频缓存”就是折中的最好的选择了——操作简单,解决痛处(相比较自己投稿,一般能省去自己压制视频的步骤,一般只需要压制音频就好了,省时省力,而且移动端弹幕观看的问题也迎刃而解)

替换过程为:

准备好原档,手机接入电脑,原档替换缓存文件,改文件名ok

好了,本篇专栏结束。

等等,细节呢?

Emmmmmmmmmmm

那我们就细节一下:

测试稿件为:(喂,看头图没毛病吧x

以下为该档的音轨和视频轨道的关键信息:

时代的眼泪——视频流时代的眼泪——音频流

 以下为播放截图以展示画质:

激萌**!!!

哦呼!下面是真正的操作了:

找到B站缓存的位置:

请注意:啊噗主更改过B站缓存地址!!所以默认设置的童鞋请爪机连接电脑后按照“内部存储/Android/data/tv.danmaku.bili/download”路径寻找,文件夹下各个文件夹的名字就是对应缓存的档的av号,比如测试稿件就是AV1655525按照啊噗主所示的路径,把自己准备好的高清档(flv.flv)复制到这个目录下,注意0.blv就是你真正的原来的缓存的视频(好吧文件大小暴露了其实图中那个0.blv已经被啊噗主换过了x )把原来的0.blv删除,然后把自己的高清档“flv.flv”改名字为“0.blv”然后大概移动端APP,Enjoy it !!高清画质/音质的激萌**,只要你喜欢,甚至可以压制出来字幕等等方便自己观看!!

似不似很简单!!似不似!!快去试一试!!

试一试就会发现,妈呀,各种问题!!!实际操作根本没法好好的玩耍!!!

让啊噗主来猜猜各位可能会遇到什么问题哈

问题①:窝的视频文件根本木有后缀名(就是那个.flv/.mkv/.mp4这类)

答案:问度娘Windows下怎么显示文件后缀名

问题②:我的视频超长的,一场Live 2个多小时,但是这个档只是其中一首歌,妈耶,总不能让我一场Live拷贝进去吧,这样字幕也没法看呀。

答案:见下文“无损视频分割的问题”

问题③:我的视频拷贝进去了,改后缀名了,但是播放不正常,要不就是很卡顿,要不就是音画不同步,要不就是没声音balabala

答案:见下文“视频分离,音视频压制与视频混流部分”

问题④:问什么B站APP缓存格式是Blv,不是常见的视频格式?

答案:Blv目前为止就是flv流媒体视频文件格式改个名字,无论是通过自动化的文件格式识别软件还是自己通过winhex等软件查询blv文件的二进制head文件,都把答案指向了flv文件,但是至于说以后b站会不会新动作,比如blv加个密什么的就不清楚了2333

把最简单的操作主干部分讲完了,其实遗留了一系列对于新手很难缠的问题,啊噗主也要进行标题回收了——“多媒体文件常用处理技术的问题”,在这里结合前边的实际问题,主要向新手解释两部分问题:①视频的无损分割技术②视频文件分离,音视频压制与混流的问题。(注:本部分在啊噗主前面2期专栏中都有所涉及,本期非专业交流这些个多媒体处理体系,所以只是结合新手面对的实际问题,只保证正确性与可操作性,不保证专业性)

提一下题外话,奈亚子只看了第一季耶,已经忘了当初为什么没有接着追第二季了。这两年感觉自己老了x动漫入坑10多年了,这两年感觉已经慢慢脱坑了。无损视频分割的问题

首先先先阐明两个事实:①并不是所有的视频都能无损分割;②无损分割并不是完美可操作的,如果结果与预想相差太大就要转入“视频压制”环节了。

首先,先通俗解释一下视频为什么能无损分割和一些问题:

视频由帧组成,比如我们说一个视频30帧,可以直观的理解为视频每秒30个画面,连续播放组成视频,这些帧按照某种规则进行分组,比如30帧视频,2秒钟60个画面,那么60个画面可能由三组帧组成的,比如1组10个帧,2组20个,3组30个,每个组称为一个GOP(画面群,GROUP OF PICTURE),当然理论上说,这些各组包含的帧的数量不一定,是视频生成的编码器确定了这些“分组依据”,至于说为什么要有这个机制得到存在以及详细规格细节请有兴趣的童鞋翻阅有关“视频GOP”的资料。而且需要说明的一点,并不是所有的视频都存在这个概念,但是现在的无损视频分割软件都是基于GOP来切割视频,也就说GOP是最小分离单位,所以这里又带来一些个问题:①没有GOP机制格式的视频目前就找不到合适的无损分割软件②无损分割很难做到“称心如意"——按照时间精确分割视频,这个问题很容易理解,假设一个极限情况,10s的30帧率的视频,只有2个GOP,两个”分组“分割正好处于视频中间位置,也就说每个GOP包含150个帧,那么这个时间如果你想要从2s处无损分割,这就不行了,软件就不干了,要不报错提示,要不就是选择临近最近的完整GOP结束处分割——结果就是虽然你想要从2s处分割,却得到了两个5s的视频,这就是”无损分割很难做到精确分割“的原因

红色,绿色和蓝色分别代表不同类型的I,B,P帧,不同类型的帧的区别不在这里说明,如图一个GOP就包含1,2,3,4,5,6序号的不同类型的帧

预防针先打好了,进入操作环节,当”手中有很长的一段视频想要进行分割得到某段视频“怎么办?——当然无损分割的软件很多了,这里啊噗主给不明真相的童鞋推荐一个功能稳定且使用的软件:Mkvtioolnix

mkvtoolnix是一个功能强大的mkv视频文件编辑工具,能对mkv视频进行分离,编辑,封装等操作,由于mkv格式本身包容性很好,也就说多种格式可以直接用mkv打包,也就这个工具本身可操作对象就很多了。

考虑到绝大多数用户手中的都是常见多媒体格式:Blu-Ray Disc原盘,DVD原盘或者各种压制后的高清档(常见以H264和HEVC为主),这些多媒体问题都是可以直接拖入Mkvtoolnix进行操作的。(拖入后请确认至少轨道栏有视频和音频类型的两个轨道)

然后选择输出中的分割模式,这里有各种分割模式,可以选用常用的”按时间点分段“,然后在选项中输入时间点就好了,注意一定要按照格式哦,时间中的冒号一定要用英文符号,多个时间点分开用英文分号,然后点击开始混流即可得到分割的mkv文件。视频分离,音视频压制与视频混流部分

上文提到的手法的到的是mkv文件,那么这个文件分割结果还算满意就可以直接复制替换0.blv了吗?还有就是万一文件怎么分割由于GOP的原因时间偏移的让人无法忍受或者自己手里是莫名奇妙格式的视频呢(mkv,flv,mp4外的格式)

答:mkv视频直接改为0.blv只能说也许可以2333,b站APP并不是专业的视频播放器,但是其集成的视频分离器和解码器等相对较全,虽然日常限制啊噗主直传视频格式为(H264/HEVC),音频格式为AAC的文件,但是b站APP还是支持对mkv的分离以及对flac等其他音频格式的解码。能不能成功一试便知,如果播放出了问题或者实在是无损分割造成的时间偏移无法忍受就要考虑本部分接下来要涉及的内容。

在这里我们假设B站app不能对mkv格式正确识别,也不能对除了H264格式的视频,flac格式的音频流进行解码(这个格式规格为常见高清压制档的规格),我们需要进行压制!!!

天惹!!要压制了!!这个坑怎么填?(揍x

mkv格式(为例)的多媒体文件分离:

一般来说,下载的mkvtoolnix压缩包里边会包含这个软件,但是不存在情况下就需要大家下载一个放在mkvtoolnix目录后运行了,注意这个软件只接受mkv文件,如果你是mp4等其他格式,可以现在mkvtoolnix中无损转为mkv格式。选择某个track轨道,点击提取就好了。

对了,分离是做什么?分离呀,前一期专栏提到过,就是把多媒体文件的容器(mkv)里边装的视频呀(比如H264格式视频流),音频呀(比如aac格式音频流),字幕呀(ass,srt,sup等字幕文件)拿出来的过程,拿出来后才方便你对这些个东西单独处理,然后处理完再打包就是”混流“过程。

这就是mkv中拿出来的h264格式的视频流和flac格式的音频流惹

音视频压制:

好了,让我们先从安装avisynth2.6入手,了解一下x264编码器和ffmpeg的命令行的常用命令...然后再装一下Python,安装部署vapoursynth环境,了解一下Python语言怎么写...全手打啊噗主卒,萌新卒。

好吧,这里真的不想开坑谈这些,如果不是啊噗主,就是想自己能简单压个视频转码一下,能完成”快速替换B站APP本地视频缓存“操作,那就用小丸工具箱吧,我相信很多啊噗主都在用的一个编码器前端,功能实用,操作简单。

首先就是把你要压制的替换缓存后B站不能正确播放的视频拉到视频栏,编码器,音频模式,CRF和CRF值按照图示设置,下图”音频“设置ok后切回这个界面点击压制就ok了。

然后音频编码器选择NeroAAC,码率为320Kbps

这里提一下上文提到的”由于GOP的原因时间偏移的让人无法忍受“的视频怎么处理:

打开小丸工具箱,直接把需要精确分割的视频拉入视频栏,如果有字幕还可以拉入视频栏,然后其他”视频“和”音频“设置如上两图设置,然后勾选”Trim截取“一栏,填入起始帧和结束帧就点击这个界面的压制就好了。

至于说怎么确定起始帧和结束帧,方法很多也有很多技巧:

①对于常见(CFR)的视频,帧率x时间就是对应时间的帧(当然24,30这些整数帧率很好计算,对于29.97,23.976这些帧率可以转换为30000/1001和24000/1001这样计算较为准确),当然这种方法未免有些”歪门邪道“hhh。

②利用专门的播放器查看,比如MPC-HC或者Potplayer

Potolayer播放界面Tab键可以显示视频播放OSD信息

③最靠谱的方法当然还是MEGUI这些压制软件Index后预览,不过既然都用MEGUI了,为什么还要用小丸工具箱?2333

视频混流:

其实应该发现一个事情,感觉小丸工具箱压制视频的时候完全没有提到我们的mkv视频文件要先分离最后混流等操作,这是因为这两个过程小丸工具箱都自己完成了。

如果仅仅封装一下,那么各种Muxer混流器大同小异,把处理好的视频流和音频流放在指定选项中点击Mux就好了,但是其实混流器内设参数也有很多,我们这里也不展开说明了。

写在最后:

其实通过修改B站APP缓存有关文件能实现很多操作,比如更改封面,更改描述信息等等,啊噗主体力问题就不展开说明了(吐口老血x  

最后的成果就是:自己做了字幕(文本非原创),然后播放屏蔽底部弹幕,高画质+无损音轨体验好多了!!

希望这篇专栏对不明真相的萌新有所帮助,其实三位在这首之前还有一首OP1,Emmm



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3