サウンドファイルをOpusに変換する方法


22

テストのために、私が持っているMP3およびWAVファイルをOpusに変換したいのですが、これを行う手順は何ですか?


1
@EvanCarrollしたがって、「テストのために」という部分;)
ルイスアルバラード

2
@EvanCarrollそれは達成したいものと入力素材の品質に依存します。絶対的なオーディオマニアのソリューションを探しているなら、おそらく最初にOpusを検討したいとは思わないでしょう。それが恐ろしいアイデアであると言うことは、説明がないとき、ただ恐ろしい声明です。
-LiveWireBT

1
@LiveWireBT mp3をopusでエンコードすることは、絶対的なオーディオマニアのソリューションを探しているのでなければ、説明がなければ恐ろしいことではないと言います。
エヴァンキャロル

2
@EvanCarroll Opusは音声を専門にサポートしていますが、MP3はサポートしていません。これは、ポッドキャストとオーディオブックのサイズを大幅に縮小できることを意味しますが、品質を著しく損なうことはありません。私はそれがいかにひどい考えであるかを理解できません。
クリスチャン14年

3
「使用するモードを符号化するかを決定するためにスピーチや音楽の自動検出」@EvanCarroll opus-codec.org。そしてもちろん、品質が低下します。そのため、損失の多いコーデックです。しかし、これは決して正当なものではない、と言いました。サイズが大きな問題であり、二次的に重要な品質であり、損失のないソースが利用できないという良い例を挙げました。
クリスチャン14年

回答:


23

デフォルトでは、opus-toolsに付属のオーディオコンバーターは、raw、wave、またはAIFF形式のオーディオを変換できます。最小限の構文はデフォルト設定を使用します:

opusenc input.wav output.opus

オプションでデフォルトの96 kbpsとしてより良いビットレートを追加したい場合があります--bitrate N.nnn(すべてのオプションについてはopusencのマンページを参照してください)。

「オンザフライ」でmp3を変換します。つまり、一時ファイルを作成せずに、次のようにavconvからopusencに出力をパイプできます。

avconv -i input.mp3 -f wav - | opusenc --bitrate 256 - output.opus

「opusenc」はどこで入手できますか?
shevy

1
@shevy:opus-toolsが付属しています
タックカット

@shevy:$ sudo apt install opus-tools
ホセ・バラカット

