当前位置: 首页 > 科技观察

使用这个多功能的Linux命令转换音频文件

时间:2023-03-14 01:01:59 科技观察

我处理音频和视频媒体,无论您处理哪种媒体,您肯定知道规范化是一个有价值的工具。就像您不会尝试在不转换小数的情况下将小数加到小数上一样,我了解到将不同格式的媒体组合在一起并不理想。为了方便用户,大多数爱好者应用程序都隐藏了转换过程。然而,对于那些需要控制媒体细节的用户来说,灵活的软件通常会让你提前自己将媒体转换成所需的格式。我有一些非常喜欢的音频转换工具,其中之一就是所谓的“音频瑞士军刀”——SoX。在Linux或BSD上安装,可以从软件存储库或Ports树安装sox命令(和一些有用的符号链接)。您还可以从Sourceforge.net安装SoX。它不经常发布,但其代码库趋于稳定,因此如果您想要最新的功能(如Opus支持),可以轻松安全地构建它。SoX主要提供sox命令,但会创建一些有用的符号链接:play、rec和soxi。使用SoX获取文件信息SoX可以读取和重写音频数据。它是否存储重写的音频数据取决于您。在某些情况下,您不需要存储转换后的数据,例如,当您将输出直接发送到扬声器进行播放时。但是,在进行任何转换之前,最好先确定您要处理的是什么。还可以使用soxi命令收集音频文件信息。Soxi将符号链接到soxi--info。$soxicountdown.mp3输入文件:'/home/tux/countdown.mp3'通道:1采样率:44100精度:16位持续时间:00:00:11.21=494185个样本...(11.21秒=494185个样本)文件大小:179k比特率:128k样本编码:MPEG音频(I、II或III层)此输出将使您很好地了解音频文件的编码方式、文件长度、文件大小、采样率和数量渠道。其中一些你可能认为你已经知道,但当客户把媒体带给我时,我从不相信这些假设。使用Soxi验证媒体属性。转换文件在本例中,游戏节目倒计时的音频以MP3文件的形式提供。虽然几乎所有的编辑应用程序都接受压缩音频,但它们不对压缩数据进行编辑。转换发生在某个地方,可能是作为秘密后台任务,或者可能会提示您保存副本。我通常喜欢提前自己进行转换。这样,我可以控制使用的格式。与其浪费宝贵的制作时间等待编辑应用程序按需处理它们,我可以在一夜之间批量处理大量媒体。sox命令用于转换音频文件。sox管道中有几个阶段:输入合并效果输出但是在命令语法中,效果步骤令人困惑地放在最后。也就是说sox进程是这样??组成的:输入→合并→输出→特效编码最简单的转换命令只涉及一个输入文件和一个输出文件。以下是将MP3文件转换为无损FLAC文件的命令:$$soxcountdown.mp3output.flac$soxioutput.flacInputFile:'output.flac'Channels:1SampleRate):44100Precision(dataprecision):16-bit(16bits)Duration(时间长度):00:00:11.18=493056samples...(11.18seconds=493056samplingpoints)FileSize(文件大小):545kBitRate(比特率):390kSampleEncoding(编码格式):16-bitFLACComment(注释):'Comment=ProcessedbySoX'命令末尾可以指定特效。它可以在将数据发送到最终目的地之前改变音频。例如,有时声音太大会导致转换过程中出现问题:$soxbad.wavbad.oggsoxWARNsox:`bad.ogg'outputclipped126samples;减小音量?应用增益效果通常可以解决这个问题:$soxbad.wavbad.ogggain-1Fade另一个常用的效果是淡入淡出(淡入淡出)。此效果允许您定义淡入或淡出的类型,以及您希望淡入淡出效果持续多长时间。下面是使用倒抛物线的6秒淡入淡出示例:$soxintro.oggintro.flacfadep6这将对音频的开头应用3秒淡入淡出并从8秒标记淡出(音乐仅11秒,所以在这种情况下淡入淡出也是3秒):$soxintro.oggintro.flacfadep38sox手册页中列出了不同类型的淡入淡出(正弦、线性、倒抛物线等)以及淡入淡出提供的选项。效果语法每个效果插件都有自己的语法,因此请参阅手册页以了解有关如何调用每个效果插件的详细信息。效果可以在一个命令中菊花链式连接,至少在您想要组合它们的范围内。换句话说,没有仅在六秒淡出期间应用镶边效果的语法。对于这种精确的东西,您需要图形声波编辑器或数字音频工作站,例如LMMS或Rosegarden。但是,如果您只想应用一次效果,则可以在同一命令中将它们一起列出。此命令应用-1的增益、1.35的节奏拉伸和淡入淡出:$soxintro.oggoutput.flacgain-1stretch1.35fadep06$soxioutput.flac输入文件:'output.flac'通道:1个样本速率:44100精度:16位(16位)持续时间:00:00:15.10=665808个样本...(15.10秒=665808个采样点)文件大小:712k比特率:377k样本编码:16位FLAC评论:'Comment=ProcessedbySoX'合并音频SoX也可以通过Concatenate或mixaudiofiles来合并音频文件。要将文件连接(或拼接)为单个文件,请在命令中提供多个输入文件:$soxcountdown.mp3intro.oggoutput.flac在本例中,output.flac现在包含countdown.mp3音频,后面是介绍。奥格音乐。然而,如果你想让两个音轨同时播放,你可以使用--combinemix选项:$sox--combinemixcountdown.mp3intro.oggoutput.flac然而,假设两个输入文件是不同的不同之处不仅仅是他们的编解码器。以单声道(一个声道)录制人声轨道并不少见,但音乐至少以立体声(至少两个声道)录制。SoX不会给出一个默认的解决方案,所以你首先要自己规范这两个文件的格式。更改音频文件选项与后面列出的文件名有关。例如,此命令中的--channels选项将仅适用于input.wav,不适用于example.ogg和output.flac:$sox--channels2input.wavexample.oggoutput.flac这意味着在SoX中,期权的位置很重要。如果您在命令的开头指定一个选项,它实际上只会覆盖SoX本身从输入文件中收集的内容。但是,输出文件名前面的选项决定了SoX如何写入音频数据。要修复之前的声道不兼容,可以先将输入归一化,然后混音:$soxcountdown.mp3--channels2countdown-stereo.flacgain-1$soxicountdown-stereo.flacInputFile:'countdown-stereo.flac'通道:2采样率:44100精度:16位持续时间:00:00:11.18=493056个样本...(11.18秒=493056个采样点)文件大小:545k比特率:390k样本编码:16位FLAC评论:'Comment=ProcessedbySoX'$sox--combinemix\countdown-stereo.flac\intro.ogg\output.flacSoX肯定需要多个命令来执行复杂的操作,所以根据需要创建几个临时和中间文件是正常的.多声道音频当然,并非所有音频都限于一个或两个声道。如果你想将多个音频通道合并到一个文件中,你可以使用SoX的--combinemerge选项:$sox--combinemergecountdown.mp3intro.oggoutput.flac$soxioutput.flac输入文件:'output.flac'Channels:3[...]简单的音频操作在没有可视界面的情况下操作音频似乎很奇怪,SoX绝对不是某些任务的最佳工具。但是,对于许多任务,SoX提供了一个简单且轻量级的工具包。SoX是一个具有强大潜力的简单命令。有了它,您可以转换音频、操纵通道和波形,甚至生成您自己的声音。本文仅简要概述其功能,因此请阅读其手册页或在线文档,看看您可以创建什么。