多语言展示
当前在线:1002今日阅读:183今日分享:45

ffmpeg、audacity编码制作生成DTS音频

发现potplayer的录制有DTS格式,于是研究下如何使用ffmpeg编码出DTS音频!0Audacity导出制作多声道2.1、5.1、7.1、4、6、8
工具/原料

audacity、ffmpeg

方法/步骤
1

ffmpeg -i 'INPUT' -af 'pan=5.1|FL=c0|FR=c1|FC=c2|LFE=1.35*c3|BL=c4|BR=c5' -c:a dca -strict -2 -ab 768k 'OUTPUT'-af是audiofilter,调用音频滤镜pan,将INPUT轨道对应到OUTPUT的轨道。我在测试低音的时候甚至只需要INPUT是个单轨道,然后'pan=5.1|c0=c0|c1=c0|c2=c0|c3=1.5*c0|c4=c0|c5=c0'-c:a dca,指定音频编码使用dca编码,其实也可以写dts,因为dts只有dca一种编码。-strict -2,因为ffmpeg的DTS仍处在试验阶段,所以需要添加该参数后才能使用。-ab 768k 指定码率为768kbps关于低音为什么要这么做,是因为该ffmpeg编码dca的时候自动对低音音轨做了均衡处理,仅允许低音音量通过,而且还做了降低音量的处理,如果想尽可能的保持原声,这里我用RMAA的测试音频推敲几次,暂定1.35。目前没能找到关闭该音频处理的方法。以后有变化将会跟进更新~

2

audacity自定义输出:F:\app\AviUtlPack\3rdparty\ffmpeg.exe -y -i - -af 'pan=5.1|c0=c0|c1=c1|c2=c2|c3=1.35*c3|c4=c4|c5=c5' -c dca -strict -2 -ab 768000    '%f.dts'在测试低音处理过程时,可以写成这样!F:\app\AviUtlPack\3rdparty\ffmpeg.exe -y -i - -af 'pan=5.1|c0=c0|c1=c0|c2=c0|c3=1.35*c0|c4=c0|c5=c0' -c dca -strict -2 -ab 768000    '%f.dts'

3

图1的上两个音轨是原声波形和频谱,下两个是DTS编码后的。图2、图3是频谱分析。图4是先增幅,后编码,和先编码,后增幅。前者开头的低音很嘈杂,效果不是很好,后者音量变小,但是现在混音器、播放设备都可以调低音了,所以先增幅的做法显得鸡肋。

4

之前找的一些DTS编码工具都是付费的,难得ffmpeg可以编码DTS,这些问题也就忍了!是否实用先暂放一边。在测试多声道的时候发现,不同的解码器解码DTS的时候,效果是不一样的,功能上就是输出自合成音轨的问题。而想更加清晰的探明其过程,自制DTS音频是必须的!

后谈

试了好多编码器QAAC、NERO等,低音都会被EQ,而且做了下二次编码,频谱形状会变低,推测是波形EQ,每次都会降低,类似于滤波减音量。听感变弱。预先1.35倍增幅效果不佳,听感软而乱。对比了下AAC(图2),虽然AAC的形状不好看,但是听感上音质保真度不错。AC3低音也会被EQ!有损中的OGG和无损的flac、WAV,不会被EQ。我也曾注意到过用OGG音频的MKV~

推荐信息