1
多数のflacファイルでこれを行うには:(for f in *.flac; do ffmpeg -i "$f" -f wav - | opusenc --bitrate 140 - "${f%.flac}.opus"; doneビットレートとして140を選択しました。これにより、ステレオファイルには十分すぎるためです
。– Joschua

11

Ubuntu 14.04およびDebian 8のlibav-toolsリポジトリにはバージョン9が付属しており、パッケージを通じてOpusのサポートが組み込まれていますlibopus0

例1:オーディオファイルをopusとして再エンコードする

バージョン9ではlibav-toolsおよびlibopus0インストールは、単に、例えば、行うことができます。

avconv -i file.mp3 -map 0:a -codec:a opus -b:a 100k -vbr on file.opus

オプションの機能

  • -i file.mp3 入力ファイルを設定します。
  • -map 0:aa入力ファイルからすべてのオーディオストリーム()を選択します0https://libav.org/avconv.html#Advanced-optionsで詳細-mapご覧ください
  • -codec:a opusオーディオストリームのopusエンコーダーを選択します(a)。詳細について-codechttps://libav.org/avconv.html#Main-optionsをご覧ください
  • -b:a 100kオーディオのビットレートを100キロビット/秒に設定します。詳細について読む-bhttps://libav.org/avconv.html#Codec-AVOptions
  • -vbr on可変ビットレートをオンにします。これは、libopus固有のオプションです。libopusのすべてのオプションは次のとおりです。

    $ avconv -h full | grep opus -A 11
    avconv version 9.11-6:9.11-3+b2, Copyright (c) 2000-2013 the Libav developers
      built on Apr  6 2014 17:45:45 with gcc 4.8 (Debian 4.8.2-16)
    libopus AVOptions:
    -application       <int>   E..A. Intended application type
       voip                    E..A. Favor improved speech intelligibility
       audio                   E..A. Favor faithfulness to the input
       lowdelay                E..A. Restrict to only the lowest delay modes
    -frame_duration    <float> E..A. Duration of a frame in milliseconds
    -packet_loss       <int>   E..A. Expected packet loss percentage
    -vbr               <int>   E..A. Variable bit rate mode
       off                     E..A. Use constant bit rate
       on                      E..A. Use variable bit rate
       constrained             E..A. Use constrained VBR
    
  • file.opus 出力ファイルを設定します。

例2:ビデオファイルからオーディオを取得し、opusとしてエンコードします

最初の入力の2番目のストリーム(-map 0:1)を取得します。これはオーディオストリームです。可変ビットレートがオンの100 kbit / sのlibopusでエンコードします。

$ avconv -stats -i linuxactionshowep309-432p.mp4 -map 0:1 -c libopus -b 100k linuxactionshowep309-432p-audio-only.opus
avconv version 9.11-6:9.11-3+b2, Copyright (c) 2000-2013 the Libav developers
  built on Apr  6 2014 17:45:45 with gcc 4.8 (Debian 4.8.2-16)
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'linuxactionshowep309-432p.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf55.33.100
  Duration: 01:14:48.45, start: 0.042667, bitrate: 466 kb/s
    Stream #0.0(und): Video: h264 (High), yuv420p, 768x432 [PAR 1:1 DAR 16:9], 330 kb/s, 30 fps, 30 tbr, 15360 tbn, 60 tbc
    Stream #0.1(und): Audio: aac, 48000 Hz, stereo, fltp, 128 kb/s
Output #0, ogg, to 'linuxactionshowep309-432p-audio-only.opus':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf54.20.3
    Stream #0.0(und): Audio: libopus, 48000 Hz, stereo, flt, 100 kb/s
Stream mapping:
  Stream #0:1 -> #0:0 (aac -> libopus)
Press ctrl-c to stop encoding
size=   54360kB time=4488.47 bitrate=  99.2kbits/s    
video:0kB audio:53875kB global headers:0kB muxing overhead 0.900602%

パッケージがmediainfoインストールされている場合:

$ mediainfo linuxactionshowep309-432p-audio-only.opus
General
Complete name                            : linuxactionshowep309-432p-audio-only.opus
Format                                   : OGG
File size                                : 53.1 MiB
Duration                                 : 1h 14mn
Overall bit rate                         : 99.2 Kbps
Writing application                      : Lavf54.20.3
major_brand                              : isom
minor_version                            : 512
compatible_brands                        : isomiso2avc1mp41

Audio
ID                                       : 2104437746 (0x7D6F2BF2)
Format                                   : Opus
Duration                                 : 1h 14mn
Channel(s)                               : 2 channels
Channel positions                        : Front: L R
Sampling rate                            : 48.0 KHz
Compression mode                         : Lossy
Writing library                          : Lavf54.20.3

1
Ubuntu 14.04で完全に動作します!何を説明できます-map 0:aか?(そして、おそらく行全体を詳述しますか?)
425nesp 14

@piña引数の説明と追加の例で回答を更新しました。
ダニエルジョンソン14

5

12.04のOpus

オーパスオーディオエンコーダとデコーダをコンパイルします。私は、これまで発見した(正確な)12.04で、しかし、作品のコーデックとツールをインストールすると、依存関係の問題があるので、最善の解決策は、ごく最近利用可能になったものである、ここで述べたように、(コンパイルガイドにリストされているように)の構成オプションにffmpeg追加--enable-opusすることにより、opusサポートを使用してビルドします。ffmpeg

ffmpegUbuntuで廃止されていることを知っていますがLibav、コンパイルは、完全に機能するopusエンコーダー/デコーダーを統合するための良い方法ffmpegです。次に、それを使用してファイルを変換し(最初はwavに)、次にに変換できます.opus。libopusおよびffmpegと共にインストールされるドキュメントには、ファイルの変換に使用できるすべてのオプションが表示されます。

ffmpegコンパイル後にファイルを変換する場合、opusコーデックを指定する-acodec libopusffmpeg、使用しないでください:

ffmpeg -i pc.wav -ar 48000 -ac 2 -acodec libopus -ab 256k man.opus

その後、作成したファイルをテストできます

ffplay man.opus

コンパイルのヒント

ここでガイド全体を複製する必要はありませんが、1つまたは2つのことに注意する価値があります。

  • リストにある依存関係を最初にインストールする必要があります(yasmリストから省略しています。2番目のポイントを参照してください)。

     sudo apt-get -y install autoconf build-essential checkinstall git libass-dev libfaac-dev libgpac-dev libjack-jackd2-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev librtmp-dev libsdl1.2-dev libtheora-dev libtool libva-dev libvdpau-dev libvorbis-dev libx11-dev libxext-dev libxfixes-dev pkg-config texi2html zlib1g-dev
    
  • 指摘する必要のある問題が1つあります。gitビルドが必要yasm-1.2と思われるため、利用できません。したがって、公式サイトからソースをコンパイルする必要がありますが、それは簡単です。のインストール済みバージョンをすべて削除してから、yasmダウンロードしたアーカイブcdをフォルダーに解凍し、実行して./configure && makeからを実行しますsudo checkinstall。他のビルドで以前のバージョンが必要な場合は、このバージョンを削除してリポジトリバージョンをインストールするだけです。

  • 既存除去する必要があるlibavffmpegx264libvpx、またはfdk-aacあなたがコンパイルを開始する前に、パッケージを。

  • 重要なコンパイルとインストールすることをx264fdk-aaclibvpxopusあなたが構築する前に、ffmpegこれらのライブラリがビルドに使用されるように、。

  • コンパイル--enable-opusを実行するときに、構成オプションに追加することを忘れないでくださいffmpeg

  • コンパイルされたopusのバージョンは1.1alphaであったため、新しいバージョンがリリースされたときに、opusライブラリとffmpegを将来再コンパイルする必要があります。

  • 使用ffplayして、作成したopusファイルを再生できます。


ffmpegは、代替品がある場合の悪い解決策です。
エヴァンキャロル

2
@EvanCarrollこれはどういう意味ですか?それを非推奨にするのは誰かの決定です:ffmpegはlibavと同じくらい優れていますが、これは単なるフォークです。

1
素晴らしい回答であり、Yasm要件に関するリマインダーをありがとう。x264は最後のプッシュで最小バージョンを1.2.0に増やしました。Yasmの指示で更新されたガイド。
llogan

@Mikスタンドアローンのエンコーダーがより良い結果をもたらすと彼は言いたかったと思います。
LiveWireBT

ffmpegをコンパイルするための指示に従うときに「opus not found」エラーが発生するという人がいるのを見ました。Ubuntu 12.04でも同じ問題が発生しましたが、後にPKG_CONFIG_PATH = "$ HOME / ffmpeg_build / lib / pkgconfig"の最後にスラッシュが必要であることがわかりました。

3

それは私がそれをする方法です:

  • まず、オーディオファイルがあるディレクトリと同じディレクトリでターミナルを開きます。
  • 次に、次のコマンドを入力します。
$ opusenc --bitrate 320 --max-delay 10 "18-Soul Asylum-Runaway Train(Album Version).flac" "18-Soul Asylum-Runaway Train(Album Version).opus"

編集:

オーディオファン向け:

$ opusenc --bitrate 510 --max-delay 10 "18-Soul Asylum-Runaway Train(Album Version).flac" "18-Soul Asylum-Runaway Train(Album Version).opus"

デフォルトでこれを行う--maxdelay 10ため、オプションを指定する必要はありませんopusenc

このファイル変換のコンソール出力(--bitrate 320):

    Encoding using libopus 1.1.2 (audio)
    -----------------------------------------------------
       Input: 44.1kHz 2 channels
      Output: 2 channels (2 coupled)
          20ms packets, 320kbit/sec VBR
     Preskip: 356

    Encoding complete   
    -----------------------------------------------------
           Encoded: 4 minutes and 22.4 seconds
           Runtime: 8 seconds
                    (32.8x realtime)
             Wrote: 10955530 bytes, 13120 packets, 13124 pages
           Bitrate: 317.691kbit/s (without overhead)
     Instant rates: 1.2kbit/s to 510.4kbit/s
                    (3 to 1276 bytes per packet)
          Overhead: 4.89% (container+metadata)

超高速です!10の複雑さで8秒未満(エンコードの計算の複雑さ(0-10、デフォルト:10)。ゼロはエンコードが最も速くなりますが品質は低くなりますが、10は最高品質ですがエンコードが遅くなります)および最大遅延時間は10ミリ秒(最大コンテナ遅延(ミリ秒単位)(0〜1000、デフォルト:1000))。したがって、曲の時間をスキップすると、クリッピング効果の持続時間が10ミリ秒になり、知覚できないようになります(1000で試して、スキップ時間の違いを聞きます)マウス)。ビットレートはデフォルトでVBRです。320kbpsは私のために働いたのでオプションです。この数字で遊んでください:
--bitrate N.nnn=> kbit / secの目標ビットレート(チャンネルごとに6〜256)

