2016-10-06 22 views
2

Я ищу аудиоформат, где молчание в течение нескольких часов в начале не влияет на общий размер файла. Кто-нибудь знает, какой из них использовать и какие настройки мне нужно использовать? Я пробовал m4a, ogg и mp3 до сих пор без везения. Образец аудио с 4-часовым молчанием в начале приводит к 400 МБ-файлу в некоторых форматах.Формат аудио, где тишина не влияет на размер файла

+1

Просто, чтобы удовлетворить себя и другие педант, M4A и OGG не является аудио форматы, но форматы контейнеров. Файлы ogg часто содержат закодированный звук Vorbis, но также могут содержать, например. Звук Opus или FLAC. Файлы m4a часто содержат аудио с кодировкой AAC, но могут также содержать, например. ALAC или ALS закодированный звук. – AkselA

+0

Некоторые форматы контейнеров (в частности, MP4) имеют штамп времени с данными, и в этом случае вам просто не нужно записывать данные, которые в файл вывода идентифицируются как тишина. В противном случае ваш вопрос касается сжатия, которое сжимает тишину до нулевого выхода, и вы не определяете тишину - будь то настоящая тишина, шум или данные без голоса. То есть, существует определенная неопределенность. –

ответ

3

Конечно, дело с ним программно было бы более разумным и SO-способом, чем-то вроде SoX и эффектами молчания/пэда. В конце концов, любая тишина идентична любой другой части тишины, пытаясь сжать ее, это немного бесполезно.

Сказав это, мне было немного любопытно об этом, поэтому я позаботился о том, чтобы сравнить, насколько хорошо работают разные кодеки при сжатии чистой цифровой тишины.

Я создал два тестовых файла. Первым был 44.1kHz 16bit 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-кодировщика через программу, которая вырезает «лишние» тихие рамки. Это может быть меньше общей работы (хотя вам все равно придется понять, как работает фреймворк MP3 &).