2016-10-06 60 views
2

我正在尋找一種音頻格式,在開始幾個小時的沉默不影響整體文件大小。有沒有人知道使用哪一個以及我必須使用哪些設置?我到目前爲止沒有運氣嘗試過m4a,ogg和mp3。在開始時靜音4小時的音頻樣本會導致某些格式的400 MB文件。音頻格式,其中沉默不會影響文件大小

+1

只是爲了滿足自己和其他懸掛物,M4A和OGG不是音頻格式,但容器格式。 ogg文件通常包含Vorbis編碼的音頻,但也可以包含例如。 Opus或FLAC編碼的音頻。 m4a文件通常包含AAC編碼的音頻,但也可以包含例如。 ALAC或ALS編碼音頻。 – AkselA

+0

某些容器格式(特別是MP4)具有數據時間戳,在這種情況下,您不需要將標識爲靜音的數據寫入輸出文件。否則,你的問題是關於將靜音壓縮到接近零輸出的壓縮,而你沒有定義靜音 - 無論是真正的靜音,噪聲還是無聲音數據。也就是說,涉及很多不確定因素。 –

回答

3

當然,以編程方式處理它將是更明智的方式,像SoX和沉默/墊效果。畢竟,任何沉默都與任何其他沉默相同,試圖壓縮它有點浪費力氣。這樣說我自己對此有點好奇,於是我就比較了不同的編解碼器在壓縮純數字靜音時表現如何。

我創建了兩個測試文件。首先是一個44.1kHz 16比特30分鐘長的立體聲WAVE文件,其中包含-10.66 dBFS RMS的不相關棕色噪音。第二個文件是相同的,除了填充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

您可能會認爲編碼器在遇到不止一秒鐘的靜音時會「暫停」。任何編解碼器都可以被盜用來做到這一點,雖然你需要了解它們是如何工作的,然後再開始這樣的更改......

另一種選擇是通過一個程序管道輸出MP3編碼器去除「額外」靜音幀。這可能不是全面的工作(儘管你仍然需要了解第三層位存儲器如何工作)。

相關問題