テストのために、私が持っているMP3およびWAVファイルをOpusに変換したいのですが、これを行う手順は何ですか?
デフォルトでは、オーディオコンバータは 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
Ubuntu 14.04とDebian 8のリポジトリにはlibav-tools
のバージョン9が付属しており、パッケージlibopus0
による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番目のストリーム(-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
12.04のオーパス
ただし、12.04(Precise)では、opusコーデックとツールのインストールに依存関係の問題があるため、私が見つけた最良のソリューションは、ごく最近入手可能になったものです:opusオーディオエンコーダーとデコーダーをコンパイルします ここに記載のとおり 、およびffmpeg
の構成オプションに--enable-opus
を追加することにより、opusサポート付きのffmpeg
を構築します( コンパイルガイド に記載).
Ubuntuではffmpeg
がLibav
の代わりに廃止されていることを知っていますが、コンパイルは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
を実行します。他のビルドで以前のバージョンが必要な場合は、このバージョンを削除してリポジトリバージョンをインストールするだけです。
コンパイルを開始する前に、既存のlibav
、ffmpeg
、x264
、libvpx
、またはfdk-aac
パッケージを削除する必要があります。
コンパイル前にx264
、fdk-aac
、libvpx
およびopus
をコンパイルしてインストールするのはcriticalですこれらのライブラリはビルドで使用されるため、ffmpeg
をビルドします。
ffmpeg
コンパイルを実行するときに、--enable-opus
を構成オプションに追加することを忘れないでください。
コンパイルされたopusのバージョンは1.1alphaだったので、新しいバージョンがリリースされたときに、将来再びopusライブラリとffmpegを再コンパイルする必要があるかもしれません。
ffplay
を使用して、作成したopusファイルを再生できます。
それは私がそれをする方法です:
$ 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形式間のスペクトグラムの違いを確認することもできます。
opus-tools
とAudex
をインストールします。Audexを開き、Opusという新しいプロファイルを追加し、コマンドパターンを追加します。
opusenc $i --comment="TRACKNUMBER="$trackno"" --artist "$artist" --album "$title" --title "$ttitle" --date "$date" --picture "$cover" $o
および接尾辞opus