ちなみに、MP3からOPUSへのエンコードは良い考えではありません。音質が良くなることはありません。圧縮アルゴリズムはあまりにも異なります。しかし、FLACまたはWAVまたはその他のLossless Audio Formatから、それは別の話です。

注:別のファイルをエンコードするには、同じ端末で上矢印キーを押して最後のコマンドを呼び出し、入力ファイルと出力ファイルの名前を変更します。
ffmpeg / avconv GUIを探しているなら、おそらくTraGtorが必要でしょう。

あなたはまた、高いビットレートでロスレスとロッシーフォーマット間のスペクトログラムの違いを確認することができますSPEKAudacityの


私にはうまくいきませんでした。私が取得Error parsing input file: Hardvapour remix-.mp3私が16.04を使用しています
サラ・サボー

問題はmplacに関するものであり、flacに関するものではありません。
モニカの復職

0
  1. mp3と同じコンテンツのCD(またはCDEMUを含むflac)を見つけます。
  2. インストールopus-toolsAudexます。
  3. Audexを開き、Opusという新しいプロファイルを追加し、コマンドパターンを追加します。

    opusenc $i --comment="TRACKNUMBER="$trackno"" --artist "$artist" --album "$title" --title "$ttitle" --date "$date" --picture "$cover" $o

および接尾辞 opus

  1. リッピングしましょう!
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.