要写这篇是因为,最近感觉到按照以前的方法下载下来的音频,效果不如原视频里的震撼。当然也可能是我的错觉,因为木耳是听不出音质的太大区别的。但是既然开始怀疑了,还是把问题解决掉比较好。
应用场景
希望从B站视频中提取音频部分,并存到自己的离线设备随时听。在提取音频的过程中,希望尽量避免音质的下降。
通常是对音乐类投稿视频进行此操作。
步骤概述
首先要把视频下载下来。我还没有找到靠谱的直接下载音频的办法,所以只能下载视频。
然后从视频文件中提取音频文件。
如果希望音质尽量不受损,这就结束了。如果希望音频文件体积小一点,那将提取出的音频文件转化成需要的码率,格式工厂即可。
我们主要对前两步进行介绍。
下载视频清晰度的选择
本来我想向大家展示,我找出来最佳方案的过程。但最终发现我太懒了,打字非常累,我还是直接告诉大家答案吧。
因为我们最终的目的是提取音频,所以下载视频的时候就要看,视频里面音频部分的码率。在b站播放视频的时候。无论是360p720p1080p,它们的音质都不会受到影响。但是如果使用下面介绍的两种工具,把视频下载下来,你就会发现。不同清晰度视频的音频的码率是有区别的。我特意找了三无老师的一个320kbps音频码率的视频来做实验,结果如下。
不同清晰度的音频码率
可以看到,只有720p以上的视频,才不会对320kbps的音频进行压缩。360p视频会把音频压缩到65kbps,480p会压缩到130kbps。
一般来讲,320kbps是一个比较理想的码率,我们通常不会再愿意对它进行压缩了。因此建议下载720p以上清晰度的视频。
但是这也不是绝对的。因为有些up主上传的视频本身音频码率就很低,有很多视频本身的音频码率只有120kbps。但是总而言之,我们下载720p以上的视频是比较保险的,肯定不会出问题。
下载视频的工具
下载视频对于非高级软件工程师的普通人来说,大概有两种工具可以使用。
JiJiDownLoad
这个软件很简单,有网页版,但建议还是下载软件,网页版不太好用。百度一下就行,这里不介绍基础的使用。
用JiJiDownLoad下载视频
如上图所示,视频有480p、1080p可选择。
mp3音频选项请直接无视,因为它是无脑二压,会损伤音质,没有必要;并且会先把视频下载下来,也不能节省流量。
特别需要注意的一点是,要在软件里登陆b站账户。否则是不可以下载1080的视频的。虽然点击会有反应,但实际下载的还是480视频。这里比较尴尬的一点是只有480和1080两个选择,我们最佳的选择720这里没有。所以只能退而求其次,选1080了。虽然1080文件体积会更大一些,但是480对音质的损伤是不可接受的。
另外要注意的一点是,如果你开了大会员,那么点击下载480视频,实际下载的是720视频;点击下载1080p,实际下来的是1080p+。也就是说视频清晰度会提升一个档次,当然文件也更大。这里有一个好处就是,可以下载720视频了。这刚好符合我们的需求,对大会员来说是一件好事。
再次提醒,如果你在看这篇文,那至少代表你是在乎音频文件的音质的。请不要使用软件自带的mp3下载,否则上面介绍的工作将完全没有意义。
BiliBili Helper
第二种工具就是BiliBili Helper了。使用也很简单。这里贴上官网,不做过多介绍。
这个软件就比较直观了。选择什么清晰度下载下来就是什么清晰度,所以直接选择720就行了。
音频的提取
基本上所有的音频处理软件,包括格式工厂,都只是一个外壳,核心都是ffmpeg。
我们已经将视频下载下来了,需要做的只是把其中的音频分离出来而已。但是大部分软件都不支持这样的操作。如果用软件进行格式转换,那么他们就会对音频进行二次编码,也就是会损伤音质。但其实ffmpeg是支持这样的操作的。
下面介绍的是一段简单的脚本,就可以实现这样的功能。
@echo off
set a=1
setlocal EnableDelayedExpansion
FOR /F "delims=\" %%i IN ('dir /b *.mp4') DO (
ren "%%i" "!a!.tmp"
ffmpeg -i "!a!.tmp" -vn -codec copy "!a!.m4a"
ren "!a!.m4a" "%%i.m4a"
ren "!a!.tmp" "%%i"
: else ( echo "ha" >> tmp.txt )
set /A a+=1
echo !a!
新建一个txt文件,重命名为 getAudio.bat (提前开启查看文件拓展名,防止电脑小白不会修改文件拓展名)。
把它和要操作的mp4文件放在同一个文件夹里。
将ffmpeg添加到环境变量(自行百度)。
然后双击getAudio.bat执行它,就会提取出音频文件了,后缀为m4a。m4a是很好的格式,请不要转换成mp3。(如果只是改个名字倒是无所谓,但是何必呢?)
提取出的文件就是没有损伤的音频文件了,当然,如果b站本身对音频进行了压缩,我们是没有办法恢复的。
如果视频文件是flv格式的,就把脚本代码中的mp4改成flv就行了(代码中只有一个地方出现了mp4,找到并修改它!)。其他格式也是类似的操作,修改成要操作的文件后缀即可。支持对多个文件的操作,只要是相同后缀就可以。
发表评论