2016-10-06 18 views
2

最初は数時間の無音で全体のファイルサイズに影響しないオーディオ形式を探しています。誰にどのようなアイデアを使用し、どの設定を使用する必要がありますか?私は今までm4a、ogg、mp3を試したことがありません。最初に4時間の無音のオーディオサンプルでは、​​一部の形式で400 MBのファイルが作成されます。無音でファイルサイズに影響しないオーディオ形式

+1

をするだけM4AおよびOGGオーディオフォーマットが、コンテナフォーマットではありません、自分自身や他のpedantsを満たすために。 oggファイルには、Vorbisでエンコードされたオーディオが含まれていることがよくありますが、例えば、 OpusまたはFLACエンコードされたオーディオ。 m4aファイルには、AACでエンコードされたオーディオが含まれることがよくありますが、たとえば、 ALACまたはALSエンコードされたオーディオ。 – AkselA

+0

一部のコンテナフォーマット(MP4専用)にはデータタイムスタンプが付いています。この場合、出力ファイルに無音として識別されたデータを書き込む必要はありません。それ以外の場合は、無音を圧縮してゼロ出力に近づける圧縮についての質問です。実際の無音、ノイズ、無音のいずれの場合でも、無音を定義しません。つまり、かなりの不確実性が伴います。 –

答えて

3

もちろん、プログラマチックにそれを扱うことは、SoXや沈黙/パッド効果のようなもので、より賢明な方法です。結局のところ、沈黙のビットは他の沈黙のビットと同一であり、圧縮しようとすると少しの労力がかかります。

私はこれについて少し興味があったので、異なるコーデックが純粋なデジタルサイレンスを圧縮するのにどれだけうまく行っているかを比較しました。

私は2つのテストファイルを作成しました。最初のものは、無相関ブラウンノイズが-10.66dBFS RMSの44.1kHz 16bit 30分のステレオWAVEファイルでした。 2番目のファイルは210分の無音が埋め込まれていることを除いて同じで、合計時間は240分(または4時間)でした。次に、ファイルをさまざまな損失のあるロスレスなコーデックにエンコードし、パディングされていないファイルとの間のサイズ差を調べて、無音のエンコード効率を測定しました。

enter image description here

codec noise noise.silence  diff ratio 
    wav 317.5   2540.0 2222.5 8.0 
he-aac  14.6   116.5  101.9 8.0 
vorbis  36.4   237.1  200.7 6.5 
    mp3  38.2   217.2  179.0 5.7 
    opus  27.0   81.6  54.6 3.0 
    tta 213.8   544.1  330.3 2.5 
    aac  54.0   131.7  77.7 2.4 
    wv 211.3   444.1  232.8 2.1 
    alac 212.5   393.7  181.2 1.9 
    flac 211.5   404.8  193.3 1.9 
    als 209.7   384.2  174.5 1.8 
    ofr 209.3   356.9  147.6 1.7 

Codectを使用:

Lossless 
wav: WAVE 
tta: True Audio v3.4.1 
wv:  WavPack v4.80.0 (wavpack -x) 
alac: Apple Lossless 
ofr: OptimFROG v5.100 (ofr --preset 2) 
als: MPEG-4 Audio Lossless Coding v23 (mp4alsRM23 -a -b -o50) 
flac: Free Lossless Audio Codec v1.3.1 (flac -8) 

Lossy vbr 
mp3: LAME MP3 v3.99.5 (lame -h -V2) 
opus: Opus v1.1.2 (opusenc --bitrate 128 --framesize 40) 
aac: Advanced Audio Codec v2.0 (afconvert -f 'm4af' -d aac -q 127 -s 3 -u vbrq 100) 
vorbis: Vorbis aoTuV b5.5 (oggenc -q 5) 

Lossy cbr 
he-aac: High-Efficiency AAC v1 (afconvert -f 'm4af' -d aach -q 127 -s 0 -b 64000) 
0

エンコーディングが1秒間以上無音になったときにエンコーディングを「一時停止」することを検討することがあります。そこにあるコーデックのどれかがハッキングされる可能性がありますが、そのような変更を開始する前にどのように動作するかを理解する必要があります...

もう1つの方法は、MP3エンコーダの出力を「余分な」サイレントフレームを除去します。これは全体的な作業が少なくて済むかもしれません(ただし、MP3フレーミング&のレイヤIIIビットリザーバーの仕組みを理解する必要があります)。

関連する問題