如何使用 Opus 编解码器对音频进行编码?

如何使用 Opus 编解码器对音频进行编码?

Opus 音频编解码器看起来是迄今为止压缩音频的最佳编解码器。它最近得到了最新的 ffmpeg 和 VLC 播放器的支持。但是,我找不到有关如何使用它实际编码媒体的文档。有人可以告诉我上述文档吗,最好是包含 ffmpeg 标志和用法的具体信息?我有很多有声读物占用了太多空间,而 Opus 似乎是保存它们的完美格式。

答案1

ffmpeg -i <input> -c:a libopus -b:a bitrate <output>

比特率可以设置-b:a 96K为 96 kBit/s。

ffmpeg 文档有 libopus 的选项和说明列表。在这里您可以设置-vbr选项或其他-compression_level

确保您使用 ffmpeg 进行编译--enable-libopus

答案2

  1. 下载Opus 工具

  2. 编码:
    opusenc --bitrate 64 What_A_Feeling.wav What_A_Feeling_64.opus

  3. 解码:(在任何媒体播放器中播放,如果您的媒体播放器尚不支持 opus 则很有用):
    opusdec What_A_Feeling_64.opus What_A_Feeling_opus64.wav

(What_A_Feeling 是一首歌名)

opusenc单独运行时显示的详细选项:

Usage: opusenc [options] input_file output_file.opus

Encodes input_file using Opus.
It can read the WAV, AIFF, FLAC, Ogg/FLAC, or raw files.

General options:
 -h, --help         This help
 -V, --version      Version information
 --quiet            Quiet mode

input_file can be:
  filename.wav      file
  -                 stdin

output_file can be:
  filename.opus     compressed file
  -                 stdout

Encoding options:
 --bitrate n.nnn    Target bitrate in kbit/sec (6-256/channel)
 --vbr              Use variable bitrate encoding (default)
 --cvbr             Use constrained variable bitrate encoding
 --hard-cbr         Use hard constant bitrate encoding
 --comp n           Encoding complexity (0-10, default: 10 (slowest))
 --framesize n      Maximum frame size in milliseconds
                      (2.5, 5, 10, 20, 40, 60, default: 20)
 --expect-loss      Percentage packet loss to expect (default: 0)
 --downmix-mono     Downmix to mono
 --downmix-stereo   Downmix to stereo (if >2 channels)
 --max-delay n      Maximum container delay in milliseconds
                      (0-1000, default: 1000)

Diagnostic options:
 --serial n         Forces a specific stream serial number
 --save-range file  Saves check values for every frame to a file
 --set-ctl-int x=y  Pass the encoder control x with value y (advanced)
                      Preface with s: to direct the ctl to multistream s
                      This may be used multiple times

Metadata options:
 --comment          Add the given string as an extra comment
                      This may be used multiple times
 --artist           Author of this track
 --title            Title for this track
 --album            Album or collection this track belongs to
 --date             Date for this track
 --genre            Genre for this track
 --picture          Album art for this track
                      More than one --picture option can be specified.
                      Either a FILENAME for the picture file or a more
                      complete SPECIFICATION form can be used. The
                      SPECIFICATION is a string whose parts are
                      separated by | (pipe) characters. Some parts may
                      be left empty to invoke default values. A
                      FILENAME is just shorthand for "||||FILENAME".
                      The format of SPECIFICATION is

                      [TYPE]|[MIME-TYPE]|[DESCRIPTION]|[WIDTHxHEIGHT
                      xDEPTH[/COLORS]]|FILENAME

                      TYPE is an optional number from one of:
                      0: Other
                      1: 32x32 pixel 'file icon' (PNG only)
                      2: Other file icon
                      3: Cover (front)
                      4: Cover (back)
                      5: Leaflet page
                      6: Media (e.g., label side of a CD)
                      7: Lead artist/lead performer/soloist
                      8: Artist/performer
                      9: Conductor
                      10: Band/Orchestra
                      11: Composer
                      12: Lyricist/text writer
                      13: Recording location
                      14: During recording
                      15: During performance
                      16: Movie/video screen capture
                      17: A bright colored fish
                      18: Illustration
                      19: Band/artist logotype
                      20: Publisher/studio logotype

                      The default is 3 (front cover). There may only be
                      one picture each of type 1 and 2 in a file.

                      MIME-TYPE is optional. If left blank, it will be
                      detected from the file. For best compatibility
                      with players, use pictures with a MIME-TYPE of
                      image/jpeg or image/png. The MIME-TYPE can also
                      be --> to mean that FILENAME is actually a URL to
                      an image, though this use is discouraged. The
                      file at the URL will not be fetched. The URL
                      itself is stored in the metadata.

                      DESCRIPTION is optional. The default is an empty
                      string.

                      The next part specifies the resolution and color
                      information. If the MIME-TYPE is image/jpeg,
                      image/png, or image/gif, you can usually leave
                      this empty and they can be detected from the
                      file. Otherwise, you must specify the width in
                      pixels, height in pixels, and color depth in
                      bits-per-pixel. If the image has indexed colors
                      you should also specify the number of colors
                      used. If possible, these are checked against the
                      file for accuracy.

                      FILENAME is the path to the picture file to be
                      imported, or the URL if the MIME-TYPE is -->.
 --padding n        Extra bytes to reserve for metadata (default: 512)
 --discard-comments Don't keep metadata when transcoding
 --discard-pictures Don't keep pictures when transcoding

Input options:
 --raw              Raw input
 --raw-bits n       Set bits/sample for raw input (default: 16)
 --raw-rate n       Set sampling rate for raw input (default: 48000)
 --raw-chan n       Set number of channels for raw input (default: 2)
 --raw-endianness n 1 for bigendian, 0 for little (defaults to 0)
 --ignorelength     Always ignore the datalength in Wave headers

答案3

DOS/Windows 命令中最好的 Opus Codec 命令是:

对于 lib 1.3,最小文件大小(磁带质量):

Opusenc a.wav a.opus --bitrate 24 --framesize 40 --discard-comments --discard-pictures

你会:

a- 在 24kbits 下仍具有 16kHz(32kHz 立体声)声波输出,尺寸非常小。如果尺寸更小,声波输出将降至 11kHz

b- 增加帧大小(节省少量数据(约 6%),且不会产生明显的质量损失)

c- 丢弃不必要的TAG信息,以及只会增加文件大小的覆盖图片。

对于 lib 1.3,流媒体(接近 CD 质量)使用“--bitrate 52”而不是“24”。

1.2 中的默认值为 48kbits,但在 1.3 中使用 52,并将“framesize”设置为 40,您的文件大小是相等的,但可听到的伪影要少得多。

52 kbits 和帧大小为 40,其质量可以说与 160kbits MP3 相当,但大小却不到 1/3;而 1.2 版的 48kbits 相当于 128kbits MP3,大小仅小 2.5 倍。

为了获得几乎相同的质量,您需要 80 到 96kbits。我几乎从不使用它,因为我希望我的音频尽可能小。

超过 96kbits 只适合编辑,而且无法听出原始文件和 Opus 编码文件之间的区别。

话虽如此,我还不知道这一切在 Linux 上是如何运作的。

相关内容