Opusコーデックでオーディオをエンコードする方法は?


30

Opusオーディオコーデックは、オーディオを圧縮するための史上最高のもののように見えます。最近、最新のffmpegおよびVLCプレーヤーでサポートされています。ただし、実際にメディアをエンコードする方法に関するドキュメントはありません。できればffmpegフラグと使用法の詳細を記載したドキュメントを誰かに教えてもらえますか?私は多くのオーディオブックを持っているので、スペースを取りすぎており、Opusはそれらを保持するのに最適なフォーマットのように見えます。


1
OSについては言及しませんでした。
llogan

回答:


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

ビットレートは-b:a 96K、96 kBit / sのように指定できます。

ffmpegのドキュメントは libopusのオプションと説明のリストを持っています。ここでは-vbr、オプションまたは別のを設定できます-compression_level

ffmpegを必ずコンパイルしてください--enable-libopus


これは素晴らしい!ffmpegでエンコードする方法を見つけましたが、-vbrおよび--compression_levelフラグについては知りませんでした。これはまさに私が探していたものです!
MrDrMcCoy

6
これは私を助けました。NB、vbr onおよびcompression_level 10はデフォルトであり、おそらく省略可能です。 ffmpeg.org/ffmpeg-codecs.html#Option-Mapping
ジョシュア

1
実際、これらはデフォルト値であり、ほとんどの場合、変更する必要はありません。また、ビットレートは通常のkbits / sではなく、bits / sであることに注意してください。デフォルトのビットレートは96000(96 kbit / s)であり、(もちろん)すばらしい値です。要約するコマンドの例:ffmpeg -i input.flac -acodec libopus -b:a 128000 output.opus
Gras Double

「application」パラメータの使用方法は次のとおり-application voipです。新しいffmpegユーザーとして、正しい構文を見つけるのに少し苦労しました。
tuxayo

15
  1. Opus-toolsをダウンロードする

  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

感謝しますが、もう少し詳細なものを期待していました。可変ビットレートオプションはありますか?オーディオストリームを最適化するために、他にどのフラグを渡すことができますか?
MrDrMcCoy

1
@nakedhitman --vbrオプションはデフォルトです。opusencのマニュアルページを参照してください。ffmpegでエンコードすることもできますが--enable-libopuslibopusのインストール後にコンパイルする必要があります。
llogan

(バッチ変換ではなく)アイデアを得るには、このようなオンラインバージョンが役立つ場合があります。コレクション全体を変換することを計画している場合、opusinfo(の一部でもあるopus-tools)は、選択したエンコードツールが適切に機能したかどうかを判断する場合があります。
ライナーリルケ

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品質に近い)では、「24」ではなく「--bitrate 52」を使用します。

1.2のデフォルトは48kbitsですが、1.3で52を使用し、「framesize」を40に設定すると、ファイルサイズは同じになりますが、可聴ノイズははるかに少なくなります。

フレームサイズ40の52キロビットは、サイズが1/3未満のMP3の160キロビットとほぼ同等の品質です。1.2で48kbitsは128kbits MP3に等しいか、サイズが2.5倍小さくなります。

ほぼ同じ品質を得るには、80〜96kbitsが必要です。オーディオをできるだけ小さくしたいので、私はこれをほとんど使用しません。

96kbits以上は、編集にのみ適しています。元のファイルとOpusエンコードファイルの違いは聞こえません。

とはいえ、Linuxでどのように機能するかはまだわかりません。


LinuxとWindowsの両方でこのエラーをしようとしてエラーが発生しました:Unrecognized option '-framesize'. Error splitting the argument list: Option not found。ffmpegバージョンは4.0.2
sukhmel
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.