探究:Bilibili x 杜比音效(一)

您所在的位置:网站首页 b站电脑版上传视频编辑 探究:Bilibili x 杜比音效(一)

探究:Bilibili x 杜比音效(一)

2024-01-23 16:24| 来源: 网络整理| 查看: 265

探究:Bilibili x 杜比音效 系列专栏(一):一种制作符合B站「杜比全景声」标准的视频的流程

一、前言:

B站在最近上线了「杜比音效」这一大会员专属选项。

视频投稿-更多设置-视频元素-高级设置-杜比音效

开启这一选项后,其有多种不同的效果。

本篇专栏将聚焦于符合「杜比全景声」标准的部分。

在正式开始前,需要了解以下两组概念:

1.「立体声」、「环绕声」与「全景声」:

从理论的扬声器(音频通道)数量上看:

「立体声」只有两个扬声器:左(L)与右(R);

「环绕声」拥有更多的扬声器:如在7.1标准中,共有7个环绕声扬声器与1个低音扬声器。但这些扬声器理论上同处一个平面;

「杜比全景声(Dolby Atmos)」在环绕声的基础上,增加了位于空中的扬声器。

Dolby Digital Plus offers an enveloping 7.1-channel listening experience[1]

从声场的维度看:

「立体声」的声场限制在了以听者为圆心,两个扬声器为弧端点的扇面上;

「环绕声」的声场扩大到了被扬声器包围的整个平面;

「杜比全景声(Dolby Atmos)」的声场扩大到了空间维度。

2.「基于音频通道(声道)的编码(channel-based codec)」与「基于对象的编码(object- based codec)」:

「基于音频通道(声道)的编码(channel-based codec)」:其直接记录所有音频通道的声音信息。在解码时,解码器直接将对应音频通道的音频信息分配给对应的扬声器。

「基于对象的编码(object-based codec)」:其记录的是声音对象(Audio Object)的信息,包括其声音信息与空间信息等。在解码时,解码器根据播放设备的不同,计算各个扬声器如何播放音频,并最终复现声音。

杜比全景声(Dolby Atmos)的编码是基于对象的。

二、制作:

根据B站客服提供的信息,E-AC-3(Dolby Atmos)是B站目前接受的「杜比全景声」的编码格式。

Bilibili客服提供的「杜比全景声」编码要求

这种编码一般被称为Dolby Digital Plus with Atmos(Dolby Digital Plus JOC/DD+JOC/E-AC-3 JOC)(JOC:Joint Object Coding)。其基于Dolby Digital Plus™[2]所使用的环绕声音频编码技术,并加入了基于对象的音频信息。有关其详细信息请参阅本系列后续专栏。

制作流程可分为三个部分:「音频制作」、「音频转码」与「文件封装」。

在「音频制作」部分,本篇专栏使用Logic Pro X[3]进行音频制作。

在「音频转码」部分,本篇专栏使用Dolby Atmos Renderer[4]进行音频转码

在「文件封装」部分,使用FFmpeg[5]进行文件封装。

三个制作工具

本篇专栏将着重介绍基于FFmpeg的封装方法。

(一)「音频制作」与「音频转码」

有关这些部分的详细制作流程,请参考视频:

有关使用Logic Pro X制作「杜比全景声」音频项目的更多教程,可以参考以下等视频内容:

根据上述流程后,你会得到一个只含有Dolby Digital Plus with Atmos(Dolby Digital Plus JOC/DD+JOC/E-AC-3 JOC)编码的音频通道的「.mp4」文件。你可以使用MediaInfo[6]工具查看并确认文件中的音频通道的编码是否正确:

通过MediaInfo读取的视频信息

在此基础上,你还需要从Logic Pro X等音乐制作软件中并轨并导出一个立体声文件:

1.将Atmos插件中的监听模式设置为「Binaural」或「2.0」。其二者均为立体声。其中,「Binaural」为双耳模拟监听模式,「2.0」为普通立体声监听模式。通过耳机播放时,「Binaural」的听感比「2.0」的听感更接近杜比全景声的真实听感。

设置监听模式

2.并轨并导出立体声音频文件「.wav」。

并轨并导出立体声音频文件(二)「文件封装」

进行文件封装前,请确认你拥有了:

1.视频文件;

2.音频通道为E-AC-3 JOC编码的「.mp4」杜比全景声文件;

3.立体声音频文件(可以以音频通道的形式包含在视频文件内)。

并且,确认以上文件的时间长度相等。

若不相等,请记住,只运行本专栏下方相关命令(命令参数),在最终生成的文件中,所有视频与音频都会同时播放,且总时长等于所有被封装的视频和音频文件中最长的时长。

若视频短于音频,则视频播放完毕后,会停留在最后一帧,直至音频播放完毕;若音频短于视频,则在音频播放完毕后,视频会继续播放,无声,直到视频播放完毕。

在FFmpeg中,有其他相关的命令(命令参数),可以进行进一步操作。详细命令(命令参数)烦请读者自行查找。

接下来的封装逻辑为:

将视频源封装至输出文件的视频通道

将立体声音频源封装至输出文件的第一条音频通道(音频通道0)

将杜比全景声音频源封装至输出文件的第二条音频通道(音频通道1)

具体命令:

ffmpeg -i 文件1 -i 文件2 (-i 文件3 )-map v1:x1 -map a1:y1 -map a2:y2 -c:v VideoEncoder type -c:a:0 AudioEncoderType -c:a:1 AudioEncoderType  OutPutFileName.xxx

