web-dev-qa-db-ja.com

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

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

21
Luis Alvarado

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

opusenc input.wav output.opus

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

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

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

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

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

libav-toolsおよびlibopus0のバージョン9をインストールすると、たとえば次のことが簡単にできます。

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

オプションの機能

  • -i file.mp3は入力ファイルを設定します。
  • -map 0:aは、入力ファイル0からすべてのオーディオストリーム(a)を選択します。 https://libav.org/avconv.html#Advanced-options-mapの詳細を読む
  • -codec:a opusは、オーディオストリームのopusエンコーダーを選択します(a)。 https://libav.org/avconv.html#Main-options-codecの詳細をご覧ください。
  • -b:a 100kは、オーディオのビットレートを100キロビット/秒に設定します。 https://libav.org/avconv.html#Codec-AVOptions-bの詳細を読む
  • -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
10
Daniel Jonsson

12.04のオーパス

ただし、12.04(Precise)では、opusコーデックとツールのインストールに依存関係の問題があるため、私が見つけた最良のソリューションは、ごく最近入手可能になったものです:opusオーディオエンコーダーとデコーダーをコンパイルします ここに記載のとおり 、およびffmpegの構成オプションに--enable-opusを追加することにより、opusサポート付きのffmpegを構築します( コンパイルガイド に記載).

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

コンパイル後にffmpegを使用してファイルを変換する場合、-acodec libopusを指定する必要があります。そうでない場合、ffmpegはopusコーデックを使用しません。

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

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

ffplay man.opus

コンパイルのヒント

ここで guide を完全に再現する必要はありませんが、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-aaclibvpxおよびopusをコンパイルしてインストールするのはcriticalですこれらのライブラリはビルドで使用されるため、ffmpegをビルドします。

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

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

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

5
user76204

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

  • 最初に、オーディオファイルがあるディレクトリと同じディレクトリでターミナルを開きます。
  • 次に、次のコマンドを入力します。
$ 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"

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

このファイル変換のコンソール出力(--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は最高品質でエンコードが遅くなります)および最大遅延時間は10ms(最大コンテナ遅延(ミリ秒)(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 が必要です。

Spek または Audacity を使用して、高ビットレートでのLossless形式とLossy形式間のスペクトグラムの違いを確認することもできます。

3
Jose Barakat
  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. リッピングしましょう!
0
Joel Garcia