命令解析:

-i 文件1 -i 文件2 (-i 文件3 )

「-i 文件」指定了源文件。其中,文件1、文件2、(文件3)为源文件路径。可以通过将文件拖入终端进行自动获取。

「-i 文件」有顺序,对应接下来的「-map FileNo:ChannelNo」中的参数。

-map v1:x1 -map a1:y1 -map a2:y2

「-map」后的参数决定了源文件中的哪个文件的哪条通道成为新文件的通道。每个「-map FileNo:ChannelNo」中,FileNo决定了由「-i 文件」输入的源文件的序号,从0开始排序;ChannelNo决定了FileNo对应源文件中的通道序号。可通过「ffmpeg -i 文件」命令查看通道序号及具体信息。

例:

通过FFmpeg命令输出的文件信息

「Output-Stereo.mp4」为拥有一条视频通道,一条音频通道的文件;

橙色部分为输入的命令;

红色部分为输出的通道信息,其中:

Stream#0:0代表第一个输入文件的第一条通道,通道序号为0。后续信息显示,其为h.264编码的视频通道;

Stream#0:1代表第一个输入文件的第二条通道,通道序号为1。后续信息显示,其为aac编码的音频通道。

通过这种查看方式,可以了解我们所需的通道序号,以供在「-map FileNo:ChannelNo」中正确使用。

当然,也可使用MediaInfo软件查看通道序号,据具体方法不再赘述,烦请读者自行查阅。

「-map」命令拥有顺序,其顺序决定每个「-map」所指定的通道在输出文件中的通道顺序。

因此,在「-map v1:x1 -map a1:y1 -map a2:y2」参数部分,v1:x1指定的是视频通道;a1:y1指定的是立体声音频通道;a2:y2指定的是E-AC-3 JOC编码的杜比全景声音频通道。

-c:v VideoEncoderType -c:a:0 AudioEncoderType -c:a:1 AudioEncoderType

「-c:v VideoEncoderType」决定了输出文件中视频通道的编码类型。一般情况下,可以使其与源视频文件的编码类型保持一致,VideoEncoderType为copy,即,该命令部分为「-c:v copy」

如需使用其他编码类型,烦请读者自行查找相关信息。

「-c:a:x AudioEncoderType」决定了输出文件中音频通道的编码类型,「x」为音轨通道的序号(此序号不统计其它类型的通道,从0开始编号)输出文件中,第一条音频通道为立体声,并且B站建议其为aac编码;第二条音频通道为杜比全景声,为E-AC-3 JOC编码。

因此,在「-c:v VideoEncoderType -c:a:0 AudioEncoderType -c:a:1 AudioEncoderType」参数部分,其具体应为「-c:v copy -c:a:0 aac -c:a:1 copy」

OutPutFileName.xxx

该命令部分决定了输出文件的路径与文件名称。「.xxx」通常为「.mp4」或「.mov」。

至此,依照以上命令解释,相信读者可以使用FFmpeg的命令工具为文件进行封装。

在FFmpeg完成文件封装后,建议通过MediaInfo软件查看封装的正确与否。

例:

最终输出文件的MediaInfo

在上述MediaInfo中,可以看到,文件拥有一条视频通道,两条音频通道。其中,第一条音频通道为AAC编码的立体声音频通道;第二条音频通道为E-AC-3 JOC编码的杜比全景声音频通道。

拥有如此通道布局的文件便可上传至B站。在投稿时勾选「杜比音效」选项,B站便可以正确识别杜比全景声与立体声,并正确播放相应的音频通道了。

在「SunSet-DolbyAtmos-Test」中:

P1为通过上述流程制作的含有E-AC-3 JOC编码的杜比全景声音频通道的视频。并且,该视频的立体声音频额外添加了「正在播放的声源是立体声」提示音,以便与杜比全景声音频进行区分;

P2为含有E-AC-3编码的5.1环绕声音频通道的视频。并且,该视频的立体声音频额外添加了「正在播放的声源是立体声」提示音,以便与环绕声音频进行区分;

P3为只有一条立体声音频通道的视频,但在上传时仍勾选了「杜比音效」选项。可以发现,其仍然可以开启「杜比音效」。并且,开启前后,视频播放的声音是有所不同的。

这十分有趣。

有关此话题的更多信息,请查看下一篇专栏

Debug Tips:

1.文件路径中若有空格等非法字符,请使用" "(mac终端)/' '(Windows cmd)括起整个文件路径;

2.注意修正多余或缺失的「-」等符号;

3.注意不要混淆中英文标点符号;

4.根据报错信息等进行命令修正;

5.使用Google等搜索引擎进行相关搜索。

参考文献

[1]Dolby Digital What’s the Plus in Dolby® Digital Plus

https://professional.dolby.com/technologies/dolby-digital-plus/

https://professional.dolby.com/globalassets/dolby-digital-plus/dolby-digital-plus-brochure.pdf

[2]Dolby Digital Plus™ 

https://professional.dolby.com/technologies/dolby-digital-plus/

[3]Logic Pro X

https://www.Apple.com.cn/logic-pro/

[4]Dolby Atmos Renderer

https://customer.dolby.com/content-creation-and-delivery/dolby-atmos-renderer-production-and-mastering-suites

[5]FFmpeg

https://ffmpeg.org/

[6]MediaInfo

http://MediaArea.net/MediaInfo/



【本文地址】


今日新闻


推荐新闻


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